DM36EM06 · Spring

Swift Programming for iOS

iOS development, Swift and the Xcode IDE. Learn to write well-architected code for the Apple ecosystem.

overview

Core Technologies
Swift, Swift Package Manager, Xcode
Course Objective
Develop proficiency in Swift and knowledge of the Apple ecosystem.

This course takes you deep into the Swift programming language and the iOS ecosystem. Over the semester, you build a project that demonstrates what you have learned: solid Swift programming skills, good coding practices, and a working knowledge of how software for Apple platforms is structured, built and shipped.

Swift is open source and runs on Linux and Windows as well as macOS, so you can write, build and test real Swift on your own machine with the Swift toolchain and Swift Package Manager. The Apple-specific layer, including Xcode, the native frameworks and the path to the App Store, is covered in class so that you understand the native development environment and the wider ecosystem you are building for.

The primary focus is on advanced programming concepts, data structures and data management architecture (excluding algorithm design), with practical coursework centered on system architecture and logic.

what you will build & learn

Build a project over the semester and develop the skills it requires:

  1. Swift language mastery syntax, value and reference semantics, memory management, protocols, generics, error handling and modern concurrency.
  2. Data structures & management architecting efficient ways to handle, store and manipulate data within software systems.
  3. Persistence designing a data layer backed by a local database.
  4. Web integration connecting Swift-based data systems to a lightweight web frontend.
  5. The Apple ecosystem Xcode, the native frameworks, and how apps are built and distributed on Apple platforms.
  6. Tooling Swift Package Manager and testing.

labs

Interactive demos, example projects and templates from the course GitHub organisation.

resources