iOS (previously iPhone Operating System)

iOS (formerly known as the iPhone Operating System) is the operating system that powers the iPhone, iPad, and other iTouch devices. The operating system is commonly referred to as a'manager,' and as such, the iOS manages the device's hardware and provides technologies that implement its native applications. The operating system includes applications like as phone, mail, contacts, and maps (system applications). Native programs are those that must be physically installed on the device, that is, they must live in the device's storage. This has the advantage of allowing them to be accessible directly, as opposed to web applications, which can only be accessed over the internet. Steve Jobs created iOS out of his imagination. The first iPhone was released in 2007 back when the blackberry ruled the mobile market. Apple managed to cut a niche in the mobile market with the revolutionary idea of full touch-enabled devices, "The concept of direct manipulation, using multi-touch gestures, interface control elements consisting of buttons, sliders, and switches. Interaction with the OS including gestures such as tap, swipe, pinch, and reverse pinch (Kanoi et al. 220)." The iOS has grown to support other devices such as Apple TV and iPod devices. Unlike Window's and Google's Android, however, Apple does not support the installation of iOS on non-apple devices.


History


The first iOS was unveiled in January 2007 and released with the phone in June that year. iOS 1.0 was a derivative of OS X- the Mac operating system. There was no real name for this operating system, but the phone was just said to have run on OS X. The operating system did not support the installation of third-party applications. Steve Jobs argued that there was no need for such an action as the developers could develop web applications that could behave as native applications. Apple, however, went on to form a native app software development kit and in March 2008 released the first beta. They branded their operating system 'iPhone OS' and later 'iOS' after working licensing permissions from Cisco that had used the IOS brand for over a decade in its routers. Apple provides regular updates for its operating system at least once a year. The latest major version being iOS 11.


Architecture


Implementation of the iOS architecture can be viewed as a set of layers that represent a high level of abstraction in the upper classes to lower abstraction in the lower levels. In iOS, as most operating systems the application does not interact with the hardware directly. Instead, communication is intermediated by the operating system where, by, implementation of well-defined interfaces an action initiated at the application, later prompts a response at the hardware level (CPU, registers, and memory) and is communicated back. This is a convenient setup as the encapsulation enables the developers to focus primarily on the functionality of the applications and not in the execution. This means that less code is employed in the development of applications. The layers of iOS are as follows.


The Cocoa Touch layer


The Media Services layer


The Core Services layer


The Core Operating System


These layers constitute the architecture of iOS, and as such, they are what we shall discuss.


Cocoa Touch Layer


This layer outlines the basic application infrastructure available and the key technologies supported for an application's development. Some of the technologies defined include multitasking, notifications, touch-based inputs et cetera. A framework is a bundle of services incorporated under a namespace that is used for a particular set of jobs such as animation processing, rendering, image handling et cetera.


Key Technologies


Some of the key technologies available in the Cocoa Touch layer are discussed below.


Auto Layout


Auto layout is an organization technology. It defines how elements are laid out in the user interface. Auto-layout makes use of objective- C entities called constraints. These have such advantages as mirroring for user interfaces in right to left languages such as Hebrew and Arabic.


Storyboards


Storyboards are an iOS 5 feature that replaced nib files. Storyboards allow you to view your views and view controllers and their interaction with each other. You can also define segues which are transitions from one view controller to the other.


Document Support


The UIDocument introduced by the UIKit framework works to manage data associated with user documents. This class provides a container for all your documents and allows for access without sync or explicit file transfer of the same documents for authorized devices.


Local Notifications


These notifications are scheduled and delivered by the system. They are essential especially when an application has been moved to the background and no longer takes part in processing. Once listed, the event will always take place.


UI state preservation


The UI state preservation is a technology that helps preserve an application and its data in the same state it was when it was moved into the background. When an app moves into background mode, it is asked to save the semantic state of its views and view controllers. It uses this during relaunch to restore itself and appear like it never quit. An app in background mode is cut off from system resources which frees memory for other uses.


The key technologies defined and supported in this layer are much, much more and include but not limited to, “multitasking, peer to peer services, gesture recognizers, and apple push notification service (iOS Technology Overview, 13).” But we shall not get into them anymore.


Cocoa Touch Framework


To ensure a consistent system interface, the frameworks in the Cocoa Touch layer provide standard view controllers for system interfaces. The frameworks include:


UIKit Framework


It provides tools that implement graphical, event-driven applications in iOS. Applications may use it to do the following:


“Application management, user interface management, multitasking support, printing support, user interface management, including support for storyboards and nib files. Graphics and windowing support, including support for multiple displays, support for handling touch and motion-‐based events. Objects representing the conventional system views and controls, support for text and web content. Cut, copy, and paste support, Support for animating user-‐interface content (iOS Technology Overview 19).”


Address Book UI Framework


AddressBookUI framework is an Objective-C framework that is used to display the standard system interface when creating a new contact or for editing one. This platform removes the work needed to present new contacts and ensures consistency.


Event Kit UI Framework


EventKitUI framework provides system interfaces for use when viewing and editing calendar related events. It builds on the event related data in the Event Kit Framework.


Message UI Framework


MessageUI framework offers support in messaging (lining up email messages in user's outbox). It consists of view controller object that can be edited to suit one's needs. You can set, for example, the recipients, sender, subjects, and attachment to the message.


Other frameworks in the cocoa touch layer include the: Game Kit framework, iAD framework, Map Kit framework (iOS Technology Overview 16-20).


Media Layer


The media layer defines the graphics, video audio technology for the best multimedia experience.


Graphics Technologies.


The easiest way to create applications is to utilize pre-rendered images in conjunction with the systems UIKits standard views and controls and also by allowing the system to draw. In situations where you need to go beyond simple graphics there exist technologies to aid with this. This includes the Core Graphics framework, Quartz Core framework, and the OpenGL ES framework among others. Any content drawn is automatically scaled to support high-resolution screens. For vector drawn images any extra pixels are employed to enrich the image contrast wise. UIKit also supports loading high-resolution images should you choose to work with pre-existing images.


Audio Technologies


The audio formats supported in iOS are as follows:


“AAC, Apple Lossless (ALAC), A-‐law, IMA/ADPCM (IMA4), Linear PCM, μμ-‐law, Media Layer, Audio Technologies, DVI/Intel IMA ADPCM, Microsoft GSM 6.10, AES3-‐2003 (iOS Technology Overview 23)”


Some of the frameworks in this layer include:


The media player framework


The AV Foundation framework


OpenAL framework


The Core Audio frameworks.


The frameworks are numbered from high level to low level. The media player framework offers the highest level interfaces available. High-level interfaces are preferred to low-level interfaces because despite the lower level frameworks providing more flexibility, they usually require more work input when compared to the higher level ones. The media player interface affords easy access to user iTunes library and in playing saved tracks. In contrast, Core Audio provides sophisticated and straightforward interfaces such as for playing and recording audio and in performing more complex tasks such as, "Playing system alert sounds, and managing the buffering and playback of multichannel local or streamed audio content (iOS Technology Overview 22).”


Video Technologies


iOS video technologies support the .mov, .mp4,.m4v, and the.3gp extensions with the H.264 and MPEG-4 compression standards. This includes numerous audio standards as stated above. Higher level frameworks in the media layer are preferred to implement video technologies. This is as we have seen because of the less work input they require. Some of the frameworks include:


The UIKit, UIImagePickerController class- provides a standard interface for video recording on devices with the supported camera.


The Media Player framework- provides a set of simple to use interface to show videos in partial or full-screen setting.


The AV Foundation framework- provides a set of interfaces in Object-C for playing and recording videos.


Core media- defines low-level data types utilized by higher level frameworks. It provides interfaces for manipulating media.


AirPlay


Airplay is a technology that lets an application stream audio to third-party receivers like Apple TV. Airplay is built on the AV Foundation framework and the Core Audio family of frameworks. Audio played in these frameworks becomes by design eligible for distribution on AirPlay.


Media Layer Frameworks


Assets Library Framework


AssetsLibrary framework offers a query based interface for accessing images and video from users library. Through this framework, access is granted to items ordinarily managed under the photos application.


AV Foundation Framework


AVFoundation framework comprises objective – C classes that help to play audio materials. This framework supports playing of memory or file-based sounds. Multiple sounds can be played simultaneously, and the playback sound can be adjusted. Services supported in this framework include media asset management, media editing, movie capture, movie playback, track management et cetera.


Core Audio


The Core Audio family of frameworks provides native support for audio. Core Audio is C-based and supports adjustment of stereo based audio. It can be used to trigger vibration in apps where it is implemented.


Core Text Framework


The CoreText framework is a collection of simplistic yet high-performance C-based interfaces for, "laying out text and handling fonts (iOS Technology Review 27)." CoreText provides a complete layout engine to manage text on screen. It may also be used to apply attributes and render elements. However, it is a framework to be used by sophisticated text handling applications such as word processors. Lighter functions can be achieved by the text class interfaces of the UIKit.


Core Video Framework


It provides buffer assistance to elements of the core Media framework. Most applications never have to utilize it nonetheless.


Core Services Layer


High-level features


iCloud Storage


It allows for central storage of data. User documents can be accessed across computers and iOS devices without the need for an explicit sync. Applications can use iCloud in two ways.


Document-storage- This saves documents and data in the cloud.


Key-value-data-storage. An application shares small amounts of data amongst instances of itself.


Automatic Reference Counting


It is a feature used to manage the lifetime of Objective-C objects. Where you would have to remember when to release or retain items, ARC assesses the lifespan of an object and its requirements and inserts explicit method calls at compile time.


Block Objects


These are C language constructs that can be inserted in C and Objective-C code. Essentially, block objects represent an anonymous function and its associated data. Blocks are useful as callbacks or in situations where you need to insert a function and its data. Block objects among other things can be used as completion handlers for one time operations or as replacements for delegates in delegate methods.


Data Protection


This allows for protection of sensitive data through methods such as encryption. A protected file, for example, is always stored in encrypted format in the disk. Applications may not access the contents of the file while the device is locked conversely neither can intruders. Opening the system generates a decryption key that unlocks the file.


File Sharing Support


File sharing in an application means that the contents of /Document directory are visible to the user. Users can move files to and from the directory using iTunes. Files are however not available to other applications. This behavior requires a pasteboard or a document interaction controller object.


Core Services Frameworks


CFNetwork Framework


The CFNetwork framework contains many high-performance C-based interfaces with object-oriented abstractions that help when working with the network. These abstractions give you control over the protocol stack and simplify usage of lower level entities. This framework can be useful in communication with FTP and HTTP servers or in resolving domain names (DNS). This also helps in creating encrypted connections in SSL and TLS or BSD socket use.


Core Data Framework


This manages data models. In highly structured data models instead of defining data models programmatically, you can use graphical tools in XCode to build a schema representing your data model. During runtime, the illustrations of your data model will be created, managed, and made available through the Core Data framework. This impacts programming by significantly reducing the amount of code that needs to be written.


Core Foundation Framework


These are also C-based interfaces that qualify data management and other services for certain configurations of iOS applications. Support provided in this framework includes:


“Collections data types (arrays, sets, and so on), Bundles, String management, Date and time management, raw data block management, preferences management, URL and stream manipulation, threads and run loops, port, and socket communication (iOS Technology Overview 37-38).”


Core Location Framework


Gives location and bearing information to applications. The onboard GPS, cell or Wi-Fi radios provide the locational details. This might be incorporated into your application should you chose to, in the event you need to offer locational relevant information.


Core Media Framework


This can realize the low-level media types used by the AV Foundation framework. Most applications however never need to use this. It is provided nonetheless for those who would desire distinct control over creation and presentation of their audio and video.


System Configuration Framework


These provide the reachability interfaces. Through these, the user can describe the network configuration of a device. It can be used to realize for example whether a particular host is online or whether a specific service connection is still active.


Core OS Layer


These contain low-level features on which the other layers are built upon. Utilization of the elements in this segment never need to occur directly, but the frameworks that an application may be running on are likely to be in communication.


Core OS Frameworks


Accelerate Framework


The Accelerate framework contains interfaces for performing, "DSP, linear algebra, and image – processing calculations (iOS Technology Review 43)." These provide the distinct benefit over custom written versions in that they are optimized for all of the hardware configurations present in iOS-based devices.


Core Bluetooth Framework


The Core Bluetooth framework allows developers to interact with Bluetooth Low Energy devices. The interface provides for scanning for broadcasts and for connecting or disconnecting to the available connections, reading and writing attributes, registering for services, changing attributes and so much more (iOS Technology Review 43).


External Accessory Framework


This provides support for communicating with hardware attached to an iOS device. The framework offers a way to recognize accessories and initiate communications. Afterwards, the iOS device may manipulate the device directly depending on the commands it supports.


Generic Security Services Framework


Introduced in iOS 5.0. The GSS framework provides a standard set of security-related services to iOS applications. The standard, however, does not support credential management despite it being a requirement in many applications. iOS, however, makes an addition for this.


Security Framework


The interface provides interfaces for managing certificates, public and private keys and trust policies. It features generation of cryptographically secure pseudorandom numbers. Secure storage repositories (certificates and cryptographic keys in the keychain) (iOS Technology Overview 44). Additional support in the Common Crypto library includes symmetric encryption, HMAC, and digests. The digests feature offers features compatible to the OpenSSL library a feature absent in iOS. Sharing keychain information among multiple applications helps lessen authentication prompts amongst the users.


System


At the system level is the kernel environment, the drivers and the low-level Unix interfaces of the operating system. The kernel regulates the functioning of the operating system. It manages memory, processing (threads) file system, networking and interprocess communication. Drivers in this layer interface with the system frameworks and the hardware available. Interfaces for accessing the low-level features are C-based, and through the LibSystem library you can access among many other things threading, file-system access, standard I/O, memory management and networking (iOS Technology Overview 45).”


Works Cited


Kanoi, Miss Priyanka V., and Yavatmal Jdiet. "Internal structure of iOS and Building tools for iOS applications." International Journal Of Computer Science And Applications 6.2 (2013): 220-225.


iOS Technology Overview Cupertino, CA, Apple Inc, 2012, http://pooh.poly.asu.edu/mobile/ClassNotes/Papers/MobilePlatforms/iOSTechnicalOverview.pdf

Deadline is approaching?

Wait no more. Let us write you an essay from scratch

Receive Paper In 3 Hours
Calculate the Price
275 words
First order 15%
Total Price:
$38.07 $38.07
Calculating ellipsis
Hire an expert
This discount is valid only for orders of new customer and with the total more than 25$
This sample could have been used by your fellow student... Get your own unique essay on any topic and submit it by the deadline.

Find Out the Cost of Your Paper

Get Price