stylesheet

2018-11-10

Androidアプリ開発の状況 (2018年度)

久々にAndroidアプリを製作してみたら、Lollipop時代とはいろいろと状況が変わっていたのでメモ。
以下、2018年版としてプラットフォームやよく使われるライブラリ等を表にしてみた。

2018年度Android開発

2014年頃
(Kitkat/Lollipop辺りまで)
2018年現在
(Nougat/Oreo/Pie)
備考
最低対応バージョン
(推奨)
Gingerbread
(API9)
Lollipop
(API21)
言語 Java6 Java8
Kotlin
Java8はAndroid7.0(API24)とそれ以前とで対応状況が異なる
DEXコンパイラ DX D8 Android Studio 3.1からD8がデフォルト
コード圧縮 ProGuard ProGuard
R8
次期バージョンのAndroid Studio 3.3からR8がデフォルトになる
デザイン Holo
Material
Material フラットデザイン2.0やMaterialTheming
ランチャーアイコン Bitmap画像 Vector画像 API25でRoundIcon
API26からAdaptiveIcons追加
基本レイアウト Relative Constraint
コンポーネント Support Library Jetpack JetpackでSupport LibraryとArchitecture Componentsが統合された
アーキテクチャ MVP MVVM Android Archtecture Components (AAC)のViewModel + DataBindingでMVVM
開発プラットフォーム Fabric Firebase Twitter社のFabricはGoogleへ売却された
ビューインジェクション Butterknife - DataBindingで代用
DI Guice Dagger2
イベント駆動 EventBus RxAndroid ViewModel + LiveDataだけで十分かも
HTTP通信 Volley Retrofit2
OkHttp3
画像ロード Volley Picasso
Glide
ラムダ式 Retrolambda - API24で不要

雑感

アーキテクチャ的に近年はMVVMがトレンドのようで、ViewModel + DataBinding + LiveDataあたりを組み合わせて実装する。

Kotlinに関してはクリエーターやデベロッパー色の強い開発者を中心に普及が進んでいるようだ。
ただ、SDKバージョンをAPI24まで上げるとJava8の多くの機能が使用できるので、Kotlinへのモチベーションは個人的にさがっている。

AndroidOSは毎年新しいメジャーバージョンがリリースされているが、Marshmallowあたりから個人的にはどうでも良くなってきた感がある。
最低SDKバージョンはLollipop(API21)が推奨されているようで普及率は85%となる。Java8の対応状況を考えるとNougat(API24)まで上げたいが、普及率は37.1%と苦しいところ。

尚、Nougatからがサポート中の現行バージョンとなり、Marshmallowまでは旧バージョン扱いとなっている。

参考リンク