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

Advance Android

Sponsored · Your Podcast. Everywhere. Effortlessly. Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.

Advance Android

Avatar for Blaž Šolar

Blaž Šolar

February 03, 2015
Tweet

More Decks by Blaž Šolar

Other Decks in Programming

Transcript

  1. MVP • Moved from MVC to MVP • Decouples business

    logic from UI • Simplifies testing
  2. Networking • OkHttp HTTP client • HTTP / 2 &

    SPDY • Drop in replacement for HttpUrlConnection and Apache HttpClient • Retrofit in combination with RxJava
  3. Travis CI • Runs on every push and PR •

    Only one Android version at the moment • Unit & functional test + static code annualises + stress tests • Reports uploaded on Amazon S3 bucket
  4. Android Check Plugin • Gradle testing plugin for Android •

    Static code analasies (PMD, Checkstyle, Findbugs, Lint) • Unit and functional tests • Deploy to Amazon S3, Crashlytics Beta & Google Play store • Notifications on HipChat • Push to Git remote
  5. Artifactory • Repository manager (maven repos) • Hosts all internal

    libraries • Project has no sub-projects • Modular and sharable code
  6. Release Build Type • Minimisation, Obfuscation & Optimisation • Production

    API endpoint • Logging levels • Analytics & crash reporting
  7. Debug Build Type • Only for development • Adds additional

    functionalities • No obfuscation, minimisation & optimisation • Strict Mode
  8. Mock Build Type • No emulator support from Samsung for

    Android 16 and above • Running on non Samsung devices • Mocks internal Samsung APIs • Customised Samsung SDK jar
  9. Samsung APIs public final class DevicePolicyManager {
 
 public final

    boolean isAdminActive(ComponentName who) {
 throw new RuntimeException("Stub!");
 }
 
 }
  10. Dev Flavor • In Progress • For all Build Types

    • Only Android Lollipop • Faster build and deploy process
  11. Debug drawer • Thin layer between System and App •

    Not included in production builds • Basic build and device information
  12. Mock location • Mock location provider for whole system •

    Only on development devices • KML support still missing
  13. Animations • In progress • Change animation duration on the

    fly • Disable animations completely 29
  14. Monkey friendly boolean provideIsMonkey() {
 return ActivityManager.isUserAMonkey();
 } • Adjusted

    behaviour for monkeys • Using mock api endpoint • Less UI validations • No debug drawer
  15. Dependency Locking • CI handles library updates • No dynamic

    library versions • Limited to minor version updates • Limitations with Circle CI
  16. Dagger 2 • Developed by Google • Uses annotation processing

    • No reflection • Experimental support in Wandera
  17. Jack & Jill • New Android tool chain • No

    annotation processing support (yet) • Built in proguard support • Faster builds
  18. Buck • Gradle Alternative • Opensource, developed by Facebook •

    Faster than Gradle (for now) • Missing some features
  19. Circle CI • Travis CI alternative • Beta support for

    Android and iOS • Supported by Android Check Plugin • Pros and cons compared to Cricle CI