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
Tips & Tricks for iPhone Application Development
Search
Adrian Kosmaczewski
August 27, 2009
Technology
0
130
Tips & Tricks for iPhone Application Development
Presentation shown in Copenhagen, Denmark.
Adrian Kosmaczewski
August 27, 2009
Tweet
Share
More Decks by Adrian Kosmaczewski
See All by Adrian Kosmaczewski
Managing Fleets of Kubernetes Clusters with GitOps
akosma
4
230
DevOps in Switzerland from 2018 to 2022
akosma
3
300
APPUiO Cloud
akosma
2
700
Introduction to K8up
akosma
0
360
Creating Products through DevOps: The Story of VSHN
akosma
0
240
Everyday Life of an Open-Source Company: The Story of VSHN
akosma
0
290
Creating a Product through DevOps: The Story of APPUiO Cloud
akosma
0
650
Migrating the GitLab–Kubernetes Integration from Certificates to the Agent
akosma
0
490
APPUiO Cloud: Making of a Swiss PaaS
akosma
0
240
Other Decks in Technology
See All in Technology
Javaで作る RAGを活用した Q&Aアプリケーション
recruitengineers
PRO
1
110
How Community Opened Global Doors
hiroramos4
PRO
1
120
VISITS_AIIoTビジネス共創ラボ登壇資料.pdf
iotcomjpadmin
0
160
Microsoft Build 2025 技術/製品動向 for Microsoft Startup Tech Community
torumakabe
2
260
BigQuery Remote FunctionでLooker Studioをインタラクティブ化
cuebic9bic
3
270
mrubyと micro-ROSが繋ぐロボットの世界
kishima
2
220
AWS アーキテクチャ作図入門/aws-architecture-diagram-101
ma2shita
29
11k
ひとり情シスなCTOがLLMと始めるオペレーション最適化 / CTO's LLM-Powered Ops
yamitzky
0
420
SalesforceArchitectGroupOsaka#20_CNX'25_Report
atomica7sei
0
150
M3 Expressiveの思想に迫る
chnotchy
0
100
より良いプロダクトの開発を目指して - 情報を中心としたプロダクト開発 #phpcon #phpcon2025
bengo4com
1
3.1k
AIエージェント最前線! Amazon Bedrock、Amazon Q、そしてMCPを使いこなそう
minorun365
PRO
13
5k
Featured
See All Featured
Why Our Code Smells
bkeepers
PRO
337
57k
For a Future-Friendly Web
brad_frost
179
9.8k
Chrome DevTools: State of the Union 2024 - Debugging React & Beyond
addyosmani
7
700
Making the Leap to Tech Lead
cromwellryan
134
9.3k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
138
34k
Java REST API Framework Comparison - PWX 2021
mraible
31
8.6k
Code Review Best Practice
trishagee
68
18k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
29
1.8k
Mobile First: as difficult as doing things right
swwweet
223
9.7k
The Pragmatic Product Professional
lauravandoore
35
6.7k
Faster Mobile Websites
deanohume
307
31k
Fashionably flexible responsive web design (full day workshop)
malarkey
407
66k
Transcript
tips & tricks for iPhone application development
None
adrian kosmaczewski
akosma software akosma.com akosma.tumblr.com github.com/akosma linkedin.com/in/akosma facebook.com/akosma
@akosma
None
some questions
@perlausten? @supermouse? @williwu?
new to iPhone?
technologies?
J2EE, J2ME, .NET, RoR, others?
programming languages?
C / C++? Java, C#? Ruby, Python, Lua? JavaScript?
None
iPhone dev ≠ web dev
None
Cocoa & Objective-C
born in the 80s
None
None
None
None
Objective-C
Objective-C Java @interface & @implementation class @protocol interface #import //
files! import // classes! categories n/a id n/a
• Thin layer around C • Message-dispatch runtime • Static
and dynamic (you choose) • The “real” father of Java: • http://cs.gmu.edu/~sean/stuff/java-objc.html
• Single inheritance + interfaces (“@protocols”) • @protocols can have
optional methods • Fields protected by default • All methods are virtual and overridable • Methods can be added to existing classes • Full introspection / reflection • Messages can be intercepted and forwarded • à la AOP!
Cocoa Touch
None
None
iPhone Specifics
None
128 or 256 MB RAM
~70 MB for the OS!
no swap file
(no virtual memory)
no garbage collector
(manual memory management)
http://cocoadevcentral.com/d/learn_objectivec/
no automatic objects on the stack (C++)
// C++ // Memory freed when out of scope std::string
name(“Adrian”); std::string *name = NULL; name = new std::string(“Adrian”); delete name;
hygiene
None
memory warnings
None
avoid autorelease
None
None
lazy-loading & reuse
None
custom table cells & reuse
None
override setters properly
None
beware of delegation
None
instruments & static analysis
None
warnings as errors
None
code organization
(cheaper maintenance)
None
iPhone ≠ computer
http://www.flickr.com/photos/oskay/365607662/
http://www.flickr.com/photos/blakespot/2379207825/
http://www.flickr.com/photos/oskay/365607591/
None
books
None
None
None
None
None
None
None
None
None
thanks!
questions?