Aim: Introduction to Xcode, Swift, and the iOS SDK and App Design
Xcode is used to build apps for iPhone and iPad, as well as apps for Mac, Apple Watch, and Apple TV. These tutorials are based on Xcode 8.1, released on October 27, 2016. Xcode 8.1 is the latest version of Apple’s integrated development environment (IDE) and is entirely free. If you want to code along with the tutorials, you can download Xcode from https://developer.apple.com/download/or directly from the Mac App Store. You can use Xcode not only to build apps for iPhones and iPads, but you can use it to build apps for Mac, Apple Watch, and Apple TV as well.
Swift is a general-purpose, multi-paradigm, compiled programming language developed by Apple Inc. for iOS, macOS, watchOS, tvOS, and Linux. Swift is designed to work with Apple’s Cocoa and Cocoa Touch frameworks and the large body of existing Objective-C code written for Apple products. It is built with the open-source LLVM compiler framework and has been included in Xcode since version 6. On platforms other than Linux, uses the Objective-C runtime library, which allows C, Objective-C, C++, and Swift code to run within one program.
Apple intended Swift to support many core concepts associated with Objective-C, notably dynamic dispatch, widespread late binding, extensible programming, and similar features, but in a “safer” way, making it easier to catch software bugs; Swift has features addressing some common programming errors like null pointer dereferencing and provides syntactic sugar to help avoid the pyramid of doom. Swift supports the concept of protocol extensibility, an extensibility system that can be applied to types, structs, and classes, which Apple promotes as a fundamental change in programming paradigms they term “protocol-oriented programming”  (similar to traits).
Swift was introduced at Apple’s 2014 Worldwide Developers Conference (WWDC). It underwent an upgrade to version 1.2 during 2014 and a more major upgrade to Swift 2 at WWDC 2015. Initially, a proprietary language, version 2.2, was made open-source software under the Apache License 2.0 on December 3, 2015, for Apple’s platforms and Linux.
Different major versions have been released at an annual schedule with incompatible syntax and library invocations, requiring significant source code rewrites. For larger codebases, this has caused many developers to dismiss Swift until a more stable version becomes available.
While initially developing the iPhone before its unveiling in 2007, Apple’s then-CEO Steve Jobs did not intend to let third-party developers build native apps for iOS, instead directing them to make web applications for the Safari web browser. However, backlash from developers prompted the company to reconsider, with Jobs announcing in October 2007 that Apple would have a software development kit available for developers by February 2008. The SDK was released on March 6, 2008.
The SDK is a free download for users of Mac personal computers. It is not available for Microsoft Windows PCs. The SDK contains sets giving developers access to various functions and services of iOS devices, such as hardware and software attributes. It also includes an iPhone simulator to mimic the look and feel of the device on the computer while developing. New versions of the SDK accompany new versions of iOS. To test applications, get technical support, and distribute apps through App Store, developers must subscribe to the Apple Developer Program.
Combined with Xcode, the iOS SDK helps developers write iOS apps using officially supported programming languages, including Swift and Objective-C. Other companies have also created tools that allow for the development of native iOS apps using their respective programming languages.