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. This is lesson 3 of 3. Any 3 lessons of this learning path are free to read in full — after that, CoddyKit PRO unlocks every lesson, plus hands-on practice with a built-in code editor and a 24/7 AI tutor. It is part of the Swift Academy learning path, and your progress syncs across the web and the CoddyKit app. The Swift Academy course includes 3 lessons in total.
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.
Learn Swift with an AI tutor — free
Write and run real code in your browser, get instant help from a 24/7 AI tutor, and pick up where you left off on the web or in the app.
- Courses
- 122
- Lessons
- 409
Frequently Asked Questions
Is the “Finite state modeling” lesson free?
Yes — any 3 lessons of the Swift Academy learning path, including “Finite state modeling”, are free to read in full here on the web. After that, CoddyKit PRO unlocks every lesson, plus interactive practice with a built-in code editor and a 24/7 AI tutor. The Swift Academy course includes 3 lessons in total.
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, so you can start here or from the beginning and move at your own pace. This is lesson 3 of 3.
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