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
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
Embedded SREの終わりを設計する 「なんとなく」から計画的な自立支援へ
sansantech
PRO
3
2.5k
Data Hubグループ 紹介資料
sansan33
PRO
0
2.7k
15 years with Rails and DDD (AI Edition)
andrzejkrzywda
0
200
ブロックテーマでサイトをリニューアルした話 / 2026-01-31 Kansai WordPress Meetup
torounit
0
470
Amazon Bedrock Knowledge Basesチャンキング解説!
aoinoguchi
0
150
コミュニティが変えるキャリアの地平線:コロナ禍新卒入社のエンジニアがAWSコミュニティで見つけた成長の羅針盤
kentosuzuki
0
120
20260208_第66回 コンピュータビジョン勉強会
keiichiito1978
0
180
Codex 5.3 と Opus 4.6 にコーポレートサイトを作らせてみた / Codex 5.3 vs Opus 4.6
ama_ch
0
180
AI駆動開発を事業のコアに置く
tasukuonizawa
1
270
Greatest Disaster Hits in Web Performance
guaca
0
270
Agile Leadership Summit Keynote 2026
m_seki
1
650
仕様書駆動AI開発の実践: Issue→Skill→PRテンプレで 再現性を作る
knishioka
2
680
Featured
See All Featured
Let's Do A Bunch of Simple Stuff to Make Websites Faster
chriscoyier
508
140k
sira's awesome portfolio website redesign presentation
elsirapls
0
150
Mind Mapping
helmedeiros
PRO
0
88
Data-driven link building: lessons from a $708K investment (BrightonSEO talk)
szymonslowik
1
910
A Guide to Academic Writing Using Generative AI - A Workshop
ks91
PRO
0
210
Pawsitive SEO: Lessons from My Dog (and Many Mistakes) on Thriving as a Consultant in the Age of AI
davidcarrasco
0
67
Imperfection Machines: The Place of Print at Facebook
scottboms
269
14k
Color Theory Basics | Prateek | Gurzu
gurzu
0
200
Chasing Engaging Ingredients in Design
codingconduct
0
110
How To Speak Unicorn (iThemes Webinar)
marktimemedia
1
380
SEO for Brand Visibility & Recognition
aleyda
0
4.2k
The Language of Interfaces
destraynor
162
26k
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