Talk about still using minSdkVersion=7

Talk about still using minSdkVersion=7

4bbdb0ec71d1f6fd59d2f6fe270d9e4c?s=128

Hideyuki Kikuma

August 02, 2018
Tweet

Transcript

  1. minSdkVersion=7 の リポジトリをメンテした時の話

  2. @hidey 菊間英行

  3. この前にAndroidXの話とかしてるのに?

  4. 普段メンテしてるアプリの minSdkVersionいくつですか? • 26(8.0)以上 • 21(5.0)以上 • 19(4.4)以上 • 16(4.1)以上

    • 14(4.0)以上 • それ未満
  5. 普段メンテしてるアプリの minSdkVersionいくつですか? • 26(8.0)以上 • 21(5.0)以上 • 19(4.4)以上 • 16(4.1)以上

    • 14(4.0)以上 • それ未満 ←今日は主にここの話
  6. minSdkVersionの意味 • サポート対象のバージョンを絞ることで、昔はなかったAPIが使えるようになる • support-libraryのminSdkVersionが14なので、それ未満のアプリのメンテは ちょっとつらそう • aarなライブラリにもminSdkVersionがあるんです

  7. LibraryのminSdkVersionの方が上の場合 Manifest merger failed : uses-sdk:minSdkVersion 7 cannot be smaller

    than version 14 declared in library [ライブラリ名] /.../AndroidManifest.xml Suggestion: use tools:overrideLibrary="ライブラリ名" to force usage 警告が出てbuildが通らない use tools:overrideLibrary を書けばbuildは通るけど、使えない APIにアクセスすると落ちます
  8. 意外と知らないminSdkVersion • v4 compat Library 24.+が使えない(minSdk=9) • v7 appcompat Library

    24.+が使えない(minSdk=9) • ConstraintLayoutが使えない(minSdk=9) • Design Support Library 24.+が使えない(minSdk=9) • Percent Support Library 24.+ が使えない(minSdk=9) • Custom Tabs Support Libraryが使えない(minSdk=15) • Espresso2.+が使えない(minSdk=8) ◦ 3系だとminSdk=9
  9. 意外と知らないminSdkVersion • Google Play Services 6+が使えない(minSdk=9) • RxAndroidが使えない(minSdk=9) • Crashlyticsが使えない(minSdk=9)

    • Timber 4.+が使えない(minSdk=9) • Stetho 1.4.+が使えない(minSdk=9) • Glideが使えない(minSdk=14) • DaggerAndroidが使えない(minSdk=14) ◦ ただしDagger2だけを使うなら使える •
  10. minSdkVersion 7でも使えたもの • aarじゃなくてjarなもの ◦ RxJava ◦ OkHttpClient ◦ Retrofit

    • kotlin • MultiDexSupport Library • サポートライブラリの24.0未満
  11. LibraryのminSdkVersionも意識する • minSdkVersion 14未満はSupport Library等のサポートがないのでやるならか なりきつい • 自分がLibraryを書く時は、そのminSdkVersionが高いと使ってもらえないことも ある

  12. ご清聴ありがとうございました