0% found this document useful (0 votes)
148 views

IOS Architecture

This document provides an overview of the iOS architecture and compares it to the Android architecture. It discusses how iOS uses a layered approach like Android but with flatter, more accessible layers. The main frameworks of Cocoa Touch, Media, Core Services, and Core OS are described. It also examines the structure of an iOS app bundle and compares the main app components of activities, intents, services, and layouts between Android and their iOS equivalents.

Uploaded by

Mani
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
148 views

IOS Architecture

This document provides an overview of the iOS architecture and compares it to the Android architecture. It discusses how iOS uses a layered approach like Android but with flatter, more accessible layers. The main frameworks of Cocoa Touch, Media, Core Services, and Core OS are described. It also examines the structure of an iOS app bundle and compares the main app components of activities, intents, services, and layouts between Android and their iOS equivalents.

Uploaded by

Mani
Copyright
© © All Rights Reserved
Available Formats
Download as PDF, TXT or read online on Scribd
You are on page 1/ 15

iOS

Architecture

CS 4720 – Mobile Application Development

CS 4720
Remember This?

2 CS 4720
Remember This?
• Android looks like it has a lot of layers
• A lot of this comes from its design mentality
• Plus Java on top of Linux
• But it really does just boil down to:
– User Apps on top of
– The main frameworks on top of
– The main libraries (working with Java) on top of
– The Linux kernel

3 CS 4720
iOS Architecture
• iOS is also *nix based
• iOS comes directly from the development path
of OS X
• Cocoa became Cocoa Touch – the main API for
apps to interface with the OS
• iOS has similar layers, but they are not as
“rigid”

4 CS 4720
iOS Architecture

5 CS 4720
Let’s Compare!

6 CS 4720
What’s Different?
• The layers are actual more flat
• The hierarchy here comes more from the
higher levels making use of the lower levels
• All levels are accessible in similar ways
• Some have to imported more explicitly

7 CS 4720
Cocoa Touch
• Drives the UI
– Provides the Controllers, Widgets, etc.
• Provides access to main system functions
– Contacts, Camera, touch input, share with other
apps, push notifications, etc.
• Should be the first place you look for any
features you want to use in your app

8 CS 4720
Media
• The Graphics libraries live here
– Core Graphics (Quartz), OpenGL, Metal, Photos
Library, Animation
• Audio
– Media player, OpenAL, Core Audio
• AirPlay

9 CS 4720
Core Services
• Gives access to fundamental resources needed
for app
• Built on Core Foundation and Foundation
frameworks
– These are the basis for NeXTSTEP
• Networking, iCloud, Encryption, SQLite
• GPS, Telephony, SMS
• Facebook, Twitter

10 CS 4720
Core OS
• You’re probably not going to use these in your
app
• Bluetooth
• USB and other accessories
• Kernel operations

11 CS 4720
The App Bundle
• In iOS (and macOS), a Bundle is actually a
directory that groups a program’s resources
together
• This is the .app file you find in macOS and iOS
• An .app file is zipped up in a .ipa file (this is the
iOS equivalent of a .apk file)
• Let’s look at a .ipa!

12 CS 4720
Inside an iOS App Bundle
• The executable
• Information property list - Info.plist
– Kind of like AndroidManifest, but with a bit less info
• App icons – for the home screen
• Storyboards – the layout of your screens
• Settings.bundle – the file needed to have options in
Settings
• All assets go in the root folder (localized assets go in
subfolders)

13 CS 4720
Main Components
• For Android, we have:
– Activities: each screen/feature
– Intents: messages to be passed
– Services: background activities
– Content Providers: data sources
– Layouts: .xml files that represent the UI

14 CS 4720
Main Components
• Activity -> ViewController
• Intents -> Segues (kinda…), present other
ViewControllers
• Service -> “Background Mode” + specific API
calls
• Content Provider -> CoreData
• Layouts -> Storyboards and Scenes

15 CS 4720

You might also like