Meeting plans
Meeting plans provide suggestions for your club activities to help you learn SwiftUI foundations, basics of data modeling, and spatial computing.
Meeting plans provide suggestions for your club activities to help you learn SwiftUI foundations, basics of data modeling, and spatial computing.
If you’ve never used Xcode, Swift, or SwiftUI before, get started with SwiftUI foundations.
5 tutorials completed independently
10 meetings with group activities
Learn the basics of app development through building apps with SwiftUI. Follow step-by-step tutorials to create prototypes, app screens, and fully functioning apps. Then apply what you learn to create something unique to you, with the help and support of your club.
Note: You don’t need an iPhone to preview your apps. Xcode includes tools that show you how your app will look and work, right on your Mac.
Get started by reading Welcome to Develop in Swift Tutorials.
Get to know Xcode and SwiftUI by creating a prototype of a messaging app. Learn about syntax for Swift and how to use the source editor and preview.
Preparation: Complete the Hello, SwiftUI tutorial before the first meeting.
Group activity: Work together or in small groups to complete two suggestions from the “Extend your app” section of the Wrap-up: Explore Xcode article.
Preparation: Read the “Reflect on the concepts” section of the Wrap-up: Explore Xcode article.
Group activity: Start a new Xcode project called MyselfInSixWords. Use Text
views to display six words that describe you. Give each word some padding and a different background color. Try displaying the words horizontally by replacing the
with VStack
HStack
. Then, for an extra challenge, mix HStack
and VStack
views to create different layouts for your app. Can you embed an HStack
of views inside a VStack
or the other way around? What happens if you do?
At the end of the meeting, take a few minutes per person to showcase your MyselfInSixWords project.
Learn how to build a custom view to create a multiday weather forecast. In your view, you’ll use properties to customize the display for each day.
Preparation: Complete the Customize views with properties tutorial.
Group activity: Work together or in small groups to complete one or two suggestions from the “Extend your app” section of the Wrap-up: Views, structures, and properties article.
Preparation: Read the “Reflect on the concepts” section of the Wrap-up: Views, structures, and properties article.
Group activity: Practice using computed properties. Add a computed property to return different colors if the high temperature is above 80 (high > 80
). Use the .foregroundStyle
modifier to change the text color depending on the value of the property.
Take a few minutes per person to present what you accomplished. Note what you were able to add to your project and what you still need help with or time to complete.
Build two onboarding screens for an iOS app to learn useful tools for putting views where you want them onscreen and inspecting their size. Define colors in the asset catalog and use them to create gradient backgrounds.
Preparation: Complete the Design an interface tutorial.
Group activity: Add a third page to the onboarding flow. Include whatever elements you want in the new page. If there is time, edit the design and colors of the app.
Preparation: Read the “Reflect on the concepts” section of the Wrap-up: Layout and style article.
Group activity: Practice swiping between multiple views. Start a new Xcode project and create a short story using .tabViewStyle(.page)
so you can swipe between the pages of your book. Make the first page look like a book cover, including a large title, author name, one or more SF Symbols, and some splashes of color. For the pages in the story, think of creative ways to display chapter titles, text, and pictures.
Take a few minutes per person to present what you were able to accomplish in your book project. Discuss your plan for what you are going to keep working on.
Explore adding buttons to your apps. Learn about Swift closures and their relationship to buttons. Use state properties to update the user interface automatically.
Preparation: Complete the Update the UI with state tutorial.
Group activity: Instead of having an image of a dice and a Roll button beneath it, modify DiceView
so people can tap on the dice itself to randomize it.
Preparation: Read the “Reflect on the concepts” section of the Wrap-up: Buttons and state article.
Group activity: Create a simple button app. Start a new Xcode project and create a one- or two-button app of your choice. You can use the Design a Simple App project to help you come up with an idea.
Take a few minutes per person to present your button app design and project. Share with your club what you thought was easier and harder than you expected.
Create a dynamic interface that stores a set of items in an array and displays them using lists. Use text fields and bindings to let people enter text.
Preparation: Complete the Create dynamic content tutorial.
Group activity: Choose one of the suggestions from the “Extend your app” section of the Wrap-up: Lists and text fields article.
Preparation: Read the “Reflect on the concepts” section of the Wrap-up: Lists and text fields article.
Group activity: Format an address label. Start a new Xcode project named AddressLabel. Use @State
properties and text fields to collect the different elements of an address, like city and country. Then display a complete formatted address at the top of the screen. Customize the fonts, sizing, and colors of the intake form and address.
Take a few minutes per person to share what you plan to do after this club ends. How are you going to continue learning app development? What app do you want to make?
7 tutorials completed independently
9 meetings with group activities
Learn the basics of data modeling through building apps with SwiftUI. Follow step-by-step tutorials to create prototypes and fully functioning apps. Then apply what you learn to create something unique to you, with the help and support of your club.
Note: You don’t need an iPhone or iPad to preview your apps. Xcode includes tools that show you how your app will look and work, right on your Mac.
Get started by reading Welcome to data modeling.
Define your first data model by making your own custom types, and prove they work correctly with unit tests. Then use your custom types to keep track of scores in a game.
Preparation: Complete the Model data with custom types tutorial and read the “Reflect on the concepts” section of the Wrap-up: Model data with custom types article before the first meeting.
Group activity: Work together or in small groups to complete one suggestion from the “Extend your app” section of the Wrap-up: Model data with custom types article.
Preparation: Complete the Add functionality with Swift Testing tutorial and read the “Reflect on the concepts” section of the Wrap-up: Custom types and Swift Testing article.
Group activity: Add a winning point total. Update your app so that the game ends automatically when a player reaches a specified point total. People should be able to configure this point total in the settings view. Add tests that increase players’ totals and validate that the game state transitions when the point total is reached.
At the end of the meeting, take a few minutes per person to showcase how you improved the project with an automated ending when a player reaches a specified number of points.
Build a list of your friends’ birthdays, using SwiftData to save and retrieve that data across launches.
Preparation: Complete the Save data tutorial.
Group activity: At the meeting, have each person choose one suggestion from the “Extend your app” section of the Wrap-up: Models and persistence article.
Preparation: Read the “Reflect on the concepts” section of the Wrap-up: Models and persistence article.
Group activity: Enhance Pick-a-Pal. Revisit Pick-a-Pal and replace names: [String]
with Pal
models powered by SwiftData.
Take a few minutes to discuss as a group what you gain from adding SwiftData to the Pick-a-Pal app.
Create an app to track friends and their favorite movies using SwiftData to manage the model objects. Use a query to display the items in a list, and make a detail view to edit them. Then learn how to create and display relationships between friends and movies, and explore how to create advanced queries.
Preparation: Complete the Navigate sample data tutorial and read the “Reflect on the concepts” section of the Wrap-up: Navigate sample data article.
Group activity: Revisit Birthdays and implement a SampleData
class so that you don’t have to rely on a .task
to insert sample data.
Preparation: Complete the Create, update, and delete data tutorial and read the “Reflect on the concepts” section of the Wrap-up: Create, update and delete data article.
Group activity: Create an iOS App project and select SwiftData for storage in the Project Options dialog. Examine the sample code. You should notice that it’s very similar to the interface you built over the past two tutorials. Now that you know how it works, you can use this starting point to create your next great app.
Preparation: Complete the Work with relationships tutorial and read the “Reflect on the concepts” section of the Wrap-up: Navigation, editing, and relationships article.
Group activity: Work together or in small groups to complete one or two suggestions from the “Extend your app” section of the Wrap-up: Navigation, editing, and relationships article.
Power an alphabet game using Observation. Share a complex data model with many independent views.
Preparation: Complete the Complete a game with logic tutorial.
Group activity: Work together or in small groups to complete one or both suggestions from the “Extend your app” section of the Wrap-up: Observation and shareable data models article.
Group activity: Difficulty modes. Add difficulty modes for a more challenging game. What if submitting an incorrect order results in losing points instead of getting to try again? Go even further by hiding the words so the player alphabetizes based on icons alone.
Take a few minutes per person to share what you plan to do after this club ends. How are you going to continue learning app development? What app do you want to make?
3 tutorials completed independently
6 meetings with group activities
Learn the basics of spatial computing through building apps with SwiftUI. Follow step-by-step tutorials to create prototypes and fully functioning apps. Then apply what you learn to create something unique to you, with the help and support of your club.
Note: You don’t need an Apple Vision Pro device. Xcode includes tools that show you how your app will look and work, right on your Mac.
Get started by reading Welcome to spatial computing.
Create your first visionOS app with a window using SwiftUI.
Preparation: Complete the Add depth to your app tutorial before the first meeting.
Group activity: Work together or in small groups to complete two suggestions from the “Extend your app” section of the Wrap-up: Windows in visionOS article.
Preparation: Read the “Reflect on the concepts” section of the Wrap-up: Windows in visionOS article.
Group activity: Create a grid of words. Start a new Xcode project called CloserWordGrid. Use Grid
and GridRow
to create a grid of words that describe you. Give each word some back padding. For an extra challenge, randomly choose one word to have extra back padding, and see if you can guess which word is closest to the front each time.
At the end of the meeting, take a few minutes per person to showcase your CloserWordGrid project. Share what inspired you about this new platform and how you can leverage new opportunities in your next app.
Create multiple windows in visionOS using SwiftUI. Use ornaments to provide access to frequently used controls without crowding or obscuring window contents.
Preparation: Complete the Present common controls in an ornament tutorial.
Group activity: Work together or in small groups to complete one or both suggestions from the “Extend your app” section of the Wrap-up: Ornaments and multiple windows article.
Preparation: Read the “Reflect on the concepts” section of the Wrap-up: Ornaments and multiple windows article.
Group activity: Add a feature to quickly access labels. Labels you create can be closed or obscured behind other labels. Create a SwiftUI List
where you can select a label to bring it into focus. When a label is selected from the list, use openWindow
to bring the label to the foreground, reopening it if necessary.
Take a few minutes per person to present what you did. Note what you were able to accomplish and what you still need help with or time to complete.
View 3D content from any angle in the Shared Space using Reality Composer Pro and SwiftUI.
Preparation: Complete the Create 3D models in the Shared Space tutorial.
Group activity: Work together or in small groups to complete one or both suggestions from the “Extend your app” section of the Wrap-up: Volumes in visionOS article.
Preparation: Read the “Reflect on the concepts” section of the Wrap-up: Volumes in visionOS article.
Group activity: Explore Hello World. Download the Hello World app and explore the code. Start in the WorldApp file and see how much of it looks familiar. Count how many WindowGroup
scenes are used. Notice where the volumetric window style is used. Read the code comments to learn as much as you can. When you’re ready, try making small changes to the project.
Take a few minutes per person to share what you plan to do after this club ends. How are you going to continue learning app development? What app do you want to make?