Slide 1

Slide 1 text

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

Slide 2

Slide 2 text

@hidey 菊間英行

Slide 3

Slide 3 text

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

Slide 4

Slide 4 text

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

Slide 5

Slide 5 text

普段メンテしてるアプリの minSdkVersionいくつですか? ● 26(8.0)以上 ● 21(5.0)以上 ● 19(4.4)以上 ● 16(4.1)以上 ● 14(4.0)以上 ● それ未満 ←今日は主にここの話

Slide 6

Slide 6 text

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

Slide 7

Slide 7 text

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にアクセスすると落ちます

Slide 8

Slide 8 text

意外と知らない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

Slide 9

Slide 9 text

意外と知らない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だけを使うなら使える ●

Slide 10

Slide 10 text

minSdkVersion 7でも使えたもの ● aarじゃなくてjarなもの ○ RxJava ○ OkHttpClient ○ Retrofit ● kotlin ● MultiDexSupport Library ● サポートライブラリの24.0未満

Slide 11

Slide 11 text

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

Slide 12

Slide 12 text

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