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
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
85
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
制約が導く迷わない設計 〜 信頼性と運用性を両立するマイナンバー管理システムの実践 〜
bwkw
3
920
Amazon Bedrock Knowledge Basesチャンキング解説!
aoinoguchi
0
130
AI駆動開発を事業のコアに置く
tasukuonizawa
1
140
~Everything as Codeを諦めない~ 後からCDK
mu7889yoon
3
320
Frontier Agents (Kiro autonomous agent / AWS Security Agent / AWS DevOps Agent) の紹介
msysh
3
160
Oracle Cloud Observability and Management Platform - OCI 運用監視サービス概要 -
oracle4engineer
PRO
2
14k
AIエージェントを開発しよう!-AgentCore活用の勘所-
yukiogawa
0
150
2026年、サーバーレスの現在地 -「制約と戦う技術」から「当たり前の実行基盤」へ- /serverless2026
slsops
2
220
今日から始めるAmazon Bedrock AgentCore
har1101
4
400
ClickHouseはどのように大規模データを活用したAIエージェントを全社展開しているのか
mikimatsumoto
0
220
20260204_Midosuji_Tech
takuyay0ne
1
140
[CV勉強会@関東 World Model 読み会] Orbis: Overcoming Challenges of Long-Horizon Prediction in Driving World Models (Mousakhan+, NeurIPS 2025)
abemii
0
110
Featured
See All Featured
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
31
9.9k
[RailsConf 2023] Rails as a piece of cake
palkan
59
6.3k
For a Future-Friendly Web
brad_frost
182
10k
エンジニアに許された特別な時間の終わり
watany
106
230k
Rebuilding a faster, lazier Slack
samanthasiow
85
9.4k
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
133
19k
The Limits of Empathy - UXLibs8
cassininazir
1
210
DevOps and Value Stream Thinking: Enabling flow, efficiency and business value
helenjbeal
1
92
How To Stay Up To Date on Web Technology
chriscoyier
791
250k
Building Adaptive Systems
keathley
44
2.9k
First, design no harm
axbom
PRO
2
1.1k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.3k
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