Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Mobile Platform Team. Grab.
Search
Maryna Shaposhnikova
May 19, 2020
Programming
0
240
Mobile Platform Team. Grab.
The talk in Russian is on Youtube
https://www.youtube.com/watch?v=XdoTyQsDo2I&feature=youtu.be
Maryna Shaposhnikova
May 19, 2020
Tweet
Share
More Decks by Maryna Shaposhnikova
See All by Maryna Shaposhnikova
Between Love and Hate: Coroutines
marinameier
1
75
Other Decks in Programming
See All in Programming
"config" ってなんだ? / What is "config"?
okashoi
0
220
try! Swift Tokyo 2024 参加報告 / try! Swift Tokyo 2024 Report
hironytic
0
170
Tailwind CSSを本気でカスタマイズする方法
fsubal
2
280
StreamlitとTerraformでデータカタログを作った話
gussan0223
0
300
オブジェクト指向のリ・オリエンテーション~歴史を振り返り、AI時代に向きなおる~
hanyudaeiiti
10
5.6k
코틀린으로 멀티플랫폼 만들기
pangmoo
0
120
Ruby Pattern Matching
bkuhlmann
0
920
Changed Rules: Architectures with Lightweight Stores
manfredsteyer
PRO
0
230
ONE WEDGE_company_guide
1wedge_one
0
380
データアナリストが行うDatabricksを活用したETLの自動化事例
shinoa
0
250
SwiftUI Performance 不要なViewの再描画と更新を抑える
bigamitiongit
1
160
Code Reviews
bkuhlmann
4
880
Featured
See All Featured
What's new in Ruby 2.0
geeforr
337
31k
[Rails World 2023 - Day 1 Closing Keynote] - The Magic of Rails
eileencodes
1
1.3k
Intergalactic Javascript Robots from Outer Space
tanoku
266
26k
WebSockets: Embracing the real-time Web
robhawkes
59
7k
Creatively Recalculating Your Daily Design Routine
revolveconf
209
11k
Pencils Down: Stop Designing & Start Developing
hursman
117
11k
RailsConf 2023
tenderlove
2
530
Teambox: Starting and Learning
jrom
128
8.4k
Statistics for Hackers
jakevdp
789
220k
The Art of Programming - Codeland 2020
erikaheidi
41
12k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
186
16k
Building Adaptive Systems
keathley
30
1.8k
Transcript
Mobile Platform Team. The pillars of Grab.
1. Taxi 2. Food delivery 3. Bike rent 4. Payments
5. Delivery 6. Hotels, tickets 7. Insurance, investments
- Food - Payment - Transport - Express - etc...
- Riblet - MVVM - MVP - MVC - etc... ‼‼ App size… Build time Tech Families
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
None
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
- Weekly Delivery Sync - Slack channel - Feature Request
- Open Issues - RFC before delivering Team interaction
Managers Planning Team intro OKR Where does the work come
from?
Architecture pod Delivering features faster. #1 Stop feature delivering #2
Cross-Platform Development Flutter 2018: WebView, ReactNative
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
• Integration into passenger app • Flutter Engine: shared or
multi • Flutter Architecture & UI guidelines • Native Bridges • Navigation • Testing • Documentation Architecture pod
CI pod • 600+ modules • Build time: ◦ Android:
11 mins ◦ iOS: 36mins • Gradle • Setup Bazel & Gradle • Migrate gradle scripts • Databinding • Remote cache • Modules migration
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
How to evaluate performance? OKR: • build time • app
size • development time • test coverage • release train
“ Nobody likes you Linters & Restrictions: - deprecated code
is forbidden - GIFs, PNGs are forbidden - locked Application file - evaluation for third-party libs
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
Thank you!