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:
- Swift language mastery syntax, value and reference semantics, memory management, protocols, generics, error handling and modern concurrency.
- Data structures & management architecting efficient ways to handle, store and manipulate data within software systems.
- Persistence designing a data layer backed by a local database.
- Web integration connecting Swift-based data systems to a lightweight web frontend.
- The Apple ecosystem Xcode, the native frameworks, and how apps are built and distributed on Apple platforms.
- Tooling Swift Package Manager and testing.
labs
Interactive demos, example projects and templates from the course GitHub organisation.
- CampusEvents example Demonstration iOS app in XCode.
- iOS-TextBased_Adventure_Game example A Text-based Adventure Game written with the Swift programming language.
- swift-env-template template Swift environment for Github Codespaces development in browser.
- swift-fullstack-example example Fullstack Swift application demo.
- swift-project-template template Template for Swift Development final project, using Hummingbird and SQLite.
resources
- Swift — Programming language official language source
- Apple — Swift documentation official language reference
- Apple — SwiftUI tutorials
- Swift Playgrounds
- Install Swift on Linux the Swift toolchain on your own machine
- The Swift Programming Language (book) the official language guide