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
150
Redux + MQTT
dalog
1
730
От задач к проблемам
dalog
1
170
Unlimited power of Data-Driven UI
dalog
4
580
Data-Driven View Controllers. Tips and Tricks
dalog
5
1.7k
2 years of Redux in iOS. Lessons learned
dalog
0
320
Why unidirectional architecture matter for iOS.
dalog
1
250
Mobile backend without REST
dalog
2
72
Self managed teams 101
dalog
0
120
Other Decks in Programming
See All in Programming
脱・初心者!脱・マネコン!AWS CDKを使ってみませんか!?
har1101
0
300
From Spring Boot 2 to Spring Boot 3 with Java 21 and Jakarta EE
ivargrimstad
0
1.2k
雑に思考を整理する技術と効能
konifar
55
26k
StreamlitとTerraformでデータカタログを作った話
gussan0223
0
300
HUIT新歓2024「競技プログラミング、やってみませんか?」
slephy2784
1
250
本格ローグライク制作にEbitengineを選んでみた
nagainaganawa
0
290
Site Reliability Engineering for GMO
pyama86
6
970
PHPの次期バージョンはこの時期どうなっているのか - Internalsの開発体制について - PHPカンファレンス小田原
youkidearitai
PRO
1
180
元気予報
suu_mire0726
0
860
Rubyでたのしむクリエイティブコーディング/Enjoy Creative coding with Ruby
chobishiba
1
160
#phpcon_odawara オープン・クローズドなテストフィクスチャを求めて / open closed test fixtures
77web
3
220
[SF Ruby, March 2024] Rails on Wasm
palkan
0
380
Featured
See All Featured
How to Ace a Technical Interview
jacobian
272
22k
StorybookのUI Testing Handbookを読んだ
zakiyama
11
4.6k
Faster Mobile Websites
deanohume
297
30k
Optimizing for Happiness
mojombo
370
69k
GitHub's CSS Performance
jonrohan
1023
450k
[RailsConf 2023] Rails as a piece of cake
palkan
22
3.9k
XXLCSS - How to scale CSS and keep your sanity
sugarenia
240
1.2M
Creating an realtime collaboration tool: Agile Flush - .NET Oxford
marcduiker
13
1.5k
4 Signs Your Business is Dying
shpigford
175
21k
RailsConf & Balkan Ruby 2019: The Past, Present, and Future of Rails at GitHub
eileencodes
124
32k
Imperfection Machines: The Place of Print at Facebook
scottboms
258
12k
CSS Pre-Processors: Stylus, Less & Sass
bermonpainter
352
28k
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?