This video is a is a brief look at the smartphone platform from a developer's perspective. It discusses the layers of the stack in general terms.
- [Instructor] Now that you've seen a generic smart phone platform architecture, let's take a look at how the iOS platform is structured. Let's start with the hardware layer. The hardware layer represents the device. This includes iPhone, iPad and many other devices. Gartner reported that in Q4 2016, devices running iOS made up nearly 20% of the smart phones sold worldwide. Android accounted for nearly all of the rest, with Windows Phone and Blackberry essentially representing rounding errors.
In terms of tablets, iOS holds the lion's share of the market. And Android accounts for nearly all of the rest. In addition you'll find iOS on other devices ranging from Apple Watch to iPod and HomePod, to Apple CarPlay. For wearable usage stats, head to 9 TO 5 Mac, and for more info on CarPlay navigate to Apple's CarPlay site. The operating system layer in the iOS platform includes the lowest level set of system frameworks, as well as the unit's based operating system that most other technologies are built on.
On iOS this is called the Core OS and includes things like Core Bluetooth, local authentication and security. The Core libraries on the iOS platform are layered and include the Cocoa Touch, Media and Core services layers. These layers provide the object orientated constructs your apps can access to provide functionality. The Cocoa Touch layer contains many of the frameworks used to build apps including user interface components, the map kit, the messaging kit and more.
The Media layer includes tools for manipulating graphics, audio and video. The Core services layer contains lower level frameworks such as location and networking services that higher layers are built on. The Application layer is where your apps will execute. They sit next to the system apps built into iOS, which provide standard system services like SMS, email and telepheny. Native apps appear on the iOS home screen. They are written in either Objective-C or Swift, and access layers lower in the platform architecture.
Both the app and its data are synced via iTunes to the user's computer. When creating your own apps, you have access to all layers in the iOS platform. However when you're creating iOS apps, writing code that makes use of layers higher in the stack is better than accessing lower layers directly. Using the higher layers insulates you from the complexity of lower layers, and protects you from any future changes Apple might make in the lower layers. That way should Apple decide to change the lower layers that access hardware directly in a new device for example, you can be confident your app will still function as intended.
In other words, using the higher layers makes your app forward compatible with future devices. For more information, head over to the iOS technology overview guide.
- iOS platform architecture
- Generic smartphone app life cycle
- iOS app life cycle
- Object-oriented programming (OOP) and Swift
- Inheritance vs. delegation
- Getting started with Xcode
- Xcode vs. Android Studio
- Creating a simple Swift app