CSCI S-65 Advanced Mobile Application Development Using Swift and iOS
This course transitions a solid programming background into iOS development as a viable workforce skill. Nearly all conceptual material applies to other graphical user interface (GUI) environments and event-driven programming generally. Attention is paid to structure: model-view-controller, data modeling, and inter-object communication. Patterns and conventions demonstrated in class are strictly enforced in all assignments. For the Swift language, we start from scratch and move quickly, including optionals, exceptions, type inference, protocols, closures, and automatic reference counting (ARC) memory management. For the iOS application program interface (API) Cocoa Touch, we cover UIKit and CoreGraphics, frameworks that allow for rich, realistic applications: scrolling, visual effects, navigation, large data collections, custom drawing, and interactive, guided data entry. For the shared API Foundation, we cover network communication (REST/JSON), asynchronous code generally, and on-device storage. For the Xcode integrated development environment (IDE), we cover the visual UI designer Storyboard, as well as project management, debugging, and versioning control through GitHub. As time allows, additional frameworks such as AVKit (video, audio, image processing), CoreLocation (GPS), MapKit, and physical sensors (gyroscope, accelerometer) help us give our applications exciting, environmentally aware input/output capability.