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
February 02, 2010
Technology
0
110
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
Managing Fleets of Kubernetes Clusters with GitOps
akosma
3
150
DevOps in Switzerland from 2018 to 2022
akosma
3
220
APPUiO Cloud
akosma
2
620
Introduction to K8up
akosma
0
270
Creating Products through DevOps: The Story of VSHN
akosma
0
170
Everyday Life of an Open-Source Company: The Story of VSHN
akosma
0
220
Creating a Product through DevOps: The Story of APPUiO Cloud
akosma
0
520
Migrating the GitLab–Kubernetes Integration from Certificates to the Agent
akosma
0
390
APPUiO Cloud: Making of a Swiss PaaS
akosma
0
170
Other Decks in Technology
See All in Technology
暴カワでビデオシンセサイザーを導入する技術
yuchi
2
130
Oracle Cloud Infrastructure:2024年10月度サービス・アップデート
oracle4engineer
PRO
0
190
Nuxt × Vue Router の力を最大限に引き出す機能を紹介
ytr0903
2
330
俺とVSCode Python Debugger Extension
sat
PRO
1
150
Cosmos DB で持続可能な RAG を実現しよう!~ AOAI Dev Day ふりかえりを添えて / Sustainable RAG with Cosmos DB with recap AOAI Dev Day
miyake
0
180
組織デバイスのための効率的なアプリケーション更新戦略
kenchan0130
0
460
LLMOps : ΔMLOps
shuntaito
13
2.1k
サーバレスで挑む IoT プロジェクトの現実解 / Real solutions for the IoT project using serverless service
genkiogasawara
1
130
全社を巻き込んだ業務オペレーション改善と、それは事業成長に貢献しているのか?を実感した話
marroooon
0
150
最新のWasm事情
askua
5
2.5k
APIs for AI: Have we failed?
zdne
0
130
寒冷地稲作の歴史にみるコミュニティ
miu_crescent
2
140
Featured
See All Featured
Optimizing for Happiness
mojombo
376
69k
How STYLIGHT went responsive
nonsquared
95
5.1k
KATA
mclloyd
29
13k
Put a Button on it: Removing Barriers to Going Fast.
kastner
58
3.5k
Git: the NoSQL Database
bkeepers
PRO
425
64k
Practical Orchestrator
shlominoach
186
10k
How To Stay Up To Date on Web Technology
chriscoyier
788
250k
How to Create Impact in a Changing Tech Landscape [PerfNow 2023]
tammyeverts
46
2.1k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
167
49k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
9
630
Building a Scalable Design System with Sketch
lauravandoore
459
33k
Pencils Down: Stop Designing & Start Developing
hursman
119
11k
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?