$30 off During Our Annual Pro Sale. View Details »
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
180
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
4
270
DevOps in Switzerland from 2018 to 2022
akosma
4
340
APPUiO Cloud
akosma
2
760
Introduction to K8up
akosma
0
410
Creating Products through DevOps: The Story of VSHN
akosma
0
270
Everyday Life of an Open-Source Company: The Story of VSHN
akosma
0
350
Creating a Product through DevOps: The Story of APPUiO Cloud
akosma
0
710
Migrating the GitLab–Kubernetes Integration from Certificates to the Agent
akosma
0
570
APPUiO Cloud: Making of a Swiss PaaS
akosma
0
270
Other Decks in Technology
See All in Technology
Strands AgentsとNova 2 SonicでS2Sを実践してみた
yama3133
1
1.9k
AI との良い付き合い方を僕らは誰も知らない
asei
0
270
Connection-based OAuthから学ぶOAuth for AI Agents
flatt_security
0
380
AWS re:Invent 2025~初参加の成果と学び~
kubomasataka
1
190
AWSに革命を起こすかもしれない新サービス・アップデートについてのお話
yama3133
0
510
AI時代のワークフロー設計〜Durable Functions / Step Functions / Strands Agents を添えて〜
yakumo
3
2.3k
"人"が頑張るAI駆動開発
yokomachi
1
620
障害対応訓練、その前に
coconala_engineer
0
200
「もしもデータ基盤開発で『強くてニューゲーム』ができたなら今の僕はどんなデータ基盤を作っただろう」
aeonpeople
0
250
SREが取り組むデプロイ高速化 ─ Docker Buildを最適化した話
capytan
0
150
20251219 OpenIDファウンデーション・ジャパン紹介 / OpenID Foundation Japan Intro
oidfj
0
500
フルカイテン株式会社 エンジニア向け採用資料
fullkaiten
0
9.9k
Featured
See All Featured
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
359
30k
State of Search Keynote: SEO is Dead Long Live SEO
ryanjones
0
71
実際に使うSQLの書き方 徹底解説 / pgcon21j-tutorial
soudai
PRO
196
70k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
52
5.8k
How STYLIGHT went responsive
nonsquared
100
6k
Designing for humans not robots
tammielis
254
26k
The Myth of the Modular Monolith - Day 2 Keynote - Rails World 2024
eileencodes
26
3.3k
Designing Dashboards & Data Visualisations in Web Apps
destraynor
231
54k
Reflections from 52 weeks, 52 projects
jeffersonlam
355
21k
From Legacy to Launchpad: Building Startup-Ready Communities
dugsong
0
110
Practical Orchestrator
shlominoach
190
11k
My Coaching Mixtape
mlcsv
0
13
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?