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
110
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
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
530
Migrating the GitLab–Kubernetes Integration from Certificates to the Agent
akosma
0
400
APPUiO Cloud: Making of a Swiss PaaS
akosma
0
180
Other Decks in Technology
See All in Technology
EKS初心者が早めに知っておきたかったこと
cuorain
0
140
ガチ勢によるPipeCD運用大全〜滑らかなCI/CDを添えて〜 / ai-pipecd-encyclopedia
cyberagentdevelopers
PRO
2
140
クライアントサイドでよく使われる Debounce処理 をサーバサイドで3回実装した話
yoshiori
1
130
サイロ化した金融システムを、packwerk を利用して無事故でリファクタリングした話
coincheck_recruit
3
3.2k
Comparing Apache Flink and Spark for Modern Stream Data Processing
sharonx
0
180
急成長中のWINTICKETにおける品質と開発スピードと向き合ったQA戦略と今後の展望 / winticket-autify
cyberagentdevelopers
PRO
1
120
現実のRuby/Railsアップグレード
takeyuweb
3
3.1k
Tokyo dbt Meetup #10 dbt Cloudユーザー会 & パネルディスカッション
dbttokyo
1
180
Railway Oriented Programming を オニオンアーキテクチャに適用する by kotlin-result / Railway Oriented Programming in Onion Architecture by kotlin-result
yuitosato
2
210
[PyCon Korea 2024] Lightning Talk: PyPI패키지를 의심하세요
studioego
PRO
0
130
ガバメントクラウド単独利用方式におけるIaC活用
techniczna
3
180
日経ビジュアルデータにおける スクロールテリングと地図/nikkei-tech-talk-26
nikkei_engineer_recruiting
0
160
Featured
See All Featured
Building a Scalable Design System with Sketch
lauravandoore
459
33k
A Tale of Four Properties
chriscoyier
156
23k
Optimizing for Happiness
mojombo
376
69k
Thoughts on Productivity
jonyablonski
67
4.3k
Git: the NoSQL Database
bkeepers
PRO
425
64k
Designing for humans not robots
tammielis
249
25k
Code Reviewing Like a Champion
maltzj
519
39k
How to Think Like a Performance Engineer
csswizardry
19
1.1k
Navigating Team Friction
lara
183
14k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
28
9k
A Modern Web Designer's Workflow
chriscoyier
692
190k
jQuery: Nuts, Bolts and Bling
dougneiner
61
7.5k
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?