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
Sponsored
·
Your Podcast. Everywhere. Effortlessly.
Share. Educate. Inspire. Entertain. You do you. We'll handle the rest.
→
Adrian Kosmaczewski
February 02, 2010
Technology
0
190
Tips & Tricks for iPhone Application Development
Presentation shown during a SkillsMatter event in London, United Kingdom.
Adrian Kosmaczewski
February 02, 2010
Tweet
Share
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
22
Managing Fleets of Kubernetes Clusters with GitOps
akosma
4
280
DevOps in Switzerland from 2018 to 2022
akosma
4
360
APPUiO Cloud
akosma
2
780
Introduction to K8up
akosma
0
430
Creating Products through DevOps: The Story of VSHN
akosma
0
290
Everyday Life of an Open-Source Company: The Story of VSHN
akosma
0
370
Creating a Product through DevOps: The Story of APPUiO Cloud
akosma
0
760
Migrating the GitLab–Kubernetes Integration from Certificates to the Agent
akosma
0
610
Other Decks in Technology
See All in Technology
SaaSからAIへの過渡期の中で現在、組織内で起こっている変化 / SaaS to AI Paradigm Shift
aeonpeople
0
120
EMからVPoEを経てCTOへ:マネジメントキャリアパスにおける葛藤と成長
kakehashi
PRO
9
1.6k
Evolution of Claude Code & How to use features
oikon48
1
570
ナレッジワークのご紹介(第88回情報処理学会 )
kworkdev
PRO
0
170
マルチプレーンGPUネットワークを実現するシャッフルアーキテクチャの整理と考察
markunet
2
230
Claude Code のコード品質がばらつくので AI に品質保証させる仕組みを作った話 / A story about building a mechanism to have AI ensure quality, because the code quality from Claude Code was inconsistent
nrslib
10
3.6k
vLLM Community Meetup Tokyo #3 オープニングトーク
jpishikawa
0
310
JAWSDAYS2026_A-6_現場SEが語る 回せるセキュリティ運用~設計で可視化、AIで加速する「楽に回る」運用設計のコツ~
shoki_hata
0
2.9k
組織全体で実現する標準監視設計
yuobayashi
2
470
Claude Code Skills 勉強会 (DevelersIO向けに調整済み) / claude code skills for devio
masahirokawahara
1
13k
Oracle Database@Google Cloud:サービス概要のご紹介
oracle4engineer
PRO
5
1.1k
20260311 ビジネスSWG活動報告(デジタルアイデンティティ人材育成推進WG Ph2 活動報告会)
oidfj
0
240
Featured
See All Featured
End of SEO as We Know It (SMX Advanced Version)
ipullrank
3
4.1k
Music & Morning Musume
bryan
47
7.1k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
287
14k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
32
2.8k
Code Review Best Practice
trishagee
74
20k
Lightning Talk: Beautiful Slides for Beginners
inesmontani
PRO
1
480
Six Lessons from altMBA
skipperchong
29
4.2k
What Being in a Rock Band Can Teach Us About Real World SEO
427marketing
0
190
Git: the NoSQL Database
bkeepers
PRO
432
66k
How to make the Groovebox
asonas
2
2k
Highjacked: Video Game Concept Design
rkendrick25
PRO
1
310
First, design no harm
axbom
PRO
2
1.1k
Transcript
Tips & Tricks for iPhone Application Development Skills Matter -
London - February 2nd 2010
None
Adrian Kosmaczewski
akosma software akosma.com akosma.tumblr.com github.com/akosma linkedin.com/in/akosma facebook.com/akosma
@akosma
None
some questions
new to iPhone?
designer? developer?
technologies?
Android J2EE J2ME .NET Ruby on Rails others?
programming languages?
C / C++? Java, C#? Ruby, Python, Lua? JavaScript?
None
Dev Days for iPhone
Mon, April 26th 2010
Win a free ticket!
Fill your evaluation form! :)
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 (1 file) @protocol interface
#import // files! import // classes! categories n/a (in C#, “class extensions”) id n/a (generics?)
Objective-C Java @selector n/a NSObject / NSProxy / ... Object
@public / @protected / @private public / protected / private @try / @catch / @finally NSException try / catch / finally Exception n/a package / namespace
• Thin layer around C • Message-dispatch runtime • Static
and dynamic (you choose) • The “real” inspiration for 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
None
None
None
None
Demo
None
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/
Mobile HIG
now more important than ever!
None
None
None
None
NDA
None
books
None
None
None
None
None
None
None
None
None
thanks!
Please fill your evaluation forms!
(you could win a ticket)
questions?