Finite state modeling
Model finite states with enums: represent app flows (loading, success, error), enforce exhaustive handling, and prevent invalid combinations.
Finite state modeling is a free Swift Academy lesson on CoddyKit — lesson 3 of 3. You can read the complete lesson below for free — then practise it hands-on in the browser with a built-in code editor and a 24/7 AI tutor. It is part of the Swift Academy learning path, one of 3 lessons in the course, and your progress syncs across the web and the CoddyKit app.
Intro
Enums model finite states: a network request might be loading, success, or failure. Nothing else is valid.
Define states
A simple enum defines all valid states of a request.
enum RequestState {
case loading
case success(data: String)
case failure(error: String)
}Exhaustive switch
Switch enforces coverage of all states. No state is forgotten.
let state: RequestState = .success(data: "OK")
switch state {
case .loading:
print("loading...")
case .success(let d):
print("success:", d)
case .failure(let e):
print("error:", e)
}Invalid states
Without enums, you might track state with multiple Bools, leading to contradictions. Enums prevent impossible states.
Auth states
Real apps often need richer state models, but still finite and exhaustive.
enum AuthState {
case loggedOut
case loggingIn(user: String)
case loggedIn(token: String)
case error(message: String)
}Tips
Tips:
- Prefer enums over multiple flags.
- Use associated values to attach extra info.
- Design for finite states only.
Finite states Q
Quick check: Why do enums work well for finite states?
Recap
Recap: Enums model a closed set of valid states. Switches guarantee coverage and prevent impossible combinations.
Frequently asked questions
Is the “Finite state modeling” lesson free?
Yes — the full text of “Finite state modeling” is free to read here on the web, and the Swift Academy course includes 3 lessons in total. To practise it interactively (a built-in code editor and a 24/7 AI tutor) and unlock the rest of the Swift Academy course, upgrade to CoddyKit PRO.
What will I learn in “Finite state modeling”?
Model finite states with enums: represent app flows (loading, success, error), enforce exhaustive handling, and prevent invalid combinations. You practise Swift Academy with hands-on code you run directly in the browser, and a 24/7 AI tutor answers your questions as you work through the lesson.
Do I need any experience to start Swift Academy?
No prior experience is required. Swift Academy on CoddyKit is structured for beginners through advanced learners; this is — lesson 3 of 3, so you can start here or from the beginning and move at your own pace.
How long does the “Finite state modeling” lesson take?
Most CoddyKit lessons take about 5–10 minutes. Each one is bite-sized and interactive, so you make steady progress and pick up exactly where you left off across the web and the app.
Can I write and run code in this Swift Academy lesson?
Yes. Every Swift Academy lesson includes a built-in code editor, so you write and run real code right in your browser and get instant AI feedback — no local setup required.
All lessons in this course
- Enums with Power basics
- Powerful switch with pattern matching
- Finite state modeling