iOS Development encompasses the study of two different programming languages, many different software frameworks, mobile UI and UX design, and the concepts of human/computer interaction.
These skills will enable Students to build rich mobile applications that enlighten, inform, instruct, and entertain a potential audience of users measured in the hundreds of millions.
During this program, students will learn:
- Swift
- Objective-C
- UI Design
- Networking (as part of asynchronous programming)
- Core Data (database design)
- Unit and UI Testing
- Architectural Design Patterns
- Custom Controls & Programmatic UI
- Working with Media
The overall schedule is:
- Unit 1: iOS Fundamentals - Learn core Swift language skills and basic app architecture, concepts that form the basis of all future learning in the track.
- Unit 2: Networking and Persistence - With the fundamentals covered, this unit dives into some of the most important and useful areas of the iOS SDK (software development kit). Students will learn about asynchronous networking, drawing custom controls, and persisting data to a database with Core Data.
- Unit 3: Architecture and Testing - A deeper dive into how best to construct an app project with a discussion of Swift generics as well as more exploration of concurrent programming. Students will see how concurrency works at a high level, and also the best practices for handling concurrency in iOS through the use of OperationQueues and Grand Central Dispatch.
- Unit 4: Objective-C and Beyond - Objective-C, the other language used to build apps, is explored extensively in this unit. The lessons learned here will help students understand and utilize the extensive library of legacy code used in millions of iOS apps in the field. Students also get an overview of media interaction with things like: audio, video, image manipulation, and mapping.
- Units 5-6: Labs - Work on a cross-functional app project, building an iOS app that encompasses techniques learned from the first 4 units.