iOS ARCHITECTURE
&
DESIGN GUIDE
Daniel D09 Oct 2018
Hardware
Software
Core OS
Core Services
Media Services
Cocoa Touch
LAYERS OF iOS ARCHITECTURE
1. Core OS Layer
Core Bluetooth
Accelerate
Security Services
- Large calculations, image processing, DSP
Overriding is unsupported
I/O Kit
2. Core Services Layer
Foundation
- Obj C wrapper of C based core foundation
- Base layer of functionalities
Specialised Frameworks
- CoreLocation
- CloudKit
- CallKit
- CFNetwork
3. Media Services Layer
Graphics
Video
Audio
- CoreGraphics, CoreText, QuartzCore, OpenGLES
- CoreAudio, AudioToolbox, AudioUnit, AVFoundation
- CoreVideo, ImageIO, AssetsLibrary, MediaPlayer
4. Cocoa Touch Layer
UIKit Framework
- Primarily written in obj C
- Parent of all visual elements
- Lifecycle management
Push Notifications
Apple Push
Notification Service
Third
Party
Server
Model View Controller (MVC)
MVCControlle
r
View
Model
Notify
Update
Update
User Action
• Always try to use higher level APIs
• View Controller - about 130 lines
• View should not store model data
• Use US English - Apple API
• Follow camelCase naming convention
Design Guide &
Best Practices
THANK YOU

iOS Architecture

  • 1.
  • 2.
    Hardware Software Core OS Core Services MediaServices Cocoa Touch LAYERS OF iOS ARCHITECTURE
  • 3.
    1. Core OSLayer Core Bluetooth Accelerate Security Services - Large calculations, image processing, DSP Overriding is unsupported I/O Kit
  • 4.
    2. Core ServicesLayer Foundation - Obj C wrapper of C based core foundation - Base layer of functionalities Specialised Frameworks - CoreLocation - CloudKit - CallKit - CFNetwork
  • 5.
    3. Media ServicesLayer Graphics Video Audio - CoreGraphics, CoreText, QuartzCore, OpenGLES - CoreAudio, AudioToolbox, AudioUnit, AVFoundation - CoreVideo, ImageIO, AssetsLibrary, MediaPlayer
  • 6.
    4. Cocoa TouchLayer UIKit Framework - Primarily written in obj C - Parent of all visual elements - Lifecycle management Push Notifications Apple Push Notification Service Third Party Server
  • 7.
    Model View Controller(MVC) MVCControlle r View Model Notify Update Update User Action
  • 8.
    • Always tryto use higher level APIs • View Controller - about 130 lines • View should not store model data • Use US English - Apple API • Follow camelCase naming convention Design Guide & Best Practices
  • 10.