Tutorials Educator Guide
Develop in Swift Tutorials are a great first step toward a career in app
development using Xcode, Swift, and SwiftUI. They re designed for
aspiring coders in high school, higher education, and beyond.
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 by • Background • Modifiers • Views 1 hr
Xcode creating a prototype of a messaging • Color • Padding • Xcode error
app. Learn about syntax for Swift and • Creating a new • String messages
how to use the source editor and project • Swift syntax • Xcode Library
preview. • Dot notation • Text
Views, Learn how to build a custom view to • Arguments and • Foreground style • SF Symbols 1.5 hrs
structures, create a multiday weather forecast. In parameters • Image • Stored properties
and your view, you ll use properties to • Bool • Initializers • String interpolation
properties customize the display for each day. • Computed • Int • Structures
properties • HStack and VStack • Subviews
• Custom subviews • Returning a value • Type annotation
• Font
Layout and Build two onboarding screens for an iOS • Accent color • Font • TabView 1.5 hrs
style app to learn useful tools for putting • Arrays • Frames • Transparency
views where you want them onscreen • Borders • Gradient • Type inference
and inspecting their size. Define new • Brightness • Image • ZStack
colors in the asset catalog and use • Color assets • Pinning a preview
them to create gradient backgrounds. • Customizing a • Shape
preview • Spacer
Buttons Explore adding buttons to your apps. • Animation • Disabling controls • Range operator 1.5 hrs
and state Learn about Swift closures and their • Aspect ratio • Dynamic sizing • Resizable images
relationship to buttons. Use state • Assignment • Equality operator • @State
properties to update the user interface operator • ForEach • Trailing closure
automatically. • Button • Hierarchical SF syntax
• Button styles Symbols • View tint
• Closures • Randomization
• Color
Lists and text Create a dynamic interface that stores a • Arrays • Disabling • Symbol rendering 1.5 hrs
fields set of items in an array and displays • Adding and autocorrection modes
them using lists. Use text fields and removing from • Clip shapes • Ternary conditional
bindings to let people enter text. arrays • ForEach operator
• Bindings • List • TextField
• Buttons with • Not (!) operator • Toggle
custom labels
*Estimated times are for the tutorial only.
’
’
Data modeling
Model real-world concepts and relationships by creating your own custom types. Learn how to
store data with SwiftData and how to test that your apps work properly with Swift Testing.
Chapter Description Topics and skills Estimated time*
Custom Define your first data model by • Creating a type to contain • Grid and GridRow • Running tests 1 hr
types and making your own custom types, your app s logic • Identifiable and UUID • Swift file creation
Swift Testing and prove they work correctly • Creating enum types • .opacity and .disabled
with unit tests. Then use your • Creating struct types
custom types to keep track of • Creating unit tests
scores in a game. • Fixing test failures
Models and Build a list of your friends • Calendar • DatePicker • @Query macro 1.5 hrs
persistence birthdays, using SwiftData to • Classes • @Environment • Safe area
save and retrieve that data • Data models • Frameworks • SwiftData context
across launches. • Date • @Model macro
• Date formatting • NavigationStack
Navigation, Create an app to track friends • @Bindable • ModelConfiguration • Refactoring 3.5 hrs
editing, and and their favorite movies using • ContentUnavailableView ModelContainer • Schema
relationships SwiftData to manage the model • Creating sample data • Model relationships • Search
objects. Use a query to display • Custom view initializers • Navigation hierarchies • Section
the items in a list, and make a • Environment dismiss • NavigationLink • Sheets
detail view to edit them. Then value • NavigationSplitView • Sorting arrays
learn how to create and display • Form • Or ( | | ) operator • Toolbars
relationships between friends • Group • Picker • View tags
and movies, and explore how to • Modal interfaces • Predicate
create advanced queries. • Multiple previews • Property wrappers
Observation Power an alphabet game using • Dictionary • Sharing your types • Task.sleep
2 hrs
and Observation. Share a complex • Documentation comments through the environment • Xcode s Quick
shareable data model with many • @Observable Help and jump bar
data models independent views. • onChange • zip
*Estimated times are for the tutorial only.
’
’
’
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 • Double • Remainder (%) operator • Windows
SwiftUI. • Grid • Slider
Ornaments Create multiple • @Environment isEnabled • TextField word • WindowGroup, .windowStyle, 1 hr
and multiple windows in visionOS • @Environment wrapping and .windowResizability
windows using SwiftUI. Use openWindow • visionOS .ornament
ornaments to provide • .glassBackgroundEffect
access to frequently • @Previewable previews
used controls
without crowding or
obscuring window
contents.
Volumes in View 3D content • Arrays • NavigationSplitView • Toolbars 1.5 hrs
visionOS from any angle in the • DragGesture • Reality Composer Pro • Volumes
Shared Space using • Environment openWindow • Rotation in three • WindowGroup
Reality Composer value dimensions
Pro and SwiftUI. • Model3D
*Estimated times are for the tutorial only.