this feature when the user installs my app from the Play Store. • Conditional ◦ Download this feature when the user installs my app from the Play Store if their device meets some conditions. • Instant enabled ◦ Download just this feature when the user clicks on a link. • On Demand ◦ Don’t download this feature at install time, download it later when the user wants to use that feature.
this feature when the user installs my app from the Play Store. • Conditional ◦ Download this feature when the user installs my app from the Play Store if their device meets some conditions. • Instant enabled ◦ Download just this feature when the user clicks on a link. • On Demand ◦ Don’t download this feature at install time, download it later when the user wants to use that feature.
would move to :base, and it would provide a Singleton scoped CoreComponent • AppComponent would depend on CoreComponent for any Singletons • AppComponent would be built and scoped to the Activities in :app
Bundle ◦ APK builds will incorrectly use the stub style ◦ Distributing test builds as APKs? ◦ No split install support on < SDK 21 • We ended up moving all our styles to :base :( • But you don’t have to! Fixed in bundletool 0.13.4
Bundle ◦ APK builds will incorrectly use the stub style ◦ Distributing test builds as APKs ◦ No split install support on < SDK 21 • We ended up moving all our styles to :base :( • But you don’t have to! Fixed in bundletool 0.13.4
a dynamic feature only if it is going to be instant enabled/on demand • Feature on Feature Dependencies in AGP 4.0 • https://medium.com/@jamieadkins95/a-quick-look-at-feature-on-feat ure-dependencies-in-android-gradle-plugin-4-0-0-5828915d02d3 • 15MB download size limit is much more forgiving
Can’t access external storage • Can’t share from internal storage either • You should share images using backend and a web url • For CWC we dropped the image • Scoped storage in Android 10/11?
Use AGP 3.5 or higher (or 4.0 for feature-on-feature) • Use the APK Analyser in Android Studio • Test against the download size limit using xxxhdpi • Use the internal test track • Indexing may take 24 hours!
same R.java file to reference everything • In dynamic features, you need to use the base application module’s R.java file for common resources • Otherwise you’ll get an ‘unresolved reference’ error at compile time • IDE doesn’t see the error • Can use Kotlin aliases to neaten this up