iPad, iPhone and iPod touch devices run on the iOS operating system. The operating system manages the device hardware and renders the technologies required to create native apps. The iOS operating system ships with various system apps, i.e. Safari, Phone, and Mail which offer standard system services to the user.
One can find the tools and interfaces which are needed to install, run and test native apps that become visible on an iOS device’s home screen. Native apps are developed by making use of iOS system frameworks and Objective-C language. Then it is made to run directly on iOS.
Native apps always remain available to the user as they are installed physically on a device unlike web apps.
Layered iOS Architecture
iOS acts as a mediator between the apps you create and the underlying hardware. Apps converse with the hardware through a set of distinct system interfaces. These interfaces enable to write apps easily which work consistently on devices having distinct hardware capabilities Higher-level layers are available on the top that are build upon the lower layers in the iOS technologies layered architecture.
The layers of iOS are:
- Cocoa touch- It consists of key frameworks for creating iOS apps. This framework identifies the appearance of apps together with basic infrastructure and support for technologies, i.e. push notifications, multitasking, touch-based input, and high-level system services.
- Media- This layer comprises of audio, graphics and video technologies.
- Core services-It consists of fundamental system services for apps, i.e., the Core Foundation and Foundation Frameworks.
- Core OS- It comprises of low-level features that are required to build most of the other technologies.
The higher-level frameworks mainly provide object oriented abstractions for lower-level constructs.
Most of the system interfaces are delivered by Apple in special packages known as Frameworks. A framework is a directory that comprises of a shared library and several resources like images, header files, helper apps etc, to sustain that library.
Developer Library is a very essential resource during development which comprises of API reference, release notes, sample code, tech notes, and programming guides.