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
160
DevOps in Switzerland from 2018 to 2022
akosma
3
230
APPUiO Cloud
akosma
2
630
Introduction to K8up
akosma
0
280
Creating Products through DevOps: The Story of VSHN
akosma
0
180
Everyday Life of an Open-Source Company: The Story of VSHN
akosma
0
230
Creating a Product through DevOps: The Story of APPUiO Cloud
akosma
0
540
Migrating the GitLab–Kubernetes Integration from Certificates to the Agent
akosma
0
400
APPUiO Cloud: Making of a Swiss PaaS
akosma
0
190
Other Decks in Technology
See All in Technology
OCI Network Firewall 概要
oracle4engineer
PRO
0
4.1k
TanStack Routerに移行するのかい しないのかい、どっちなんだい! / Are you going to migrate to TanStack Router or not? Which one is it?
kaminashi
0
590
SREによる隣接領域への越境とその先の信頼性
shonansurvivors
2
520
Terraform Stacks入門 #HashiTalks
msato
0
350
CysharpのOSS群から見るModern C#の現在地
neuecc
2
3.3k
Adopting Jetpack Compose in Your Existing Project - GDG DevFest Bangkok 2024
akexorcist
0
110
サイバーセキュリティと認知バイアス:対策の隙を埋める心理学的アプローチ
shumei_ito
0
380
Python(PYNQ)がテーマのAMD主催のFPGAコンテストに参加してきた
iotengineer22
0
480
Amazon Personalizeのレコメンドシステム構築、実際何するの?〜大体10分で具体的なイメージをつかむ〜
kniino
1
100
Lambdaと地方とコミュニティ
miu_crescent
2
370
信頼性に挑む中で拡張できる・得られる1人のスキルセットとは?
ken5scal
2
530
ExaDB-D dbaascli で出来ること
oracle4engineer
PRO
0
3.8k
Featured
See All Featured
Designing on Purpose - Digital PM Summit 2013
jponch
115
7k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
232
17k
For a Future-Friendly Web
brad_frost
175
9.4k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
28
9.1k
Put a Button on it: Removing Barriers to Going Fast.
kastner
59
3.5k
Statistics for Hackers
jakevdp
796
220k
RailsConf 2023
tenderlove
29
900
BBQ
matthewcrist
85
9.3k
Refactoring Trust on Your Teams (GOTO; Chicago 2020)
rmw
31
2.7k
The Illustrated Children's Guide to Kubernetes
chrisshort
48
48k
Practical Tips for Bootstrapping Information Extraction Pipelines
honnibal
PRO
10
720
Unsuck your backbone
ammeep
668
57k
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?