SwiftUI Academy
Build beautiful native iOS apps with SwiftUI, Apple's modern declarative UI framework. From your first View to shipping on the App Store.
Explore Course Tools
Supercharge your learning with AI-powered tools and features
How You'll Learn
30 Courses
Every course in the SwiftUI Academy learning path.
Getting Started with Xcode & SwiftUI
Create, run, and navigate your first SwiftUI project in Xcode with confidence.
- Installing Xcode & Creating a Project
- Anatomy of a SwiftUI App File
- The Live Preview Canvas
- +1 more
Your First SwiftUI View
Build and customize simple views using the body property and view modifiers.
- What Is a View?
- Displaying Text on Screen
- Introducing View Modifiers
- +1 more
Text, Images & SF Symbols
Render and style text and icons using Text, Image, and Apple's SF Symbols.
- Fonts, Weight & Color
- Multiline Text & Alignment
- Loading Images from Assets
- +1 more
Layout with VStack, HStack & ZStack
Arrange views vertically, horizontally, and in layers using stacks.
- Stacking Views Vertically
- Rows with HStack
- Layering with ZStack
- +1 more
Padding, Frames & Backgrounds
Control size, spacing, and color to shape clean, readable layouts.
- Adding Padding Around Views
- Sizing Views with frame
- Backgrounds & Corner Radius
- +1 more
Buttons & Simple Interactions
Make your app respond to taps using buttons and basic actions.
- Creating a Tappable Button
- Styling Buttons
- Running Code on Tap
- +1 more
Reacting to Change with @State
Store changing values so your UI updates automatically when they change.
- Why Views Need State
- Declaring @State Properties
- Building a Tap Counter
- +1 more
Colors, Gradients & Shapes
Draw and style shapes, gradients, and colors to add visual polish.
- The Color Type & Asset Colors
- Linear, Radial & Angular Gradients
- Built-in Shapes
- +1 more
Text Input with TextField
Capture and validate user text input bound to view state.
- Binding a TextField to State
- Keyboard Types & Placeholders
- SecureField for Passwords
- +1 more
Toggles, Sliders & Pickers
Build interactive forms using toggles, sliders, steppers, and pickers.
- On/Off with Toggle
- Choosing Values with Slider
- Incrementing with Stepper
- +1 more
Lists & ForEach
Display dynamic, scrollable collections of data with List and ForEach.
- Building a Static List
- Looping with ForEach
- Identifiable & Stable IDs
- +1 more
Editable Lists: Swipe, Delete & Move
Let users add, delete, reorder, and refresh list content interactively.
- Swipe-to-Delete Rows
- Reordering with onMove
- Adding New Items
- +1 more
Navigation with NavigationStack
Move between screens and pass data using modern stack-based navigation.
- Pushing Screens with NavigationLink
- Passing Data to Detail Views
- Toolbar & Navigation Title
- +1 more
TabView & Multi-Screen Apps
Structure an app with tabs and manage navigation across sections.
- Building a Tab Bar
- Tab Items & Badges
- Selected Tab Binding
- +1 more
Sheets, Alerts & Confirmations
Present modals, alerts, and confirmation dialogs to handle key user moments.
- Presenting a Sheet
- Detents & Drag Indicators
- Alerts with Actions
- +1 more
Sharing State with @Binding
Pass mutable state into child views so parent and child stay in sync.
- Why Children Need @Binding
- Passing a Binding Down
- Building a Reusable Toggle Row
- +1 more
Observable Models with @Observable
Move logic out of views into observable model classes that drive the UI.
- From View State to a Model Class
- The @Observable Macro
- @State for Owned Objects
- +1 more
ScrollView & LazyGrids
Build smooth scrolling content and adaptive grid layouts of any size.
- Horizontal & Vertical ScrollView
- LazyVStack & LazyHStack
- Adaptive Grids with LazyVGrid
- +1 more
Animations & Transitions
Add fluid animations and view transitions that feel native and delightful.
- Implicit Animations
- Explicit Animations with withAnimation
- Insertion & Removal Transitions
- +1 more
Fetching Data with async/await
Load data from the network with modern Swift concurrency and show it in the UI.
- Decoding JSON with Codable
- Calling APIs with URLSession
- The .task Modifier
- +1 more
MVVM Architecture in SwiftUI
Organize features cleanly with the Model-View-ViewModel pattern.
- Why MVVM Fits SwiftUI
- Designing a ViewModel
- Binding Views to ViewModels
- +1 more
Combine: Reactive Pipelines
Process streams of values with Combine publishers, operators, and subscribers.
- Publishers & Subscribers
- Transforming with map & filter
- Debounce for Live Search
- +1 more
Persistence with SwiftData
Store, query, and update structured data locally using SwiftData.
- Defining @Model Types
- The Model Container & Context
- Querying with @Query
- +1 more
Core Data with SwiftUI
Integrate Core Data for powerful, mature local persistence in SwiftUI apps.
- The Core Data Stack
- Fetching with @FetchRequest
- Creating & Saving Entities
- +1 more
Custom Layouts & Alignment Guides
Build bespoke layouts with the Layout protocol and precise alignment control.
- GeometryReader Essentials
- Custom Alignment Guides
- The Layout Protocol
- +1 more
Reusable Components & ViewModifiers
Create a polished, reusable component library with custom modifiers and styles.
- Extracting Reusable Views
- Custom ViewModifiers
- ButtonStyle & LabelStyle
- +1 more
Performance & Smooth Scrolling
Diagnose and fix slow SwiftUI views for buttery, responsive interfaces.
- How SwiftUI Recomputes Views
- Avoiding Unnecessary Redraws
- Lazy Loading Heavy Content
- +1 more
Testing SwiftUI Apps
Write unit and UI tests that keep features reliable as the app grows.
- Unit Testing ViewModels
- Testing Async Code
- UI Tests with XCUITest
- +1 more
Accessibility, Localization & Dark Mode
Make your app inclusive, adaptive, and ready for a global audience.
- VoiceOver & Accessibility Labels
- Dynamic Type & Scaled Fonts
- Localizing Strings & String Catalogs
- +1 more
Shipping to the App Store
Take a finished app from Xcode to a live App Store release with confidence.
- App Icons, Launch Screen & Assets
- Signing, Capabilities & Provisioning
- Archiving & Uploading a Build
- +1 more
Frequently Asked Questions
Is the SwiftUI Academy course free?
Yes. You can start the SwiftUI 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 SwiftUI Academy?
Yes. PRO learners can take an exam and earn a shareable certificate of completion with a verifiable code for the SwiftUI 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.
Start SwiftUI Academy Now
Join thousands of learners mastering programming with AI-powered lessons.