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
Challenges and lessons from porting a complex i...
Search
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Mike Dai Wang
March 27, 2017
Technology
1
99
Challenges and lessons from porting a complex iOS app to Android
Mike Dai Wang
March 27, 2017
Tweet
Share
Other Decks in Technology
See All in Technology
形式手法特論:SMT ソルバで解く認可ポリシの静的解析 #kernelvm / Kernel VM Study Tsukuba No3
ytaka23
1
790
Laravelで学ぶOAuthとOpenID Connectの基礎と実装
kyoshidaxx
4
1.8k
DDD×仕様駆動で回す高品質開発のプロセス設計
littlehands
6
2.4k
スピンアウト講座03_CLAUDE-MDとSKILL-MD
overflowinc
0
1.3k
GitHub Copilot CLI で Azure Portal to Bicep
tsubakimoto_s
0
190
Phase10_組織浸透_データ活用
overflowinc
0
1.6k
夢の無限スパゲッティ製造機 #phperkaigi
o0h
PRO
0
370
Agent Skill 是什麼?對軟體產業帶來的變化
appleboy
0
230
SaaSに宿る21g
kanyamaguc
2
160
QA組織のAI戦略とAIテスト設計システムAITASの実践
sansantech
PRO
1
140
Windows ファイル共有(SMB)を再確認する
murachiakira
PRO
0
280
Embeddings : Symfony AI en pratique
lyrixx
0
280
Featured
See All Featured
Accessibility Awareness
sabderemane
0
84
Making Projects Easy
brettharned
120
6.6k
The Illustrated Children's Guide to Kubernetes
chrisshort
51
52k
Unsuck your backbone
ammeep
672
58k
Deep Space Network (abreviated)
tonyrice
0
96
Ethics towards AI in product and experience design
skipperchong
2
240
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
287
14k
Conquering PDFs: document understanding beyond plain text
inesmontani
PRO
4
2.5k
Context Engineering - Making Every Token Count
addyosmani
9
770
世界の人気アプリ100個を分析して見えたペイウォール設計の心得
akihiro_kokubo
PRO
68
38k
Fashionably flexible responsive web design (full day workshop)
malarkey
408
66k
GraphQLの誤解/rethinking-graphql
sonatard
75
11k
Transcript
Challenges and lessons from porting a complex iOS app to
Android Mike Dai Wang
“We have this iOS app, now let’s port it to
Android!”
Agenda 1 - The iOS app & cutting scope 2
- UI Design 3 - Process 4 - Architecture 5 - Lessons & challenges
1 - The iOS app & cutting scope
None
None
Admin Fan Messaging Scorekeeping Play by Play Game Recap Live
Game Stream Player Stats Scheduling Roster / Lineup Teams IAP Baseball Logic
Easy to decide what to do Hard to decide what
not to do
Admin Fan Messaging Scorekeeping Play by Play Game Recap Live
Game Stream Player stats Scheduling Roster / Lineup Teams IAP Baseball Logic
2 - UI Design
None
None
None
None
None
None
3 - Process
Let engineers focus on engineering - CI & CD -
Standardize coding style - Setup automation pipeline - Make use of tools - Have good test coverage
PR Quality Check Unit Tests Connected Tests Code Review QA
Alpha Beta
Make use of great tools - Alternatives to Jenkins: Bitrise.io,
Fastlane - Crash reporting: Crashlytics - Error tracking / logging: Rollbar - Analytics: Firebase, Facebook, Snowplow
Get up to speed on Android quickly - Rely on
automated checks and tests - Crash course on view lifecycle & Android SDK - Learn by doing - Modularize & limit impact - Decouple from Android - No one on an island alone
4 - Architecture
Things to keep in mind - Engineers are new to
Android - Efficient & parallel development - Maintainable - Testable - Technical debt
Dependency Injection - Dagger App Scope User Scope Team Scope
Game Scope
Admin Fan Messaging Scorekeeping Play by Play Game Recap Player
stats Roster / Lineup Teams Baseball Logic
Model View Presenter - Why?
None
RxJava / Information Flow View Presenter Repository Network Database Service
Rx stream
None
Admin Fan Messaging Scorekeeping Play by Play Game Recap Player
stats Roster / Lineup Teams Baseball Logic
Messaging Game Recap Baseball Logic
5 - Lessons & Challenges
Custom drawings & animations
None
None
Rx - More than just Observable
Rx - Don’t break the chain
Rx - Subjects Rx - Subscriptions
Dagger - Scope depth - Use multi-binding or AndroidInjector -
Component caching & reuse - Bloated application class - Asynchronous injection - Inject Observables
Results
- App launched by 5 month mark - Built an
Android team - 4.5* review - biggest complaint: missing iOS features ¯\_(ツ)_/¯ - 99.6% crash free - >100k downloads - People are paying $
Q & A