App Development With Swift Curriculum Guide
App Development With Swift Curriculum Guide
May 2017
Everyone Can Code
Technology has a language. It’s called code. And we
believe coding is an essential skill. Learning to code
teaches you how to solve problems and work together
in creative ways. And it helps you build apps that bring
your ideas to life. We think everyone should have the
opportunity to create something that can change the
world. So we’ve designed a new program with the tools
and resources that let anyone learn, write, and teach it.
Number of lesson
Curriculum Device Audience App Prerequisites Overview Learning materials Support resources hours included
Kindergarten None Begin to think like coders with
• codeSpark Academy app • Get Started with Code 1: 20 hours, including
through grade 2 hands-on explorations of coding lessons Teacher Guide Teacher Guide and
concepts using visual-based apps. • Tynker Space Cadet course app lessons
Grades 3
None Explore fundamental coding • Tynker Dragon Spells course • Get Started with Code 2: 20 hours, including
through 5 concepts and practice thinking like Teacher Guide Teacher Guide and
coders using visual-based apps. app lessons
Middle school
None Learn fundamental coding concepts • Swift Playgrounds app • Learn to Code 1 & 2:
45 hours, including
and up using real Swift code. • Learn to Code 1 & 2 lessons Teacher Guide Teacher Guide and Learn
• iTunes U course • Apple Teacher Learning Center to Code 1 & 2 lessons
Swift Playgrounds badges
Middle school
Learn to Code
Expand coding skills and start • Swift Playgrounds app • Learn to Code 3:
20 hours, including
and up 1&2 thinking more like an app developer. • Learn to Code 3 lessons Teacher Guide Teacher Guide and Learn
to Code 3 lessons
High school
None Get practical experience with the Intro to App Development with • Intro to App Development with 90 hours
and college tools, techniques, and concepts Swift book and project files Swift: Teacher Guide
needed to build a basic iOS app
• MobileMakersEdu professional
from scratch. learning workshops
High school
None Build a foundation in Swift, UIKit and App Development with Swift • App Development with Swift: 180 hours
and college networking through hands-on labs book and project files Teacher Guide
and guided projects. Students can • MobileMakersEdu professional
build an app of their own design by learning workshops
the end of the course.
Overview
The Intro to App Development with Swift and App Development with Swift App Development with Swift takes students further, whether they’re new to
curricula were designed to teach high school and college students with little coding or want to expand their skills. If they’re already familiar with Swift,
or no programming experience how to be app developers, capable of Xcode, and iOS development, they can move through lessons quickly or
bringing their own ideas to life. go straight to the labs, where they’ll build miniprojects and test their code in
playgrounds. By the end of the course, they’ll be able to build a fully
The Intro to App Development with Swift course introduces students to the functioning app of their own design.
world of app development and the basics of Swift and Xcode. The course
culminates in a final project where they can choose one of two basic iOS
apps to build.
Key Features
Playgrounds. Students learn programming concepts as they write
Sample projects. Using the included project files, students can try
code in playgrounds—an interactive coding environment that lets
out certain parts of code without having to build an entire app from
them experiment with code and see the results immediately. the beginning.
Step-by-step instructions. Detailed instructions with images
Study tools. Students can check their understanding and apply
and videos guide students through all the steps of building an
what they’ve learned with review questions, key vocabulary, links to
app in Xcode. documentation, and more.
Course Outlines
Intro to App Development with Swift Lesson 8: Constants and Variables. Students expand their understanding
of naming as they’re formally introduced to the concepts of constants and
This introductory one-semester course is designed to help students build a variables.
solid foundation in programming fundamentals using Swift as the language.
Lesson 9: Types. Students become more familiar with the underpinnings
Students get practical experience with the tools, techniques, and concepts
of Swift by examining the type system, from the standard library in Swift to
needed to build a basic iOS app.
custom types.
App journal activities take students through the app design process, from
Lesson 10: Parameters and Results. Students expand their knowledge
thinking about the purpose of an app to market research and early user
of functions by finding out about parameters and return values to make
testing. By the end of the course, students will have created a plan for an app
functions more flexible and powerful.
they’d like to develop. Even though they might not yet have the skills to build
the app, the work they put into the framework will set them up for future Lesson 11: Making Decisions. Students learn how to make decisions in
development. code using conditional if/else statements, true or false Bool values, and
comparison operators.
Lesson 1: Playground Basics. Students gain familiarity with the interactive
playground environment.
Lesson 5: First App. Students create their first app using Xcode, displaying
their work in an iOS simulator.
Lesson 12: Instances, Methods, and Properties. Students build on their Lesson 19: Enumerations and Switch. Students discover that
knowledge of types by exploring the methods and properties that make up enumerations, or enums, are a way to define a named list of options, what
an instance of that type. they’re used for, how to define them, and common ways to work with them.
They’ll also learn to use the switch statement to conditionally run specific
Lesson 13: QuestionBot. Students get experience modifying an existing code based on any option that an enum defines.
Xcode project by writing new logic for an app bot that responds to different
questions. Lesson 20: Final Project. Students complete one or both final project
options from scratch. The first option is a Rock/Paper/Scissors game and
Lesson 14: Arrays and Loops. Students discover how to create and work the second is a Meme generator. Students review a variety of concepts
with arrays by adding and removing objects, and how for-loops work with covered in the course and build the user interface, model data, and controller
each object in an array. objects that make up the entire app.
Lesson 15: Defining Structures. Students recognize that it’s often useful
Lesson 21: What’s Next? Students explore a wide range of app
to group related information and functionality into a custom type. development resources, from the Apple Developer home page to videos
Lesson 16: QuestionBot 2. Students expand on the QuestionBot app by from the Apple Worldwide Developers Conference on the latest frameworks
building ChatBot, an app that displays the history of the conversation. They’ll and tools for building apps for all Apple platforms.
examine the data source pattern, and build a simple data source object to
provide information on Message objects to display in the message list view.
Students practice appending to an array to store messages on the data
source object to maintain a history of the conversation.
Lesson 17: Actions and Outlets. Students find out how to build user
interfaces using Interface Builder, and tie user interface elements into
code via Outlets and Actions. They’ll practice creating Outlets to access
properties of a user interface view, and Actions to respond to user interaction
with buttons and other controls.
App Development with Swift Unit 2: Introduction to UIKit. Students explore Swift strings, functions,
structures, collections, and loops. They also learn about UIKit—the system
This two-semester course features 45 lessons, each designed to teach a views and controls that make up a user interface—and how to display data
specific skill related to either Swift or app development. Each type of lesson using Auto Layout and stack views. They put this knowledge to practice in
takes a different approach: the guided project, Apple Pie, where they build a word-guessing game app.
• Swift lessons. These lessons focus on specific concepts. The labs for Unit 3: Navigation and Workflows. Students discover how to build simple
each are presented in playgrounds so that students can experiment with workflows and navigation hierarchies using navigation controllers, tab bar
code and see the results immediately. Playground files are provided. controllers, and segues. They also examine two powerful tools in Swift,
optionals and enumerations. They put this knowledge into practice with the
• App development lessons. Focusing on building specific features for
guided project, Personality Quiz, a personalized survey that reveals a fun
iOS apps, these lessons typically take students step by step through a response to the user.
miniproject. The labs help students apply what they learned to a new
scenario. Unit 4: Tables and Persistence. Students find out about scroll views, table
views, and building complex input screens. They also explore how to save
At the end of each of the first five units, students complete guided projects data, share data to other apps, and work with images in the user’s photo
that include a description of user-centered features, a project plan, and
library. They use their new skills in the guided project, List, a task-tracking
instructions for building a fully functioning app. Through these projects, app that allows the user to add, edit, and delete items in a familiar table-
students can create features that interest them, all while performing the
based interface. Students can customize the app to keep track of any type
type of work they can expect in an app development workplace. In the
of information, such as a collection, tasks, or playlists.
last unit, they’ll examine how to design, prototype, and architect an app
of their own design. Unit 5: Working with the Web. Students learn about animations,
concurrency, and working with the web. They apply what they’ve learned in
The Teacher Guide includes tips for extending or adapting lessons, the guided project, Restaurant, a customizable menu app that displays the
increasing collaboration, and supporting students who need additional available dishes from a restaurant and allows the user to submit an order.
assistance. It also includes downloadable Keynote presentations for each This app uses a web service that allows students to set up the menu with
lesson, solution code for the labs, and a rubric for evaluating student work. their own menu items and photos.
Unit 1: Getting Started with App Development. Students find out about the Unit 6: Prototyping and Project Planning. Students learn how to design,
basics of data, operators, and control flow in Swift, as well as documentation, prototype, and architect a project of their own design. Given enough time,
debugging, Xcode, building and running an app, and Interface Builder. They they should be able to build this project independently.
then apply this knowledge to the guided project, Light, in which they create a
simple flashlight app.
Additional Information
Additional resources
• Learn more about the Everyone Can Code program.
• Connect with other educators in the Apple Developer Forums.
• • •
Event Concepts Abstraction Problem Algorithms Simulation
Playground Basics
Alignment App Development with Swift – CSTA K-12 Computer Science Standards Level 3A for Grades 9-10
3A-A-2-1 3A-A-2-2 3A-A-7-3 3A-A-5-4 3A-A-5-5 3A-A-5-6 3A-A-4-7 3A-A-4-8 3A-A-4-9 3A-A-3-10 3A-A-3-11 3A-A-6-12
Design Artifact Collaborating Licensing Respond to Research Mathematical Hierarchy & Deconstruct Abstraction Design
Modelling & Debugging
CSTA Standard Event Concepts Abstraction Problem Algorithms Simulation
Features are subject to change. Some features may not be available in all regions or all languages.
© 2017 Apple Inc. All rights reserved. Apple, the Apple logo, iPhone, iTunes U, Keynote, Mac, macOS, and Xcode are trademarks of Apple Inc., registered in the U.S. and other countries. Swift and Swift Playgrounds are trademarks of Apple Inc. App Store
is a service mark of Apple Inc., registered in the U.S. and other countries. Other product and company names mentioned herein may be trademarks of their respective companies. Product specifications are subject to change without notice. This material
is provided
App for information
Development purposes only;
with Swift Curriculum GuideApple assumes
| April 2017 no liability related to its use. May 2017 11