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
77
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
97
DevOps in Switzerland from 2018 to 2022
akosma
3
180
APPUiO Cloud
akosma
2
580
Introduction to K8up
akosma
0
230
Creating Products through DevOps: The Story of VSHN
akosma
0
130
Everyday Life of an Open-Source Company: The Story of VSHN
akosma
0
190
Creating a Product through DevOps: The Story of APPUiO Cloud
akosma
0
480
Migrating the GitLab–Kubernetes Integration from Certificates to the Agent
akosma
0
340
APPUiO Cloud: Making of a Swiss PaaS
akosma
0
140
Other Decks in Technology
See All in Technology
AIアシスタントの活用で品質の向上と開発ワークフローのスピードアップ
nagix
1
210
データベース研修 DB基礎【MIXI 24新卒技術研修】
mixi_engineers
PRO
0
220
Github Actions 로 Android 팀의 효율성 극대화
hadonghyun
0
160
AWS IAMのアンチパターン/AWSが考える最低権限実現へのアプローチ概略(JAWS-UG朝会#59資料改修20分版)
htan
0
330
セキュリティ研修 Day1【MIXI 24新卒技術研修】
mixi_engineers
PRO
0
160
AWSでRAGを作る法方
sonoda_mj
1
140
OSSコミットしてZennの課題を解決した話
dyoshikawa1993
0
150
AutomatedLabを使って内部ペンテストを勉強しよう! -やられ社内ネットワークの自動構築-
n_etupirka
1
610
スタートアップにおける組織設計とスクラムの長期戦略 / Scrum Fest Kanazawa 2024
yoshikiiida
13
3.6k
Classmethod流のPlatform Engineering / classmethod-platform-engineering-devio2024
tomoki10
0
480
テストケースの自動生成に生成AIの導入を試みた話と生成AIによる今後の期待
shift_evolve
0
190
ソフトウェアエンジニアリングの知見を活かして データ基盤をいい感じにする on Snowflake [MIERUNE BBQ #10]
mtpooh
2
150
Featured
See All Featured
How to Think Like a Performance Engineer
csswizardry
4
590
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
26
2.1k
Building Effective Engineering Teams - LeadDev
addyosmani
47
2.2k
Faster Mobile Websites
deanohume
303
30k
What the flash - Photography Introduction
edds
65
11k
Fight the Zombie Pattern Library - RWD Summit 2016
marcelosomers
228
16k
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
149
45k
Optimising Largest Contentful Paint
csswizardry
18
2.6k
The Invisible Side of Design
smashingmag
294
50k
[RailsConf 2023 Opening Keynote] The Magic of Rails
eileencodes
17
8.7k
It's Worth the Effort
3n
181
27k
In The Pink: A Labor of Love
frogandcode
139
22k
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?