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
Applications and iOS
Search
DAloG
February 24, 2015
Programming
0
260
Applications and iOS
Small guide for different stages of application life in iOS system.
DAloG
February 24, 2015
Tweet
Share
More Decks by DAloG
See All by DAloG
State normalization (RU)
dalog
0
160
Redux + MQTT
dalog
1
750
От задач к проблемам
dalog
1
210
Unlimited power of Data-Driven UI
dalog
4
600
Data-Driven View Controllers. Tips and Tricks
dalog
5
1.8k
2 years of Redux in iOS. Lessons learned
dalog
0
330
Why unidirectional architecture matter for iOS.
dalog
1
260
Mobile backend without REST
dalog
2
83
Self managed teams 101
dalog
0
130
Other Decks in Programming
See All in Programming
Tauriでネイティブアプリを作りたい
tsucchinoko
0
370
Hotwire or React? ~アフタートーク・本編に含めなかった話~ / Hotwire or React? after talk
harunatsujita
1
120
「今のプロジェクトいろいろ大変なんですよ、app/services とかもあって……」/After Kaigi on Rails 2024 LT Night
junk0612
5
2.1k
聞き手から登壇者へ: RubyKaigi2024 LTでの初挑戦が 教えてくれた、可能性の星
mikik0
1
130
リアーキテクチャxDDD 1年間の取り組みと進化
hsawaji
1
220
Quine, Polyglot, 良いコード
qnighy
4
640
LLM生成文章の精度評価自動化とプロンプトチューニングの効率化について
layerx
PRO
2
190
Realtime API 入門
riofujimon
0
150
Outline View in SwiftUI
1024jp
1
330
エンジニアとして関わる要件と仕様(公開用)
murabayashi
0
290
Kaigi on Rails 2024 〜運営の裏側〜
krpk1900
1
210
OSSで起業してもうすぐ10年 / Open Source Conference 2024 Shimane
furukawayasuto
0
100
Featured
See All Featured
Helping Users Find Their Own Way: Creating Modern Search Experiences
danielanewman
29
2.3k
5 minutes of I Can Smell Your CMS
philhawksworth
202
19k
Evolution of real-time – Irina Nazarova, EuRuKo, 2024
irinanazarova
4
370
The Cult of Friendly URLs
andyhume
78
6k
Keith and Marios Guide to Fast Websites
keithpitt
409
22k
Facilitating Awesome Meetings
lara
50
6.1k
Cheating the UX When There Is Nothing More to Optimize - PixelPioneers
stephaniewalter
280
13k
Rebuilding a faster, lazier Slack
samanthasiow
79
8.7k
JavaScript: Past, Present, and Future - NDC Porto 2020
reverentgeek
47
5k
Building an army of robots
kneath
302
43k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
191
16k
Save Time (by Creating Custom Rails Generators)
garrettdimon
PRO
27
840
Transcript
APPLICATIONS IN IOS LONG WAY DOWN Alexey Demedeckiy
AGENDA • Compilation • Packaging • Signing • Sandbox •
Rendering • IPC
COMPILATION • Object system • Runtime • LLVM IR •
Linking • Memory management
OBJECT SYSTEM • Object === C struct • isa -
link to class • Class == Object • Object -> Class -> Metaclass -> NSObject
OBJECTS AND CLASSES AND METACLASSES
RUNTIME • Message sending • @selector(…) • ALL is dynamic
• Swift
LLVM
LINKING • Static (user content) • Dynamic (system frameworks)
MEMORY MANAGEMENT • 2 kind of link: own (strong), use
(weak) • When nobody own an object - destroy it. • Autorelease pool - tmp objects without owners.
PACKAGING • Apps • Bundles • Frameworks • Resources
FINAL APP FOLDER STRUCTURE
APP STRUCTURE
FRAMEWORK STRUCTURE
RESOURCES • Text • Locale specific • Device specific •
System
TEXT
IMAGES
DEVICE SPECIFIC • ~iphone, ~ipad • @2x, @3x • -568
• Asset catalog
ASSET CATALOG • Resizable images • Size class support (orientation,
device) • Smaller
ASSET CATALOG
SYSTEM RESOURCES • iTunes icon • Settings icon • Spotlight
icon • App icon • … (tens of them)
SIGNING
SANDBOX • Only app folder is available. • No access
to other processes. • All system communication - over frameworks
RENDERING • UIKit • CoreAnimation + CoreGraphics • backboardd. (another
process) • 16,5 ms for rendering
IPC • Inter app - over frameworks. • Limited use
cases. • System communication (Photos, Mail, Maps). • URL schemes.
LINKS - COMPILATION • http://www.objc.io/issue-6/mach-o-executables.html • http://clang.llvm.org/docs/IntroductionToTheClangAST.html • http://www.aosabook.org/en/llvm.html •
http://www.objc.io/issue-6/compiler.html
LINKS - RUNTIME • https://www.youtube.com/watch?v=Ii-02vhsdVk • http://habrahabr.ru/post/250955/
LINKS - RESOURCES • https://developer.apple.com/library/ios/recipes/xcode_help- image_catalog-1.0/chapters/CustomizingImageSets.html#// apple_ref/doc/uid/TP40013303-CH5-SW1 • https://developer.apple.com/library/ios/documentation/MacOSX/ Conceptual/BPInternational/MaintaingYourOwnStringsFiles/
MaintaingYourOwnStringsFiles.html • https://developer.apple.com/library/ios/documentation/MacOSX/ Conceptual/BPFrameworks/Frameworks.html#//apple_ref/doc/uid/ 10000183-SW1
LINKS - SIGNINIG • http://www.objc.io/issue-17/inside-code-signing.html • https://developer.apple.com/library/ios/documentation/IDEs/ Conceptual/AppDistributionGuide/Introduction/ Introduction.html#//apple_ref/doc/uid/TP40012582-CH1-SW1
LINKS - RENDERING • https://speakerdeck.com/vtopoliuk/responsive-ui-for-ios-apps • https://developer.apple.com/videos/wwdc/2011/#121
[email protected]
Questions?