Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
Tips & Tricks for iPhone Application Development
Search
Adrian Kosmaczewski
August 27, 2009
Technology
300
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
Tips & Tricks for iPhone Application Development
Presentation shown in Copenhagen, Denmark.
Adrian Kosmaczewski
August 27, 2009
More Decks by Adrian Kosmaczewski
See All by Adrian Kosmaczewski
What's in your Container? Securing the Software Supply Chain without Slowing Down
akosma
0
360
Managing Fleets of Kubernetes Clusters with GitOps
akosma
4
350
DevOps in Switzerland from 2018 to 2022
akosma
4
440
APPUiO Cloud
akosma
2
880
Introduction to K8up
akosma
0
490
Creating Products through DevOps: The Story of VSHN
akosma
0
370
Everyday Life of an Open-Source Company: The Story of VSHN
akosma
0
440
Creating a Product through DevOps: The Story of APPUiO Cloud
akosma
0
920
Migrating the GitLab–Kubernetes Integration from Certificates to the Agent
akosma
0
680
Other Decks in Technology
See All in Technology
DWH の限界突破! AI エージェント向け爆速リアルタイムデータ基盤 ClickHouse
jozono
1
300
Oracle Base Database Service 技術詳細
oracle4engineer
PRO
17
120k
自主式軟體工廠
philipz
0
240
More Freedom on the Same Shared GPU Cluster: A Small Team’s Experience with vCluster
nttcom
0
140
[2026-09-30]ロックンロールは鳴り止まないっ - 信頼性かまってちゃん - 「データ駆動を投げ捨ててまで。」追いかける信頼性改善に向けた取り組みの話
tosite
0
210
FOSS4Gを活用した自治体業務DXの試み
470715
0
120
ハードウェアコンペでもAI駆動開発が進んでいる話
iotengineer22
0
470
[AWS 秋のクラウドオペレーション祭り 2026]AWS DevOps Agentで変わるリリースと運用対応 ~リリース管理機能と Directed actions のご紹介~
furuton
4
1.1k
分析AIエージェントを育てる、動く環境を育てる
codatum
1
380
ログラスのマルチプロダクトを 支える認証基盤 〜テナントごとに異なる統制とどう向き合うか〜
dada4386
3
410
Incremental HTTP
kazuho
5
2.1k
「事実」を「計測」して、「解釈」する 〜AWS Lambdaのメモリ最適解の見つけ方〜
maimyyym
0
120
Featured
See All Featured
Building a Modern Day E-commerce SEO Strategy
aleyda
45
9.2k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
250
1.3M
Chasing Engaging Ingredients in Design
codingconduct
0
350
Design in an AI World
tapps
1
350
DBのスキルで生き残る技術 - AI時代におけるテーブル設計の勘所
soudai
PRO
68
58k
The Hidden Cost of Media on the Web [PixelPalooza 2025]
tammyeverts
2
510
Accessibility Awareness
sabderemane
1
240
Mind Mapping
helmedeiros
1
390
The AI Search Optimization Roadmap by Aleyda Solis
aleyda
2
6.3k
We Are The Robots
honzajavorek
0
390
30 Presentation Tips
portentint
PRO
1
420
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
35
3.8k
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?