Meeting plans
Meeting plans provide suggestions for club activities to help you learn SwiftUI foundations, the basics of data modeling, machine learning, and spatial computing.
Meeting plans provide suggestions for club activities to help you learn SwiftUI foundations, the basics of data modeling, machine learning, 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?
4 tutorials completed independently
8 meetings with group activities
Learn the basics of machine learning through building apps with SwiftUI. Follow step-by-step tutorials to create 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 machine learning.
Explore machine learning with the Natural Language framework and sentiment analysis. Create an app that collects opinions on hiking, analyzes the responses, and displays the results visually.
Preparation: Complete the Analyze sentiment in text tutorial before the meeting.
Group activity: Work in small groups to extend the functionality of Scorer
, using the Natural Language framework to also return the language the response was written in. Update Response
to store this new information, and use ResponseView
to display it.
At the end of the meeting, take a few minutes for each group to share how they chose to place this information and make it easily readable.
Preparation: Read the "Reflect on the concepts" section of the Wrap-up: Natural language article.
Group activity: Work in small groups to update your Sentiment enum to have five cases instead of three. Decide how to label them, how to divide the sentiment score range among them, and how to display them in the UI. (You can use SF Symbols for the icons.)
Next, add responses to the sample set in the app and see whether they are scored the way you expected. See if you can create a new response for each enum case.
At the end of the meeting, take a few minutes as a group to discuss apps you use that might incorporate sentiment analysis. Are there other apps you use that might be better if they added sentiment analysis in some way?
Create an app that uses the machine learning Vision and Translation frameworks to identify text in an image and translate it into another language.
Preparation: Complete the Extract text from images tutorial before the meeting.
Group activity: Working in small groups, start by making copies of the sign images that are cropped to include only the portions of the signs that have text. Add the cropped images to the app, then change the app so that people can select their preferred recognition level to prioritize either speed or accuracy. Experiment with how the cropped images and the original images are recognized when speed is prioritized.
Next, change the color of the bounding rectangles based on the certainty value of the recognized text. Again, compare the results between the original and cropped images.
At the end of the meeting, take a few minutes to discuss what you have learned about input images.
Preparation: Read the "Reflect on the concepts" section of the Wrap-up: Recognize text in images article.
Group activity: Work in small groups to provide a way to select among multiple candidates when the Vision framework offers more than one option. Consider adding a new control to select an option or using the keyboard to fix incorrect results.
At the end of the meeting, take a few minutes for each group to show its solution. Then, discuss as a group how you can imagine using the Vision framework to create an app that would be useful to you.
Train a machine learning model with the Create ML tool in Xcode. Use provided data to train a model to predict how challenging a trail will be based on characteristics like distance and elevation.
Preparation: Complete the Train a Core ML model tutorial before the meeting.
Group activity: Work together or in small groups to adjust the Linear Regression algorithm parameters. Can you improve the model results? Can you reduce the time spent training and get a model of equal quality?
At the end of the meeting, take a few minutes to share the changes you made and how much accuracy or speed you were able to improve.
Preparation: Read the "Reflect on the concepts" section of the Wrap-up: Model training with Create ML article. Determine the mathematical formula that calculates risk values using the data. You'll know you have it right if your formula predicts approximately the same risk values as the app does. Hint: Previewing TrailData1k.csv may help you isolate individual fields.
Group activity: Work in small groups to use the trail data to train a model that predicts a value other than risk — either elevation, distance, or the presence of dangerous wildlife.
Then, discuss as a group what other kinds of apps you can imagine using Create ML models to build.
Import a machine learning model into an app that takes details about hikes and displays their likely challenge level.
Preparation: Complete the Import models with Core ML tutorial before the meeting.
Group activity: Work together or in small groups to change the risk setup in the app. In the tutorial, the risk categories assume that the person using the app is a hiking enthusiast. Adjust the risks for an amateur hiker, then create a UI to display the exact risk. Explore alternatives to simply displaying the numeric risk value as text. Can you find a way to show the risk relative to other trails?
At the end of the meeting, take a few minutes to discuss other parameters you could use as input. How might they improve the accuracy of the results or support other people using the app?
Preparation: Read the "Reflect on the concepts" section of the Wrap-up: Custom models with Core ML article.
Group activity: Work in small groups to replace the Submit button with a live update of the predicted risk. Hint: Use .onChange
when the input state changes.
Take a few minutes per person to share what you'd like to build next. 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?