Swift Academy logo
SwiftBeginnerWebMobileLevels A1 → C222 languages

Swift Academy

Learn Swift to create powerful iOS applications with Swift Academy. A CoddyKit learning path of 122 short courses and 409 interactive lessons, with a 24/7 AI tutor at your side.

Courses
122
Lessons
409
Interactive steps
4,718
Free to start
Course 1
Curriculum

122 courses in this path

Every course in the Swift Academy path, in learning order. The first one is free.

1

A13 lessonsFree

Swift is friendly to new programmers. It's an industrial-quality programming language that's as expressive and enjoyable as a scripting language. With Swift, you can develop applications for smartpho…

2

A13 lessonsPRO

Start Swift the right way: safety-first design, high performance via native compilation, and readable code that scales.

3

A14 lessonsPRO

Master Swift's type system, constants with let, variables with var, type inference and the fundamental data types used in every Swift program.

4

A14 lessonsPRO

Express clear conditional logic with Booleans, logical operators, and the ternary conditional.

5

A13 lessonsPRO

Learn how Swift handles values and types: constants vs variables, inference, literals, and tuples.

6

A11 lessonPRO

In this lesson, we will learn about the conditional concept, which is a must for programming languages.

7

A13 lessonsPRO

Learn how to define and call functions in Swift with parameters, labels, defaults, and variadic arguments.

8

A24 lessonsPRO

Deep dive into Swift's looping constructs: for-in, while, repeat-while, and advanced iteration with ranges and stride.

9

A24 lessonsPRO

Go beyond basic functions — learn argument labels, variadic parameters, in-out parameters and returning multiple values.

10

A24 lessonsPRO

Master every optional unwrapping technique: if let, guard let, nil coalescing, optional chaining and forced unwrapping.

11

A24 lessonsPRO

Master every Swift operator family — arithmetic, comparison, logical, and bitwise — with overflow-safe practices.

12

A24 lessonsPRO

Work confidently with Int, Double, Float, and explicit numeric conversions without losing precision.

13

A24 lessonsPRO

Safely inspect and convert types at runtime using Swift's type casting operators.

14

A24 lessonsPRO

Build dynamic, formatted strings using interpolation, format specifiers, and custom interpolation.

15

A24 lessonsPRO

Provide safe fallbacks for optionals using the nil-coalescing operator and sensible defaults.

16

A24 lessonsPRO

Unwrap optionals safely and expressively with if let, guard let, and multiple bindings.

17

A24 lessonsPRO

Everything about Swift arrays: creation, mutation, sorting, searching, slicing and functional operations like map, filter and reduce.

18

A24 lessonsPRO

Learn to use Swift's Dictionary and Set types effectively: CRUD operations, iteration, set algebra and practical use cases.

19

A24 lessonsPRO

Use Swift's powerful switch to match values, ranges, tuples, and bindings exhaustively.

20

A24 lessonsPRO

Generate sequences of values with ranges and stride for precise, readable iteration.

21

A24 lessonsPRO

Balance Swift's powerful type inference with explicit annotations for clarity and correctness.

22

A24 lessonsPRO

Direct loop flow precisely with break, continue, fallthrough, and labeled statements.

23

A23 lessonsPRO

Master Swift control flow with if/else, switch, loops, and pattern matching.

24

A21 lessonPRO

In this course, we will learn about the guard, an expression we will use frequently. The use of guard statement is similar to if. Let's learn the guard statement in detail.

25

A21 lessonPRO

In this course, we will learn about the useful features of parameters in Swift language.

26

A21 lessonPRO

In this lesson, we will learn about collection types in Swift, which is one of the most important topics.

27

A21 lessonPRO

It is a type that is used to keep more than one value in a combined form. Consider a function, this function freezes the latitude and longitude information of a coordinate. In this course, we will le…

28

A23 lessonsPRO

Work with Swift collections: arrays, dictionaries, and sets. Learn creation, updates, iteration, and mutability.

29

A21 lessonPRO

Used to express that an optional variable may not have a value. If a variable of the optional type has a value, this variable is unwrapped and used. Or there is no value. In this course, we will lear…

30

A21 lessonPRO
31

A21 lessonPRO

Property is added to define the properties of an object. In order to add a property to an object in Swift, the variable or constant definition must be added to the type definition.

32

A21 lessonPRO

In this course, we will learn about the range operators provided to us by Swift.

33

A23 lessonsPRO

Work with Unicode-correct strings: grapheme clusters, safe indices, substrings, common APIs, and copy-on-write behavior.

34

A21 lessonPRO

Assertions and preconditions are the processes of checking the application at runtime. Before running any code, it checks that certain conditions are met and this usually happens with the bool operat…

35

A21 lessonPRO

In this lesson, we will learn the subject of Enumeration. Enumeration is used to create user-defined types. In the next step, working with this user-defined associated data allows us to write code wi…

36

A23 lessonsPRO

Understand Swift's primary types: structs (value semantics) and classes (reference semantics). Learn properties, observers, initializers, and deinitializers.

37

B14 lessonsPRO

Understand how Swift models text as extended grapheme clusters for correct Unicode handling.

38

B14 lessonsPRO

Build robust value types with Swift structs: custom initializers, computed properties, mutating methods and copy semantics.

39

B14 lessonsPRO

Understand Swift classes: inheritance, method overriding, final, type casting with as? and the Liskov substitution principle.

40

B14 lessonsPRO

Use Swift enums to model domain logic: raw values, associated values, recursive enums and finite state machines.

41

B14 lessonsPRO

Compose behaviours with protocol composition, conditional conformance, Self requirements and protocol-oriented design.

42

B14 lessonsPRO

Work efficiently with portions of arrays using ArraySlice while understanding index semantics.

43

B14 lessonsPRO

Understand value-type mutation rules and write correct mutating methods on structs and enums.

44

B14 lessonsPRO

Guarantee cleanup code runs when a scope exits using defer for resources and rollbacks.

45

B14 lessonsPRO

Understand when to choose structs vs classes, copy semantics, identity operators, and designing APIs around value semantics.

46

B14 lessonsPRO

Use Swift's Result type to model errors explicitly, transform results with map/flatMap, and bridge to async/await.

47

B14 lessonsPRO

Build your first SwiftUI views, understand declarative UI, use @State for local state, and apply view modifiers.

48

B14 lessonsPRO

Master SwiftUI layout with VStack, HStack, ZStack, LazyVGrid, LazyHGrid and GeometryReader for adaptive interfaces.

49

B14 lessonsPRO

Serialize and deserialize Swift types to and from JSON with the Codable protocol.

50

B14 lessonsPRO

Transform collections expressively with map, filter, reduce, flatMap, and compactMap.

51

B14 lessonsPRO

Master closure capture semantics, escaping closures, autoclosures, and capture lists.

52

B14 lessonsPRO

Make your types work seamlessly in sets, dictionaries, and sorted collections.

53

B14 lessonsPRO

Handle dates, time zones, and calendar math correctly with Date, Calendar, and DateComponents.

54

B14 lessonsPRO

Read, write, and organize files and directories on disk with FileManager and URLs.

55

B14 lessonsPRO

Broadcast and observe events across your app with NotificationCenter and modern alternatives.

56

B11 lessonPRO

Closures are self-contained blocks of code. A closure is passed as a parameter to the code, or it can be used inside codes. Let's learn how to use closures in Swift.

57

B11 lessonPRO

In this course, we will learn about lazy and computed properties that we will use frequently in our applications.

58

B11 lessonPRO

In this course, we will learn about lazy and computed properties that we will use frequently in our applications.

59

B11 lessonPRO

Subscripts are a shortcut to access member items of a collection, list, or directory. Use subscripts to set and retrieve values ​​according to the index without the need for separate getter and sette…

60

B11 lessonPRO

While the application is running, some errors may occur depending on the code of our application (logic errors, etc.) or depending on the environment in which the application is running. In this less…

61

B13 lessonsPRO

Dive deeper into Optionals with chaining, guard patterns, and combine them with Swift error handling using throws, try, do/catch, and Result.

62

B13 lessonsPRO

Learn closures in Swift: syntax, shorthand arguments, trailing closure, capture lists, and escaping vs non-escaping.

63

B14 lessonsPRO

Enhance Swift types with advanced properties and subscripts. Learn lazy properties, get/set computed props, observers, and subscript access.

64

B13 lessonsPRO

Learn Swift Package Manager (SPM): initialize packages, modules, layout, build/test, and import dependencies.

65

B13 lessonsPRO

Learn Swift protocols for shared interfaces, add extensions to types, and provide default implementations. Cover static vs instance requirements.

66

B13 lessonsPRO

Swift enums can hold raw or associated values. Use switch with pattern matching for powerful state modeling.

67

B13 lessonsPRO

Dive deeper into Swift's value and reference types: learn about memberwise initializers , mutating methods , inheritance, and access control.

68

B13 lessonsPRO

Keep codebases consistent with SwiftFormat (auto-format) and SwiftLint (static rules). Learn setup, common rules, and team workflows.

69

B24 lessonsPRO

Apply functional programming techniques in Swift: pure functions, higher-order functions, function composition, and lazy evaluation.

70

B24 lessonsPRO

Build and use property wrappers to encapsulate property storage logic: @Published, @State, custom wrappers and projected values.

71

B24 lessonsPRO

Understand SwiftUI's data flow: @Binding, @ObservableObject, @EnvironmentObject and the single-source-of-truth principle.

72

B24 lessonsPRO

Learn Apple's Combine reactive framework: publishers, subscribers, operators, subjects and integrating with URLSession.

73

B24 lessonsPRO

Master Swift's async/await, Task, TaskGroup, Actor model and structured concurrency for safe concurrent code.

74

B24 lessonsPRO

Design flexible, composable APIs using protocols, default implementations, and protocol composition.

75

B24 lessonsPRO

Write precise generic code by constraining type parameters with protocols and where clauses.

76

B24 lessonsPRO

Control JSON mapping with custom coding keys, encoding strategies, and manual encode/decode.

77

B24 lessonsPRO

Reference and compose property access with key paths and build expressive dynamic APIs.

78

B24 lessonsPRO

Defer expensive collection work and process large data efficiently with lazy sequences.

79

B24 lessonsPRO

Control how your types print and inspect them at runtime with reflection.

80

B24 lessonsPRO

Parse and validate text with Swift's modern Regex literals, builders, and matching APIs.

81

B24 lessonsPRO

Decouple components and improve testability with constructor, property, and protocol-based injection.

82

B23 lessonsPRO

Build reusable code with generics : write functions and types that work for many data types while keeping static type safety.

83

B23 lessonsPRO

Model relationships with associated types in protocols, build generic protocols, and understand how conformers pick concrete types.

84

B23 lessonsPRO

Nail Swift's iterable hierarchy: Sequence → Collection → BidirectionalCollection → RandomAccessCollection , and pick the right algorithms for each.

85

B23 lessonsPRO

Create lightweight, readable math-like APIs with operator overloading and custom precedence groups —used sparingly and clearly.

86

B22 lessonsPRO

Learn XCTest basics: how to set up a test target, write test cases, and use fixtures ( setUp / tearDown ) for reliable unit tests.

87

B24 lessonsPRO

Create fluid animations with withAnimation, matchedGeometryEffect, TimelineView, and build custom AnimatableModifiers.

88

B24 lessonsPRO

Bridge UIKit and SwiftUI using UIViewRepresentable, UIViewControllerRepresentable, Coordinator pattern and hosting controllers.

89

B24 lessonsPRO

Persist data with Core Data and Apple's modern SwiftData framework: modelling, CRUD, relationships, migrations and CloudKit sync.

90

B24 lessonsPRO

Build robust networking layers in Swift: URLSession data tasks, async/await APIs, Codable decoding, error handling and retry logic.

91

B24 lessonsPRO

Write effective unit tests in Swift: test organisation, XCTAssert family, mocking with protocols, async tests and measuring performance.

92

B24 lessonsPRO

Build multi-module Swift apps with SPM: Package.swift targets, local packages, binary targets and managing dependencies.

93

B24 lessonsPRO

Play, record, and process audio and video media with the AVFoundation framework.

94

B24 lessonsPRO

Access device location and present interactive maps with Core Location and MapKit.

95

B24 lessonsPRO

Build type-safe backend APIs in Swift using the Vapor web framework.

96

B24 lessonsPRO

Organize iOS apps with the MVVM presentation pattern and Coordinator-based navigation.

97

B24 lessonsPRO

Make your app world-ready with localized strings, plurals, and locale-aware formatting.

98

B24 lessonsPRO

Deliver timely updates with push notifications and run work in the background reliably.

99

B24 lessonsPRO

Store secrets securely and protect user data using Keychain and Apple's security APIs.

100

B24 lessonsPRO

Extend your app beyond its main UI with home-screen widgets, extensions, and App Intents.

101

B23 lessonsPRO

Create reusable behaviors with @propertyWrapper : control wrappedValue , expose extras through projectedValue ( $var ), and configure via initializers.

102

B23 lessonsPRO

Write clear asynchronous code with async/await and structured concurrency : start lightweight tasks, await results safely, and keep lifetimes scoped.

103

B23 lessonsPRO

Write quick Swift scripts with a shebang, parse CLI arguments, set exit codes, and build simple command-line tools.

104

B23 lessonsPRO

Distribute Swift projects with SwiftPM and CI: choose library vs executable packages, tag releases, and ship artifacts reliably.

105

C14 lessonsPRO

Deep dive into Automatic Reference Counting: retain cycles, weak/unowned, capture lists in closures and debugging leaks.

106

C13 lessonsPRO

Understand Swift ARC: how strong references keep objects alive, and how weak and unowned break cycles safely.

107

C14 lessonsPRO

Push generics further with conditional conformance, opaque return types (some), existentials (any) and primary associated types.

108

C14 lessonsPRO

Understand Swift 5.9 macros: freestanding expression and declaration macros, attached macros, and writing macros with SwiftSyntax.

109

C14 lessonsPRO

Implement Clean Architecture with SOLID principles in Swift: separation of layers, dependency inversion, use cases and repository pattern.

110

C14 lessonsPRO

Profile Swift apps with Xcode Instruments: Time Profiler, Allocations, Leaks, Main Thread Checker and optimising hot paths.

111

C14 lessonsPRO

Write data-race-free code for Swift 6 with Sendable, isolation, and strict concurrency checking.

112

C14 lessonsPRO

Build bespoke layouts beyond stacks and grids using the SwiftUI Layout protocol.

113

C14 lessonsPRO

Diagnose and eliminate SwiftUI redraw bottlenecks for smooth, efficient interfaces.

114

C14 lessonsPRO

Create rich visual effects with Core Animation layers, transforms, and custom drawing.

115

C14 lessonsPRO

Structure SwiftUI apps with unidirectional data flow using The Composable Architecture.

116

C14 lessonsPRO

Compose complex asynchronous pipelines with advanced Combine operators and scheduling.

117

C14 lessonsPRO

Work directly with memory using unsafe pointers, buffers, and MemoryLayout when performance demands it.

118

C13 lessonsPRO

Dive deeper into generics: use conditional conformances and where clauses to make types adopt protocols only when their generic parameters satisfy constraints.

119

C13 lessonsPRO

Understand opaque result types ( some P ): hide concrete types behind protocols while keeping static dispatch and generics working.

120

C13 lessonsPRO

Create lightweight DSLs using @resultBuilder : compose nested structures with clean syntax while generating values behind the scenes.

121

C13 lessonsPRO

Apply practical concurrency patterns in Swift: producer/consumer queues, streaming pipelines with AsyncSequence , and cooperative timeouts .

122

C23 lessonsPRO

Run many child tasks safely using TaskGroup : spawn, await, and collect results with structured concurrency guarantees.

CoddyKit PRO

Unlock all 122 courses in this path, and every other path

AI tutor, certification exam and certificate. Works on web, iOS and Android.

See all plans
Yearly$29.90 / yearAbout $2.49 a monthPay onceLifetime$69.99 onceNo renewals. PRO forever.
Course Overview

Swift: Apple's Language for iOS, macOS, and Beyond

Swift is Apple's compiled, statically typed language that replaced Objective-C as the primary way to build apps across iOS, macOS, watchOS, and tvOS. It combines a concise syntax with strong type safety, value semantics, and a modern concurrency model — making it both approachable for beginners and rigorous enough for production engineering. This track covers the full language, from first variables to advanced memory management, structured concurrency, and SwiftUI architecture.

What You Will Learn

You will work through Swift's type system including optionals, type casting, and generics with where clauses. You will master closures, higher-order functions, and protocol-oriented programming patterns. SwiftUI is covered from Views, Modifiers and State through data flow with Bindings and Environment, custom layouts, animations, and performance optimization. Practical iOS topics include Networking with URLSession and async/await, Core Data and SwiftData, push notifications, Keychain services, Core Location and MapKit, and distributing apps with Swift Package Manager. Advanced courses address Swift Macros, The Composable Architecture, Combine operators and schedulers, unsafe pointers, result builders and DSLs, and Task Groups and Actors for strict concurrency.

The Learning Path

122 courses progress from A1 through C2. The A1 and A2 foundations cover variables, constants, control flow, optionals, collections, enums, and structs. B1 introduces struct design patterns, class inheritance, protocol composition, SwiftUI basics, Codable JSON encoding, error handling with the Result type, and the Swift Package Manager. B2 deepens this with functional programming, property wrappers, the Combine framework, structured concurrency, dependency injection, MVVM and Coordinator patterns, AVFoundation, and unit testing with XCTest. The C1 tier tackles ARC and memory management, advanced generics and opaque types, Swift Macros, Clean Architecture, performance profiling with Instruments, and SwiftUI's custom Layout protocol. The track closes at C2 with Task Groups and Actors and strict Sendable concurrency.

How It Works

Each course is broken into short, focused lessons you complete in the built-in code editor with real-time feedback on every exercise. An AI tutor is available whenever you get stuck, explaining compiler errors or suggesting the idiomatic Swift approach — so you spend time writing code, not reading docs.

How You'll Learn

  1. 01

    Interactive Lessons

    Hands-on coding exercises with real-time feedback

  2. 02

    AI Tutor

    Get instant help from our AI when you're stuck

  3. 03

    Built-in Editor

    Write and run code directly in your browser

  4. 04

    Certificate

    Earn a certificate when you complete the course

FAQ

Frequently Asked Questions

Is the Swift Academy course free?

Yes. You can start the Swift Academy course for free and complete its interactive lessons at no cost. An optional PRO subscription unlocks advanced AI tools and a shareable certificate.

Do I need prior experience to learn Swift?

No. The course begins with the fundamentals and gradually moves to more advanced topics, so you can start even with no prior Swift experience.

How will I learn Swift on CoddyKit?

You learn by doing. Short interactive lessons pair a clear explanation with a hands-on coding exercise that runs in real time, and a 24/7 AI tutor gives personalized help whenever you get stuck.

Do I get a certificate for completing Swift Academy?

Yes. PRO learners can take an exam and earn a shareable certificate of completion with a verifiable code for the Swift Academy course.

Can I learn Swift on my phone?

Yes. CoddyKit is available on the web and as native iOS and Android apps, so you can learn Swift on any device and your progress syncs across them.

How much does CoddyKit PRO cost?

The first course of Swift Academy is free. CoddyKit PRO unlocks every course: $5.90 per week, $7.90 per month, $29.90 per year, or $69.99 once for lifetime access with no renewals.

How long does it take to complete Swift Academy?

Swift Academy has 122 courses and 409 lessons. Most lessons take about 5–10 minutes, so the whole path is roughly 48 hours of hands-on practice, at your own pace.

Start Swift Academy Now

Join thousands of learners mastering programming with AI-powered lessons.