The iPhone OS Architecture and Frameworks
Previous | Table of Contents | Next |
The Anatomy of an iPhone | The iPhone OS Cocoa Touch Layer |
Learn SwiftUI and take your iOS Development to the Next Level |
In The Anatomy of an iPhone we looked at the hardware that is contained within an iPhone device. When we develop apps for the iPhone Apple does not allow us direct access to any of this hardware. In fact, all hardware interaction takes place exclusively through a number of different layers of software that act as intermediaries between the applications and device hardware. These layers make up what is known as an operating system. In the case of the iPhone, this operating system is known as the iPhone OS.
In order to gain a better understanding of the iPhone development environment, this chapter will look in detail at the different layers that make up the iPhone OS.
An Overview of the iPhone OS Architecture
As previously mentioned, the iPhone OS consists of a number of different software layers, each of which provides programming frameworks for the development of applications that run on top of the operating system.
These operating system layers can be presented diagrammatically as illustrated in the following figure:
Some diagrams designed to graphically depict the software stack of the iPhone OS show an additional box positioned above the Cocoa Touch layer to indicate the applications running on the device. In the above diagram we have not done so since this would suggest that the only interface available to the app is Cocoa Touch. In practice, an app can directly call any of the layers of the stack to perform tasks on the device.
That said, however, each operating system layer provides an increasing level of abstraction away from the complexity of working with the hardware. You should, therefore, always look for solutions to your programming goals in the frameworks located in the higher level OS layers before writing code that reaches down to the lower level layers. In general, the higher level of layer you program too, the less effort and fewer lines of code you will have to write to achieve your objective. And as any veteran programmer will tell you, the less code you have to write the less opportunity you have to introduce bugs.
iPhone Development Frameworks
Now that we have identified the various layers that comprise the iPhone OS we can now look in more detail at the services provided by each layer and the corresponding frameworks that make those services available to us as app developers. For details refer to the following chapters:
Learn SwiftUI and take your iOS Development to the Next Level |
Previous | Table of Contents | Next |
The Anatomy of an iPhone | The iPhone OS Cocoa Touch Layer |