Tutorials Educator Guide
Develop in Swift Tutorials introduce app development with Swift and
Xcode for anyone learning how to develop for Apple platforms.
In each chapter, learners will complete:
A tutorial A wrap-up
• Coding a project, ranging from an app • Review of concepts
prototype to a fully functioning app • Ideas for extending an app
• Building on prior knowledge, getting • Suggestions for how to apply skills
progressively more challenging in a different context, often by
creating a new project
Choose your approach: You can present the content linearly, or you can incorporate other text,
documentation, tutorials, videos, and projects to fit your needs. One option is to have learners
complete the tutorial independently, then choose items from the “Continue practicing” section to
complete together, allowing learners to work collaboratively and ask questions.
SwiftUI foundations
Get familiar with the tools and technologies you ll use to create apps.
Chapter Description Topics and skills Estimated time
Explore Get to know Xcode and SwiftUI • Background • Modifiers • Views 1 hr
Xcode by creating a prototype of a • Color • Padding • Xcode error
messaging app. Learn about • Creating a new • String messages
syntax for Swift and how to use project • Swift syntax • Xcode Library
the source editor and preview. • Dot notation • Text
Views, Learn how to build a custom view • Arguments and • Foreground style • SF Symbols 1.5 hrs
structures, to create a multiday weather parameters • Image • Stored properties
and forecast. In your view, you ll use • Bool • Initializers • String interpolation
properties properties to customize the • Computed properties • Int • Structures
display for each day. • Custom subviews • HStack and VStack • Subviews
• Font • Returning a value • Type annotation
Layout Build two onboarding screens for • Accent color • Font • TabView 1.5 hrs
and style an iOS app to learn useful tools • Arrays • Frames • Transparency
for putting views where you want • Borders • Gradient • Type inference
them onscreen and inspecting • Brightness • Image • ZStack
their size. Define new colors in • Color assets • Pinning a preview
the asset catalog and use them • Customizing a • Shape
to create gradient backgrounds. preview • Spacer
Buttons Explore adding buttons to your • Animation • Disabling controls • Range operator 1.5 hrs
and state apps. Learn about Swift closures • Aspect ratio • Dynamic sizing • Resizable images
and their relationship to buttons. • Assignment operator • Equality operator • @State
Use state properties to update • Button • ForEach • Trailing closure
the user interface automatically. • Button styles • Hierarchical SF syntax
• Closures Symbols • View tint
• Color • Randomization
Lists and Create a dynamic interface that • Arrays • Disabling • Symbol rendering 1.5 hrs
text fields stores a set of items in an array • Adding and removing autocorrection modes
and displays them using lists. from arrays • Clip shapes • Ternary conditional
Use text fields and bindings to • Bindings • ForEach operator
let people enter text. • Buttons with • List • TextField
custom labels • Not (!) operator • Toggle
’
’
Data modeling
Model real-world concepts and relationships by creating and testing your own custom types.
Chapter Description Topics and skills Estimated time
Custom types Define your first data • Creating a type to contain • Grid and GridRow • Running tests 1 hr
and Swift model by making your own your app s logic • Identifiable and UUID • Swift file creation
Testing custom types, and prove • Creating enum types • .opacity and
they work correctly with • Creating struct types .disabled
unit tests. Then use your • Creating unit tests
custom types to keep • Fixing test failures
track of scores in a game.
Models and Build a list of your friends • Calendar • DatePicker • @Query macro 1.5 hrs
persistence birthdays, using SwiftData • Classes • @Environment • Safe area
to save and retrieve that • Data models • Frameworks • SwiftData context
data across launches. • Date • @Model macro
• Date formatting • NavigationStack
Navigation, Create an app to track • @Bindable • ModelConfiguration • Refactoring 3.5 hrs
editing, and friends and their favorite • ContentUnavailableView ModelContainer • Schema
relationships movies using SwiftData to • Creating sample data • Model relationships • Search
manage the model • Custom view initializers • Navigation hierarchies • Section
objects. Use a query to • Environment dismiss value • NavigationLink • Sheets
display the items in a list, • Form • NavigationSplitView • Sorting arrays
and make a detail view to • Group • Or ( | | ) operator • Toolbars
edit them. Then learn how • Modal interfaces • Picker • View tags
to create and display • Multiple previews • Predicate
relationships between • Property wrappers
friends and movies, and
explore how to create
advanced queries.
Observation Power an alphabet game • Dictionary • Sharing your types • Task.sleep 2 hrs
and shareable using Observation. Share • Documentation comments through the environment • Xcode s Quick Help
data models a complex data model with • @Observable and jump bar
many independent views. • onChange • zip
’
’
’
Machine learning
Use machine learning technologies to enhance your apps.
Chapter Description Topics and skills Estimated time
Natural Build a sentiment • @FocusState • Insert versus append • ScrollView 1 hr
language analysis app and use wrapper • Natural Language framework • Sentiment analysis
the Natural Language • Chart • NLTagger • Textfield.axis
framework to analyze • chartProxy • Plottable protocol
responses to an open- • Charts framework
ended survey prompt. • GeometryReader
Recognize Create an app that • Alert for app • RecognizedTextObservation • .translationPresentation 1 hr
text in uses the Vision processing time and RecognizeTextRequest • ViewModifier protocol
images Framework and the • ImageResource • Shape • Vision framework
Translation API to • Overlays • Translation framework
translate text on signs.
Model Use Xcode s Create • Create ML tool in • Model accuracy • Training, validation, 1 hr
training with ML tool to train a Xcode • Previewing output and testing data
Create ML model to estimate the • CSV files • Xcode developer tools
anticipated difficulty • Machine learning
of a hike using algorithms
provided data.
Custom Integrate a custom • Adding a Core ML • Core ML framework • Segmented pickers 1 hr
models with machine learning model to an app • Generic views • View builders
Core ML model into an app that • CaseIterable
predicts the difficulty protocol
of an upcoming hike.
’
Spatial computing
Design app experiences for spatial computing.
Chapter Description Topics and skills Estimated time
Windows in Create your first • Circle • GridRow • visionOS simulator 1 hr
visionOS visionOS app with a • ColorPicker • Padding for 3D views • Window resizability
window using SwiftUI. • Double • Remainder (%) operator • Windows
• Grid • Slider
Ornaments Create multiple • @Environment isEnabled • TextField word • WindowGroup, 1 hr
and multiple windows in visionOS • @Environment wrapping .windowStyle, and
windows using SwiftUI. Use openWindow • visionOS .ornament .windowResizability
ornaments to provide • .glassBackgroundEffect
access to frequently • @Previewable previews
used controls without
crowding or obscuring
window contents.
Volumes in View 3D content from • Arrays • NavigationSplitView • Toolbars 1.5 hrs
visionOS any angle in the • DragGesture • Reality Composer Pro • Volumes
Shared Space using • Environment openWindow • Rotation in three • WindowGroup
Reality Composer Pro value dimensions
and SwiftUI. • Model3D