久々に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までは旧バージョン扱いとなっている。