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

Mobile Platform Team. Grab.

Mobile Platform Team. Grab.

Maryna Shaposhnikova

May 19, 2020
Tweet

More Decks by Maryna Shaposhnikova

Other Decks in Programming

Transcript

  1. 1. Taxi 2. Food delivery 3. Bike rent 4. Payments

    5. Delivery 6. Hotels, tickets 7. Insurance, investments
  2. - Food - Payment - Transport - Express - etc...

    - Riblet - MVVM - MVP - MVC - etc... ‼‼ App size… Build time Tech Families
  3. Mobile Platform Team “Team is at Grab responsible to lay

    down and continuously improve the software foundations and infrastructure components that all Grab mobile apps are built upon. “ © LinkedIn
  4. What are we doing.... Architecture CI Quality Mobile Platform Team

    - base components (aka Kits) - build tools (mainframer) - ∞ build time ∞ - support multiple apps - base modules (100+) - dependencies & libraries - CI support - test coverage - migration platform API, plugins, XCode - documentation, WIKI, RFC
  5. - Weekly Delivery Sync - Slack channel - Feature Request

    - Open Issues - RFC before delivering Team interaction
  6. Architecture pod Delivering features faster. #1 Stop feature delivering #2

    Cross-Platform Development Flutter 2018: WebView, ReactNative
  7. P0: Flutter in passenger App. • Native & non-native communication

    • Impact: ◦ app size ▪ Android 6MB ▪ iOS 10MB ◦ app start time ▪ Android - ▪ iOS 200ms • Timing Architecture pod
  8. • Integration into passenger app • Flutter Engine: shared or

    multi • Flutter Architecture & UI guidelines • Native Bridges • Navigation • Testing • Documentation Architecture pod
  9. CI pod • 600+ modules • Build time: ◦ Android:

    11 mins ◦ iOS: 36mins • Gradle • Setup Bazel & Gradle • Migrate gradle scripts • Databinding • Remote cache • Modules migration
  10. CI pod Mainframer Remote execution 1. local files to remote

    machine 2. build process 3. artifacts to local machine Problems solved 1. build is really FAST ~ 60% 2. no hard work on laptops
  11. How to evaluate performance? OKR: • build time • app

    size • development time • test coverage • release train
  12. “ Nobody likes you Linters & Restrictions: - deprecated code

    is forbidden - GIFs, PNGs are forbidden - locked Application file - evaluation for third-party libs
  13. On-call engineer • Open Production issues • CI monitoring ◦

    green master • Monitor dashboards ◦ build time degradation ◦ app size degradation ◦ CI failures • Crashes ◦ New crash ◦ Velocity crash ◦ Regression crash • Support