~/talk

Architecture for AppBundles

Talkat GDG DevFest Poland 2018 in Wrocław · 2018-10-26..10-27· [android]
links:none on file
slides:none on file

A million‑line Android app is split into tiny feature libraries on top of a small base APK, then wired to load on demand via Play Core dynamic delivery, cutting installed size (Google reports ~30%) and isolating rare flows (an identity upload used by ~5% of users). Dependency injection uses Dagger component dependency patterns so dynamic modules get singletons from the base; runtime entry points are activities/fragments (class reflection only if needed). Testing requires the internal test track and Play app signing; it works but has manifest, loading and UX caveats.

AI-written summary · about

  1. 0:00Start
  2. 0:33What dynamic feature modules mean for my existing architecture?
  3. 3:11Problems?
  4. 8:20Let's see some code.
  5. 10:01Sometimes you display things from different modules, on a single Activity.
  6. 20:18Dynamic Delivery Dynamic Feature Modules
  7. 23:17Dynamic Feature Modules.
  8. 23:56Dynamic Feature modules depend on your base app'. Not vice versa.
  9. 24:54You don't have to change your architecture to support AppBundles - you can benefit from them without much of the effort.
  10. 25:29Purpose of our modular approach: good separation, lack of coupling between features enforced in compile-time.
  11. 26:12Purpose of Dynamic Feature Modules: smaller APK size (good separation coming more as a 'side-effect').
  12. 31:21Easy way - module's 'entry point' being Activity/ Fragment.
  13. 35:17Start using AppBundles.
  14. 35:54Dynamic Feature Modules you may need them, but you may not.
  15. 37:05Don't treat it like it's the "ultimate" way of modularizing your app.
~/search
type to search 6,249 conferences, 138,987 speakers and 185,172 talks
~/help
cmdctrl k
search every conference, speaker and series
/
focus the filter search
h
home
c
conferences
s
speakers
e
series
t
light / dark — the status bar button does the same
?
this help
esc
close this, then clear every filter — or just the search, while you are typing in it

Ignored while you are typing. Pages without a filter rail have no search to focus.