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

What's behind BMW Connected?

Jorge Coca
November 17, 2016

What's behind BMW Connected?

Android Listener - November 2016

Jorge Coca

November 17, 2016
Tweet

More Decks by Jorge Coca

Other Decks in Technology

Transcript

  1. Project Structure How do we support BMW, MINI, Rolls Royce,

    BMW Motorrad... only maintaining one code base?
  2. Bene ts Write once, use everywhere Bug xes are solved

    in all brands at the same time Focus on features, not on maintenance
  3. Technology Stack JAVA (sorry Kotlin, you're not fully supported by

    Google 😞) RxJava + RxAndroid Dagger 2 Retro t + OkHttp DBFlow Calligraphy Mockito
  4. Pragmatic MVVM Not using Android's Data Binding Not ready for

    prime time yet Try to use RxJava as much as we can, but... Sometimes declarative programming is easier to understand and, therfore, maintain Sometimes it feels like MVP (Model View Presenter)
  5. Dependency Injection In Android classes -> eld injection In POJO

    classes -> constructor injection Easier to test and setup Mock dependencies Heavy use of interfaces Provide different implementations based on context/brand/settings...
  6. Unit tests ~2500 tests in less than a minute We

    love Mockito We love less PowerMockito Helpful for mocking 3rd party dependencies Jenkins builds every opened pull requests and runs all the tests Lint checks for missing translations, styling...
  7. Team Practices 1-week sprints Freedom to grab anything from the

    board 90% of the time working on Android 10% working on backend Weekly worldwide demos
  8. Team practices Weekly technology reviews http://androidweekly.net/ Team culture is really

    important to us Collaboration with teams in Chicago, Munich and Shanghai