
Launch your first app project in Xcode, explore SwiftUI by composing views with VStack, HStack, and ZStack, and apply modifiers, colors, and gradients to build a previewable UI.
Explore SwiftUI for iOS development by refining a UI with text alignment, fonts, padding, background colors, and images, and build layouts with VStack, HStack, and ZStack.
Download and explore SF symbols, install SF symbols seven, and test animations like bounce, pulse, wiggle, and breathe; copy symbols to Xcode and access them via the library.
Enable code folding ribbons and master essential Xcode shortcuts to navigate the navigator and inspector, manage code, run and build with hotkeys, and toggle the canvas and console.
Master the fundamentals of Swift, including variables and constants, strings and printing, loops and arrays, structs, tuples, enumerations, arithmetic, with guards and optionals.
Explore variables and constants in Swift using a playground, declare var and let, print greetings, perform string concatenation, and understand types.
Learn to use string arrays and for loops in Swift, printing greetings via string interpolation for each name. Understand variable scope and how to annotate string arrays for accurate typing.
Explore optionals, nil and unwrapping with if let in Swift, illustrated by optional hobbies and safe handling of missing data.
Zooming in can mislead you into thinking a string has a line break, but Xcode preserves a single line; avoid pressing enter inside strings and rely on line wrapping.
Explore integers, doubles, and floats with type inference and annotations, learn type of and string interpolation, and preview division, modulo, for loops, and if statements.
Demonstrate division and modulo concepts in Swift, including integer vs double division, the division algorithm, and using for loops and if statements to print quotient and remainder.
Simplify code by introducing a division algorithm function that accepts two integers and returns a string, replacing prints with results and calling the function inside a loop.
Learn to create and print multi-line strings using triple quotes, preserve indentation, and use escape sequences like backslash n and backslash t in Swift, illustrated with a poem example.
Explore loops in Swift, including for, while, and repeat, learn range syntax with ... and ..<, practice summing numbers, and master off by one error and basic function usage.
Learn how the guard statement controls flow by evaluating boolean expressions, using guard else with a closure, returning from a function, and printing messages.
Master tuples and named tuples in Swift, using fixed-length data groups and named fields for readability, and compare with structs for better clarity and protocol conformance.
Explore enumerations by implementing update position to compute a CG point from a direction, using x and y, and avoiding global variables; introduce raw values and case iterable for iteration.
Learn Swift arithmetic through a command line tool: use variables, string interpolation, and functions for add, subtract, multiply, divide, and modulo, including division by zero handling and optional results.
Learn compound operators in Swift, including plus equal and multiply equal, while building arithmetic and geometric progressions, their sums, and type handling for doubles and ints.
Explore Swift strings from emptiness to manipulation: use var, interpolation, raw strings, and escape sequences; count, pluralize, loop through characters, and safely drop or substring strings.
Learn arrays in Swift by building a macOS command line tool, using let vs var, appending, and iterating with for and enumerated to access index and value.
Master Swift loops from for i in 1 to 10 to iterate arrays and dictionaries, use stride for stepping, and apply while and repeat while, including infinite loops and sums.
Explore conditionals in Swift with if statements, if expressions, and the ternary operator, including practical examples from sleep-based logic and string interpolation.
This lecture demonstrates the switch statement and expression in Swift 5.9, mapping a day-of-week string to messages with default handling and the potential use of enums.
describe a point with a switch on a named tuple, covering origin, x axis, y axis, quadrants, and sine or cosine checks with a threshold for floating point precision.
Implement a function that takes an integer and returns a message about divisibility by seven using the modulo operator, in a macOS console app.
Implement two functions: one checks divisibility by a divisor, the other applies it over a range, printing statements like I am 12 and I am divisible by 4.
Use modulo to determine divisibility and build output messages for divisible by d. Demonstrate range handling from min to max excluding max and note division by zero.
Implement a loops-based power function taking a base and power, returning an optional integer; base zero yields zero, nonzero base with power zero yields one, and negative power yields nil.
Implement a power function that returns nil for negative powers, returns zero for a zero base, and uses a for loop with value initialized to one.
Implement a sums of powers function in Swift, accepting an integer and a power, returning an optional integer by summing 1^power to n^power in a macOS command line Xcode project.
Build a sums-of-powers solution with while and for loops, using if let to handle nil or negative powers, and compare approaches with practical examples.
Learn to implement a count occurrences function in a command line project that takes a list of integers and a target number, returns the count and a message, including pluralization.
Implement a simple solution to count occurrences of a target value in a list, returning the count and a message that adapts for zero, one, or multiple appearances.
Implement a repeat character function rtpcr to repeat a string n times, and a rectangle character stroke function to draw a stroked square with a given string (default star).
Develop three functions to compute sums of powers and explore triangle numbers and sum of cubes while spotting patterns across a new project called exercise sum of n powers.
Learn to compute the sum of n powers in Swift with a loop and doubles, note that triangle numbers squared equal the sum of cubes, as Knuth discusses.
Implement a cosine function via a Taylor series about zero with a 1e-6 threshold, summing even powers with alternating signs. Test for m from 0 to 18 in radians.
Develop a cosine function using a Taylor series, updating alternating signs, even powers, and even factorials until the term falls below a threshold. Note cosine periodicity for large inputs.
Explore the logarithm solution, handling edge cases such as negative infinity and not a number, using a series of powers of y with alternating signs and a threshold.
Explore how the logarithm's Taylor series converges only for -1 < x ≤ 1. See how inputs outside this range risk divergence and overflow, prompting range checks and alternative methods.
Design a Swift function named print sorted 0 to 100 that outputs the names of numbers from 0 to 100 in alphabetical order.
Explore higher order functions like filter, map, reduce, compact, map joined, flatMap, split and enumerated, and learn how they accept or return functions to enable concise Swift code.
Explore higher order functions in Swift by building filter, map, and sort examples, comparing functional and non-functional approaches, and illustrating commuting functions and name transformations.
Explore higher order functions through reduce, computing sums and products and concatenating strings. Use compactMap to filter nils, convert strings to numbers, and square results for concise Swift code.
Explore Swift's for loops with where clauses to filter even numbers from 1 to n, using modulo to test if a number is even and print results.
Practice using for where to count positive values in a list of doubles from -10 to 10, with guidance on naming the list (XZ) and printing the result.
Create a greetings app in SwiftUI for iPhone, iPad, and mac, showcasing animations, state variables, localization with string catalogs, and light and dark mode.
refine a vstack layout in xcode by removing the zstack and gradient and simplifying text views. address code redundancy with custom views and for each to reduce duplication.
Create a reusable text view in SwiftUI to reduce code redundancy and improve readability by parameterizing string and color, then update previews with a vstack and multiple instances.
Create a data item model with text and color, then build an array of these models to populate views, preparing for a for-each approach and improved readability.
Simplify SwiftUI code with the ForEach view by making the data item identifiable with a UUID and iterating over messages. The UI updates automatically as items change.
Refactor the app by extracting title and messages into separate SwiftUI views, simplify content, and add a background color using a ZStack with color.black with an opacity of 0.2.
Create a linear gradient background in SwiftUI by replacing the color, setting start and end points, composing colors with RGB values, adjusting opacity, and wrapping it as a background view.
Explore implementing a tap gesture that randomly changes text colors from a colors array in SwiftUI. The lecture covers using state, nil-coalescing, and simple animation.
Tap the view to randomize the greetings subtitle in a SwiftUI iOS app, using a state variable and a list of subtitles, with simple gradients, shadows, and animations.
Learn to support light and dark mode by creating color sets in assets and applying them to text and gradients in SwiftUI, with preview toggles for testing.
Create an app icon in Figma by building a 1024 by 1024 design, applying angular gradient and ring, then export a PNG and import it for iOS single size icons.
Remove the app icon background by setting its opacity to zero, and export a standalone image for use in the launch screen.
Explore the new string catalog approach to localizing iOS apps, add languages like Spanish, Hebrew, and Arabic, and convert strings to localized keys for accurate translations.
Clean up code structure by factoring models and views, rename content view to greetings view, build to confirm changes, and discuss landscape and iPad support with orientation considerations.
Create a landscape grading view in SwiftUI by refactoring to an HStack, adding a greetings text view with bindings, and building a rotatable circle and vertical title view.
Explore how to adapt a SwiftUI app for portrait and landscape modes using iPhone size classes, including horizontal and vertical size classes, guided by human interface guidelines.
Learn to support iPad layouts in SwiftUI using horizontal and vertical size classes. Implement computed properties to detect iPad and portrait or landscape, and adapt fonts accordingly.
Programmatically change app language with a button and context menu to switch between English, Hebrew, Spanish, and Arabic, persisting the choice via app storage and layout direction.
Adapt your iOS app for macOS by creating a mac target, sharing code in a new shared folder, and using compiler directives to tailor views and typography for macOS.
Create light, dark, and tinted bakery app icons for iOS 18 using Xcode 16, generate a 1024 by 1024 image, and test in the simulator.
Explore how to use state variables and let constants with tap gestures to drive color lists and the linear gradient, and animations in SwiftUI, using computed properties and ternary logic.
Explore multi-line text alignment and 3D rotations in SwiftUI, using a conditional text, computed properties, and a rotation 3D effect on stacked text to create dynamic layouts.
Explore grids in a multi-platform SwiftUI app by creating grid rows with rounded rectangles and color fills. Adjust padding and grid cell columns to shape the layout.
Build a simple iOS app in Xcode using a navigation stack and text fields to collect a name and age, with input validation and a drinking age scenario.
Explore animating everything in a multi-platform SwiftUI project by using state, computed properties, and range of animation styles—from offset and rotation to color and spring effects—within stacks and backgrounds.
Build a simple SwiftUI list of people with optional hobbies and images, using a reusable row view, conditional images, and a rounded rectangle background.
Explore arithmetic progression concepts by coding starting value a, difference d, element index i, and a for loop to generate and display n terms in a SwiftUI view.
Explore Xcode's library to experiment with views, modifiers, and layouts, including HStack, VStack, and ZStack, plus horizontal scroll views, opacity, padding, colors, and rotations.
Explore a SwiftUI library in Xcode by experimenting with views, stacks, and controls like Button, color picker, date picker, and form, using state and bindings to drive UI changes.
Master frames and alignment in SwiftUI by using max width and height infinity with zstack, vstack, and hstack to place text at each corner.
Explore creating a custom SwiftUI view modifier called align, add an alignment parameter with a default center, and extend the view to simplify and reuse alignment in code.
Create a settings view using a group box with state variables and bindings for enable notifications and dark mode; explore label and content, toggles, and future nested group boxes.
Build a user info view in SwiftUI with a nested group box that shows name, email, phone, and address using a system image and a leading VStack.
Master mesh gradient in SwiftUI by building a 3 by 3 control-point mesh, tuning points and colors, and adjusting the center and background in Xcode 16 iOS 18.
Animate a mesh gradient in SwiftUI with a timer, updating points, colors, and background state variables for a looping five-second linear animation and randomized colors.
Explore iOS 18 SwiftUI techniques for scroll transitions by implementing grayscale effects using phase values, absolute value and squaring for symmetric, non-linear parallax visuals, with adjustable opacity.
Learn to build a multi-platform iOS app with a tab view in SwiftUI, adding watch and read tabs, a search role, and a sidebar adaptable layout for iPad.
Explore tab view in iOS 27 with the new prominent role, sidebar adaptable layouts, and practical examples using system images, previews, and beta testing in Xcode 27.
Discover how the @Previewable macro enables a stateful SwiftUI preview for iOS 18, including a bound toggle, message label, and optional animations.
Explore blur effects by building an interactive SwiftUI app that demonstrates blur radius adjustments, glow via blend modes, and material-backed overlays with sliders.
Explore blend modes in SwiftUI by building an interactive test app. Visualize how normal, color, and other blend modes mix top and bottom layers with opacity.
Create a simple liquid glass UI in Xcode 26 with SwiftUI, building a multi-platform demo and applying a glass overlay over a background image while consulting the human interface guidelines.
Learn to build a glass effect container in SwiftUI using a morph state, with images in an HStack inside a VStack, and experiment with spacing, blue tint, and tap gestures.
Explore the glass effect in SwiftUI by applying the glass modifier and container, experimenting with tint, radius, and interactive toggles via tap gestures on scalable layouts.
Explore glass effect containers with a slider to adjust spacing in a z-stack, using offsets to see how elements separate and come together while practicing factors and state variables.
Explore glass and liquid glass button styles in SwiftUI by applying glass, bordered, and prominent configurations, testing padding and tint, and noting style changes across betas for iOS 26.
Deep Dive iOS 27 & SwiftUI 6
Learn Swift and SwiftUI by building real-world applications for iPhone, iPad, Mac, and Apple platforms.
This is a 90-hour, project-based iOS development course covering Swift programming, SwiftUI, MVVM, API integration, async/await, localization, SwiftData, Core Data, Charts, MapKit, animations, gestures, push notifications, Core ML, Create ML, Foundation Models, App Intents, and much more.
The course is actively being updated for Xcode 27, iOS 27, iPadOS 27, and macOS 27, with new material added as Apple's latest technologies become available.
You don't need previous Swift or iOS development experience. If you already know how to program, you can move quickly through the Swift fundamentals and start building applications.
What You'll Learn
Learn Swift programming from the fundamentals through more advanced features
Build modern applications using SwiftUI
Understand SwiftUI's data flow with @State, @Binding, Observation, @Observable, and more
Use MVVM architecture to organize larger applications
Build apps for iPhone, iPad, and Mac
Make API calls using URLSession, async/await, and Swift concurrency
Work with SwiftData and Core Data for local data persistence
Build multilingual applications using localization and String Catalogs
Create sophisticated animations, transitions, and gestures
Work with Swift Charts, including line, bar, area, pie, donut, and 3D charts
Integrate MapKit into your applications
Work with local push notifications
Explore Apple's Foundation Models and on-device AI
Use Core ML and Create ML
Learn about App Intents
Work with images, AsyncImage, and image caching
Build responsive interfaces that adapt to different screen sizes and Apple platforms
Learn by Building Real Apps
This is a project-based course.
Rather than spending the entire course watching lectures about Swift syntax, you will use what you learn to build applications.
The projects start simply and gradually become more sophisticated. Along the way, you will encounter real problems that iOS developers need to solve: managing state, navigating between screens, working with APIs, storing data, adapting layouts to different devices, handling gestures, localizing applications, and structuring larger projects.
Some of the major projects include:
Greetings App — multilingual SwiftUI app supporting light/dark mode, dynamic language changes, iPhone, iPad, Mac, localization, animations, and AppStorage
Calculator App — responsive interface supporting light and dark mode
Weather App — API integration using URLSession, JSON, async/await, and MVVM
Chinese Counting App — API calls, multilingual text-to-speech, modern navigation, MVVM, iPhone, iPad, and visionOS
Activity Tracker — SwiftData combined with charts, including pie and donut charts
Alarm App — local notifications, gestures, localization, and a more complex UI
Conway's Game of Life — Canvas, Timeline, MVVM, Mac development, drag and drop, and a pattern editor
Tip Calculator — responsive layouts, multiple devices, localization, and custom shapes
Flashcards App — interactive gestures including dragging
Mystic Puzzle — a 15-tile puzzle with animations, gestures, JSON persistence, and a Mac-based shape editor
There are also many smaller projects and focused examples covering individual SwiftUI and iOS development techniques.
Swift Programming
We begin with the Swift language so that you understand the code you will be writing throughout the course.
Topics include:
Variables and constants
Arrays and dictionaries
Structs and enums
Tuples
Loops and control flow
guard
Functions
Closures
Higher-order functions
Functional programming
Raw strings
Coding exercises
If you already know how to program, you can move through these sections quickly.
SwiftUI Fundamentals
You will learn the building blocks of modern SwiftUI development, including:
VStack, HStack, and ZStack
Grids and lists
Text and text fields
Buttons
Frames and alignment
Navigation
Tab views
Gradients and mesh gradients
Images and AsyncImage
Light and dark mode
Tinted app icons
Responsive layouts
Multiple screen sizes
iPhone, iPad, and Mac interfaces
One of the goals of the course is to get you building a real application early, rather than making you wait until the end of the introductory material.
Data Flow and MVVM
Data flow is one of the most important concepts to understand when developing with SwiftUI.
You will work with:
@State
@Binding
Observation
@Observable
@Bindable
Observable objects
Application state
MVVM
The course then uses MVVM throughout many of the larger applications, giving you practical experience with this common architecture.
Networking and Async/Await
Modern applications frequently need to communicate with web services.
You will learn how to:
Make API requests with URLSession
Decode JSON
Use async/await
Work with Swift concurrency
Refresh network content
Display remote data in SwiftUI
Combine networking with MVVM
The Weather App and Chinese Counting App provide practical examples of these techniques.
SwiftData and Core Data
Learn Apple's technologies for storing data locally.
You will work with:
SwiftData
Core Data
JSON persistence
Persistent application state
MVVM with persistence
Converting Core Data applications to SwiftData
You will also see the practical differences between SwiftData and Core Data and where each approach can make sense.
Animations, Transitions, and Gestures
SwiftUI makes it possible to create sophisticated interactions with relatively little code.
You will explore:
SwiftUI animations
Phase animations
Keyframe animations
Symbol Effects
Animation transitions
Drag gestures
Tap gestures
Magnification gestures
Navigation
Dynamic navigation
Reordering
Swipe interactions
These techniques can make your applications feel much more polished and responsive.
Charts and Data Visualization
Learn how to visualize data using Swift Charts.
Topics include:
Line charts
Bar charts
Area charts
Pie charts
Donut charts
Data-driven visualizations
3D Charts
The course also contains several mathematical visualization projects, including Lissajous curves and other interesting examples.
AI and Machine Learning
Apple's AI capabilities are becoming an increasingly important part of app development.
You will explore:
Foundation Models
On-device AI
Core ML
Create ML
Machine-learning models
Integrating AI and machine learning into Apple-platform applications
Foundation Models is particularly interesting if you want to explore local AI capabilities that run directly on supported Apple devices.
Localization and Multilingual Apps
Many applications need to support more than one language.
You will learn practical approaches to:
Localization
String Catalogs
Dynamic language selection
Pluralization
Multilingual interfaces
Text-to-speech
Designing layouts that adapt to different languages
Localization is demonstrated in several projects throughout the course.
Maps, Notifications, and Apple Frameworks
The course also covers a wide range of Apple's frameworks and capabilities, including:
MapKit
Local push notifications
App Intents
AsyncImage
Image caching
Canvas
Timeline
Rich Text Editing
SVG rendering and animation
Web views
Custom view modifiers
Mac applications
Drag and drop
Some of these topics are highly specialized, so you can skip them if they are not relevant to the applications you want to build.
iOS 27 and Xcode 27
The course is actively evolving with Apple's latest releases.
Current and recent material includes:
iOS 27
iPadOS 27
macOS 27
Xcode 27
SwiftUI 6
App Intents
Foundation Models
3D Charts
Rich Text Editing
AsyncImage caching
Reordering
Extended swipe interactions
Navigation improvements
Animation transitions
Liquid Glass
Tinted app icons
Modern SwiftUI animations
New content is added as Apple's technologies evolve, and the course will continue to be updated as Xcode 27 reaches a stable release.
A Course You Can Navigate at Your Own Pace
This is a large course, and you do not have to watch every section.
If you are completely new to programming, you can work through the material from the beginning.
If you already know Swift or another programming language, you can move quickly through the fundamentals.
If you only need a particular technology — such as SwiftData, MapKit, Charts, networking, animations, or Foundation Models — you can jump directly to the relevant section.
Throughout the course, I indicate which topics are essential and which are more specialized.
Who Is This Course For?
This course is for:
Beginners who want to learn Swift and iOS development
Developers who want to learn SwiftUI
UIKit developers moving to SwiftUI
Programmers who already know another language but are new to Apple's platforms
Developers interested in MVVM
Developers interested in SwiftData and Core Data
Developers who want to learn API integration and async/await
Developers interested in on-device AI and Foundation Models
Anyone who wants to build modern applications for iPhone, iPad, and Mac
Requirements
A Mac capable of running a current version of Xcode
Xcode
No previous Swift or iOS development experience is required
A willingness to learn by building projects
Instructor Support
I personally answer questions in the course Q&A and check it regularly throughout the day.
I also take student questions and suggestions seriously. The course continues to evolve based on Apple's new releases as well as questions and requests from students.
Why This Course?
My goal is not simply to teach you Swift syntax or show you where to click in Xcode.
The goal is to help you understand how to build applications.
You will write Swift code, design SwiftUI interfaces, work with data, communicate with APIs, structure larger applications, experiment with Apple's frameworks, and gradually take on more challenging projects.
By the end of the course, you should have both a strong foundation in Swift and SwiftUI and practical experience building your own applications.
This is a living course. New material continues to be added as Apple evolves Swift, SwiftUI, iOS, iPadOS, and macOS.
Let's build some apps.
Happy Coding!
— Ron