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
98
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
まずはマネコンでちゃちゃっと作ってから、それをCDKにしてみよか。
yamada_r
2
120
初めてAWSを使うときのセキュリティ覚書〜初心者支部編〜
cmusudakeisuke
1
280
株式会社ログラス - 会社説明資料【エンジニア】/ Loglass Engineer
loglass2019
4
65k
実践!カスタムインストラクション&スラッシュコマンド
puku0x
0
490
新規プロダクトでプロトタイプから正式リリースまでNext.jsで開発したリアル
kawanoriku0
1
180
【NoMapsTECH 2025】AI Edge Computing Workshop
akit37
0
220
Modern Linux
oracle4engineer
PRO
0
160
slog.Handlerのよくある実装ミス
sakiengineer
4
440
これでもう迷わない!Jetpack Composeの書き方実践ガイド
zozotech
PRO
0
1k
Codeful Serverless / 一人運用でもやり抜く力
_kensh
7
450
💡Ruby 川辺で灯すPicoRubyからの光
bash0c7
0
120
AIエージェントで90秒の広告動画を制作!台本・音声・映像・編集をつなぐAWS最新アーキテクチャの実践
nasuvitz
3
330
Featured
See All Featured
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.4k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
53k
Designing for Performance
lara
610
69k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
234
17k
Building a Modern Day E-commerce SEO Strategy
aleyda
43
7.6k
Making the Leap to Tech Lead
cromwellryan
135
9.5k
Building Better People: How to give real-time feedback that sticks.
wjessup
368
19k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
46
7.6k
Performance Is Good for Brains [We Love Speed 2024]
tammyeverts
12
1.1k
Product Roadmaps are Hard
iamctodd
PRO
54
11k
Why Our Code Smells
bkeepers
PRO
339
57k
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