Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Try to modularize a not so legacy Android App

Stefan M.
October 29, 2019

Try to modularize a not so legacy Android App

Given at an internal company event.

This talk tells a story how I (and my team) tried to modularize a new Android App we developed for a customer.

Stefan M.

October 29, 2019
Tweet

More Decks by Stefan M.

Other Decks in Programming

Transcript

  1. The modularization solution someProject/android /app /sdk Benefits: • No headache

    with artifactory and CI/CD • Development of the SDK is "on the fly" • … more?!
  2. The modularization solution someProject/android /y /c /b /a /z /x

    /sdk Benefits: • Each is decoupled of others • Could be published independently • Wrapper SDK provide still the full SDK • app modules could pick only features which they require • … more?!
  3. Customer: "We use Scandit for scanning barcodes. Here are the

    licenses. Uh - and maybe we will replace it later with XYZ"
  4. The obvious solution - Try to abstract it away someProject/android

    /app /build.gradle add licenses Implementation: awesome/scaninng/ abstract.kt scanditImpl.kt
  5. The modularization solution someProject/android /app /build.gradle add licenses Implementation: awesome/scaninng/

    abstract.kt internal/scanditImpl.kt /scanning Benefits: • Clear separation in our build files • scanning module can be changed without touching /app • … more?!
  6. The obvious solution someProject/android /onboarding /app HELP! I need some

    files* from /app * files like `layouts` or utility classes
  7. Speaker: "No it's not. It's like playing lego and pick

    only the correct bricks together"