Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥
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
「もしもデータ基盤開発で『強くてニューゲーム』ができたなら今の僕はどんなデータ基盤を作っただろう」
aeonpeople
0
240
AI駆動開発ライフサイクル(AI-DLC)の始め方
ryansbcho79
0
170
100以上の新規コネクタ提供を可能にしたアーキテクチャ
ooyukioo
0
250
通勤手当申請チェックエージェント開発のリアル
whisaiyo
3
450
AWSインフルエンサーへの道 / load of AWS Influencer
whisaiyo
0
220
AWS運用を効率化する!AWS Organizationsを軸にした一元管理の実践/nikkei-tech-talk-202512
nikkei_engineer_recruiting
0
170
Building Serverless AI Memory with Mastra × AWS
vvatanabe
0
530
フルカイテン株式会社 エンジニア向け採用資料
fullkaiten
0
9.9k
子育てで想像してなかった「見えないダメージ」 / Unforeseen "hidden burdens" of raising children.
pauli
2
320
なぜ あなたはそんなに re:Invent に行くのか?
miu_crescent
PRO
0
200
20251218_AIを活用した開発生産性向上の全社的な取り組みの進め方について / How to proceed with company-wide initiatives to improve development productivity using AI
yayoi_dd
0
660
Amazon Connect アップデート! AIエージェントにMCPツールを設定してみた!
ysuzuki
0
130
Featured
See All Featured
Leo the Paperboy
mayatellez
0
1.3k
技術選定の審美眼(2025年版) / Understanding the Spiral of Technologies 2025 edition
twada
PRO
115
92k
We Have a Design System, Now What?
morganepeng
54
7.9k
Bridging the Design Gap: How Collaborative Modelling removes blockers to flow between stakeholders and teams @FastFlow conf
baasie
0
410
How STYLIGHT went responsive
nonsquared
100
6k
The Power of CSS Pseudo Elements
geoffreycrofte
80
6.1k
AI in Enterprises - Java and Open Source to the Rescue
ivargrimstad
0
1.1k
Learning to Love Humans: Emotional Interface Design
aarron
274
41k
Leveraging LLMs for student feedback in introductory data science courses - posit::conf(2025)
minecr
0
88
Done Done
chrislema
186
16k
Building Adaptive Systems
keathley
44
2.9k
A better future with KSS
kneath
240
18k
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