$30 off During Our Annual Pro Sale. View Details »
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
Mobile Development - BTalk
Search
Sing Jie Lee
January 09, 2013
Technology
1
98
Mobile Development - BTalk
Talks about general iOS development and some mobile stats on BTalk - a mobile messenger.
Sing Jie Lee
January 09, 2013
Tweet
Share
More Decks by Sing Jie Lee
See All by Sing Jie Lee
Infocomm Media Youth Festival 2016 - Career Talk
singjie
0
55
Sprite Kit
singjie
0
56
SiriKit
singjie
0
200
React Native
singjie
1
84
Arduino
singjie
0
41
Software Engineering
singjie
0
51
Advanced Core Data
singjie
0
38
Amazon Echo and Home Integration
singjie
0
100
CS3216 Garena Project X
singjie
0
49
Other Decks in Technology
See All in Technology
[JAWS-UG 横浜支部 #91]DevOps Agent vs CloudWatch Investigations -比較と実践-
sh_fk2
2
260
MLflowダイエット大作戦
lycorptech_jp
PRO
1
120
ChatGPTで論⽂は読めるのか
spatial_ai_network
9
28k
Karate+Database RiderによるAPI自動テスト導入工数をCline+GitLab MCPを使って2割削減を目指す! / 20251206 Kazuki Takahashi
shift_evolve
PRO
1
750
AWS CLIの新しい認証情報設定方法aws loginコマンドの実態
wkm2
6
740
Gemini でコードレビュー知見を見える化
zozotech
PRO
1
250
GitHub Copilotを使いこなす 実例に学ぶAIコーディング活用術
74th
3
3.1k
生成AI活用の型ハンズオン〜顧客課題起点で設計する7つのステップ
yushin_n
0
160
業務のトイルをバスターせよ 〜AI時代の生存戦略〜
staka121
PRO
2
180
re:Invent 2025 ふりかえり 生成AI版
takaakikakei
1
210
Challenging Hardware Contests with Zephyr and Lessons Learned
iotengineer22
0
210
評価駆動開発で不確実性を制御する - MLflow 3が支えるエージェント開発
databricksjapan
1
180
Featured
See All Featured
Stop Working from a Prison Cell
hatefulcrawdad
273
21k
Building an army of robots
kneath
306
46k
Responsive Adventures: Dirty Tricks From The Dark Corners of Front-End
smashingmag
254
22k
The Illustrated Children's Guide to Kubernetes
chrisshort
51
51k
Automating Front-end Workflow
addyosmani
1371
200k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
249
1.3M
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.3k
Speed Design
sergeychernyshev
33
1.4k
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
35
2.3k
Improving Core Web Vitals using Speculation Rules API
sergeychernyshev
21
1.3k
Agile that works and the tools we love
rasmusluckow
331
21k
Code Reviewing Like a Champion
maltzj
527
40k
Transcript
Mobile Development Monday, January 21, 13
Agenda • Lifecycle of App • Mobile Design Principles •
Responsive • Memory Management • Network • Maintainability • Other Stuffs Monday, January 21, 13
Lifecycle of an App Monday, January 21, 13
Monday, January 21, 13
Different states of App Active Background Suspended Inactive Not Running
Monday, January 21, 13
Different states of App Active Background Suspended Inactive Not Running
Monday, January 21, 13
Different states of App Active Background Suspended Inactive Not Running
Free up memory Disconnect Reconnect Monday, January 21, 13
Mobile Design Principles • Performance • Responsiveness • Optimal memory
usage • Network • Maintainability Monday, January 21, 13
Responsiveness • Never block the main thread • Always dispatch
complex data handling to background threads • Utilize cache Monday, January 21, 13
Responsiveness • Image Processing User selects a picture Process Image
Main Thread Update UI Background Monday, January 21, 13
Example: Image Processing BBImageLoop::Post(^{ processedImage = ImageProcessor.Process(image); BBUILoop::Post(^{ [self updateUI:processedImage];
}); }); User selects a picture Process Image BBUILoop Update UI BBImageLoop Monday, January 21, 13
Responsiveness • Queues • BBUILoop • BBSoundLoop • BBImageLoop •
BBDLCoreData • BBDBLoop Monday, January 21, 13
Responsiveness • Queues/Operations are cancelable // Sending out Request tcp.requestNearbyBuddies();
handler = BBUILoop::DelayPost(^{ showTimeoutScreen(); }, 5000); ... ... // Response received BBUILoop::Cancel(handler); Monday, January 21, 13
• Queues • Use one queue per subsystem • Know
your queues / threads • Can be cancelled Responsiveness Monday, January 21, 13
Memory Management User Experience Low Memory Usage Monday, January 21,
13
Memory Management User Experience Low Memory Usage App is Active
Monday, January 21, 13
Memory Management User Experience Low Memory Usage App is in
Background/Suspended Monday, January 21, 13
Memory Management • Active? • Use comfortably, but be practical
• Inactive/Background? • Free up memory as much as possible • If not, Apple kills you in background Monday, January 21, 13
Anything lesser than that is a good gauge Memory Management
Apps in Background Monday, January 21, 13
Optimal Memory Usage • Stay SAFE in background • Utilize
system’s memory warning • Ensure no memory leaks Monday, January 21, 13
Use Instruments Monday, January 21, 13
Use Instruments Monday, January 21, 13
Network • Minimize network requests • Timeout is necessary •
Always assume: Network is BAD Monday, January 21, 13
Network Monday, January 21, 13
Network • Bad network : Delays • Prevent sending out
same requests before timeout • Cache responses Monday, January 21, 13
• Bad network : Disconnect • Queue critical requests •
Fast / Safe Queue • Resend requests after reconnection • Requestid is essential Network Monday, January 21, 13
• Fast Queue • Safe Queue Network Client Client Server
Server Monday, January 21, 13
• Fast Queue • Safe Queue Network Client Client Server
Server Chats Daily Life Monday, January 21, 13
Maintainability • Modular Code • Easy to Read • Proper
class/method names Monday, January 21, 13
Maintainability • BTalk is built on modular code Core Network
FileSystem MediaEngine ... DailyLife ... Video Draw Monday, January 21, 13
Added by Daily Life Plugin Monday, January 21, 13
Added by Plugins Monday, January 21, 13
Maintainability Core Network FileSystem MediaEngine ... DailyLife ... Video Draw
Plugin Manager register get Monday, January 21, 13
Some other stuffs la Monday, January 21, 13
Tracker • PivotalTracker • Schedule management tool cum bugs tracker
• Manages schedule for you • Generate Weekly Report Monday, January 21, 13
PivotalTracker Monday, January 21, 13
PivotalTracker • Generated Weekly Report and Schedule Monday, January 21,
13
Insights on Mobile Stats Monday, January 21, 13
Insights on Mobile Stats • Uses Flurry SDK • ~20kB
per session • Client stats collection is needed Monday, January 21, 13
Number of Sessions Monday, January 21, 13
Median Session Length Monday, January 21, 13
Session Length Monday, January 21, 13
User Paths Monday, January 21, 13
User Paths Monday, January 21, 13
Thank You 谢谢 Always write human readable code Monday, January
21, 13