Value-oriented
Use structures and enums when independent values and explicit state changes make the model easier to reason about.
Learn the language concepts that make iOS code predictable: values, control flow, functions, collections, custom types, generics, ownership, concurrency, testing, and data decoding.
Meet the language
Swift supports several ways to organize software because different problems need different ownership and behavior. Value-oriented design keeps state independent and predictable, protocol-oriented design describes reusable capabilities, object-oriented design models identity and framework relationships, and functional techniques pass behavior as values.
Use structures and enums when independent values and explicit state changes make the model easier to reason about.
Use protocols when different types should share a capability without sharing one class hierarchy.
Use classes when identity, shared lifetime, inheritance, or an Apple framework contract matters.
Use functions and closures to transform values and pass focused behavior through APIs.
Module outcomes
Complete these lessons in order. Each concept becomes part of the vocabulary used later in SwiftUI and application architecture.
Learning sequence