This book is dedicated to thosewho work every day to find new ways to do things in the technological arena.
Chapter 1- What is iOS SDK?
TheiOS SDK is a software development kit (SDK) created by Apple to develop andtest applications intended for the iOS operating system on mobile devices.Testing occurs with a simulator known simply as iOS Simulator. The iOS SDK wasformerly known as iPhone SDK before development of the iPad and the iPod Touch,which also run using iOS. It was first announced in October 2007 by Steve Jobsand made available to third-party developers in March 2008. The SDK itself isfree, but installing an app onto a supported iOS device requires users to be apaid member of the iOS Developer program, which costs $99 per year.
TheiOS SDK has been included in the XCode suite since the release of XCode 3.1.The use of iOS SDK requires the installation of XCode. XCode is an integrateddevelopment environment (IDE) for use with Mac operating systems. It is acomprehensive collection of programs, tools and instruments used fordevelopment geared toward both Apple operating systems. It is used to code,build, debug, run, install and test applications. It also comes with iOSSimulator.
BothiOS and OSX applications are written in Objective-C, C++ or C languages. iOSuses Core Location as its software framework amid the programming framework,Cocoa Touch. Core Location allows for applications to retrieve the device'sheading from a built-in magnetometer or digital compass and can also acquireraw heading data. This unique framework has been part of the iOS SDK since itsinitial release. Cocoa Touch is based on Cocoa with emphasis on touch-basedgestures.
Newversions of iOS SDK are typically released with each new iOS version, bothmajor updates and minor updates. Beta SDKs are typically released to developersbefore their actual release to the public. Beta testers assess compatibilitybetween current versions and new features. The current iOS SDK is version 6.0and it is found in XCode 4.5 and higher. It requires the use of an Intel-basedMac system with OSX 10.7.4 Lion or later. Microsoft Windows and older versionsof OSX are not yet supported for the use of the SDK.
Featuresof iOS SDK
iOSuses variants of the XNU kernel that is also used in OSX. BSD sockets fornetworking are also a shared feature of both operating systems. The tool chainfor developing for iOS is based on XCode, making it sensible to include the iOSSDK in the extensive XCode suite. The contents specific to the iOS SDK includeCocoa Touch, which includes multitouch controls and events, Accelerometersupport and camera support, along with i18n localization and hierarchy view. Italso includes OpenAL, OpenGL ES, audio mixing and recording, image fileformats, Quartz, video playback and core animation in its media set.
TheiOS SDK core services set includes networking, an embedded SQLite database,threads, Core Location and CoreMotion. The Mac OSX kernel set accommodatesTCP/IP, power management, file system, sockets and security features. iPhoneSimulator is a program included in order to test an application using both thelook and feel of an iPhone, iPad or iPod Touch on the developer's desktopwithout needing to install the program on the iOS device. It was originallycalled the Aspen Simulator but was renamed with SDK Beta 2.0. It is not anemulator because it actually runs code for x86 target not an ARM.
Useof the iOS SDK
Thereare well over 500,000 apps available in the iOS App Store and the vast majoritywere created by third-party developers using the iOS SDK. Developers areallowed to set any price that they want for their app and they receive a 70%share of the sales. A large amount of Apple's revenue is made in this way.
Thereare some restrictions imposed on application development using the iOS SDK,which are outlined in the Terms associated with the membership in the paid MacDeveloper program. An example of this is running Java, which is currentlyoutside of the bounds of the agreement..NET frameworks cannot be installed andiOS does not support Adobe Flash.
CurrentiOS SDK
InSeptember 2013, XCode 5 was released along with iOS 7. XCode 5 came equippedwith the iOS 7 SDK. The LLVM compiler is capable of building 64-bit apps forthe new iOS. It also came with a new Automatic Configuration allowing iCloudand Game Center configuration with one click. The Preview Assistant is capableof displaying in a UI in both portrait and landscape view for iOS 7 as well asthe older iOS 6. New Debug Gauges featured in XCode show developers important factorssuch as CPU usage, iCloud usage and more in one convenient location.
TheiOS 7 SDK also comes with a number of multitasking enhancements. There arethree new APIs for developers to take advantage of: Background Fetch, RemoteNotifications and Background Transfer Service. The new APIs allow betterutilization of hardware and an improved user experience.
BackgroundFetch allows app designers to create applications that can passively downloadcontent while remaining in the background. This is good for news apps that gettheir content from the web, avoiding lengthy update times if the app had notbeen opened in a while. Updates can be programmed to take place at regularintervals. Remote Notifications is similar to the Background Fetch API. Itutilizes Push Notifications to tell users when new content is available withoutdownloading the content or constantly checking for new content.
TheBackground Transfer Service API gives applications the ability to haveunlimited transfer time whether they are running in the foreground or in thebackground. Background Transfer Service can also work alongside either theBackground Fetch API or the Remote Notifications API as needed. The systembecomes responsible for managing data transfer and wakes up applications whennecessary. This achieves greater energy efficiency through discretionary ornon-discretionary transfer options. With these three new APIs in the iOS SDKdevelopers now have more freedom to optimize their apps and make them even moreuser-friendly.
Chapter 2- How Do You Get StartedWith ios- C Programming?
Aswe go about our day-to-day duties of using our phone and the various bells andwhistles that they come with, we don't usually think about a couple of things.Have you ever thought about how apps come to be on your I-Phone or I-Pad?Anything ever make you wonder how they just 'mysteriously' appear to your phoneand electronics?