SBP Blog

iOS SDK: insights - Part 2

Jan 21, 2014 by Adrian

Xcode developmentI'm back and ready to discuss the Core Services Layer, the Core OS Layer and Xcode.

The Core Services and Core OS layers are more fundamental and closer to the hardware than the previous 2 layers, discussed in Part 1. Although not all the developers are going to use the frameworks from these layers, they are very important because the higher level frameworks interact with the hardware of the device through the low level frameworks found in Core Services and Core OS.

Core Services Layer

The fundamental system services are managed by this layer. The Cocoa Touch is dependent for some of its functionalities on Core Services (for example the Core Motion Framework). Although it’s a core layer, it contains some High-Level features like:

•  Peer-to-Peer Services: peer-to-peer connectivity over Bluetooth
•  iCloud: used to store data that can be accessed from any device
•  SQLite: enables you to embed a SQLite database into the apps and local database files can be created from the app, providing fast access to the database records.

The Low-Level features contain frameworks such as:

• Core Foundation Framework: contains a set of C-based interfaces and provides support for collection data types, string management, threads and run loops
• Core Motion Framework: used to access all motion-based data from the device
• Core Location Framework: provides to the apps information about location and heading by using the onboard GPS, cell or Wi-Fi radios

Core OS Layer

This layer is the lowest one (it sits on top of the device hardware) and most of the other technologies are built upon the Low-Level features that are found in this layer. Nonetheless, this layer provides some frameworks that can be used directly by the app, like the Accelerate framework (Accelerate.framework) and the Security framework (Security.framework).

So you can have access to many Low-Level features of the operating system, by using the LibSystem library (which has a C based interface). Some of these features involve BSD sockets, DNS services, Memory allocation, File-system access.


However, this is not all, because the iOS SDK contains some useful developers tools too, the most important one being Xcode. For an in-depth review of Xcode, see Xcode 5 Essentials.

Xcode has reached the 5th version and it is the best IDE (Integrated Development Environment) for the Apple operating systems, providing all the tools necessary for developing and testing applications for Mac, iPhone, iPad and iPod Touch.

The instruments from Xcode can be used to examine the behavior of processes, records sequences of user actions that can be replayed, monitor and gather data about memory usage, disk and network activity. Also, it provides help in testing the applications. The new compiler technology (Apple LLVM Compiler) found in Xcode 5 is constantly evaluating your code as you type it, identifies the coding mistakes and it shows the developer ways to fix it.

The iOS Simulator reproduces almost perfectly an iOS device, it’s easy to launch and debug, it can simulate touch gestures by using the mouse and it contains specific developer tools.

The iOS SDK contains many more frameworks and tools, for a complete description of it you can access the iOS Developer Library. While this SDK can be used, in most cases, by an un-experienced developer, still it contains certain low-level features that require more advanced development skills.

Tags: iOS  OS  Romania 


No comments yet.

Your Comment: