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.
Swift Playgrounds Preview Guide | June 2016 2
Everyone Can Code Curriculum | Overview | Key Features | Course Outlines | Additional Information | Curriculum Alignment
Everyone Can Code Curriculum
The Everyone Can Code program includes a range of resources that take students all the way from no coding experience to building their first apps. The table
below provides an overview of all the free teaching and learning resources available.
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.
App Development with Swift Curriculum Guide | May 2017 3
Everyone Can Code Curriculum | Overview | Key Features | Course Outlines | Additional Information | Curriculum Alignment
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.
App Development with Swift Curriculum Guide | May 2017 4
Everyone Can Code Curriculum | Overview | Key Features | Course Outlines | Additional Information | Curriculum Alignment
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.
App Development with Swift Curriculum Guide | May 2017 5
Everyone Can Code Curriculum | Overview | Key Features | Course Outlines | Additional Information | Curriculum Alignment
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 2: Naming and Identifiers. Students explore the fundamentals of
solving problems by using good names and identifiers.
Lesson 3: Strings. Students are introduced to the concept of strings and
string interpolation.
Lesson 4: Hello, world! Students are welcomed to the tradition of
programming, learning how to customize their Xcode environment and
to debug.
Lesson 5: First App. Students create their first app using Xcode, displaying
their work in an iOS simulator.
Lesson 6: Functions. Students discover what makes functions so
powerful as they combine detailed steps into a definition they can use
again and again.
Lesson 7: BoogieBot. Students put their knowledge of functions to work
by controlling an animated dancing robot within the playground. The Teacher Guide includes additional extension activities, discussion questions,
and activities for the app journal that students maintain throughout the semester.
App Development with Swift Curriculum Guide | May 2017 6
Everyone Can Code Curriculum | Overview | Key Features | Course Outlines | Additional Information | Curriculum Alignment
Course Outlines (continued)
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.
Lesson 18: Adaptive User Interfaces. Students learn a repeatable process
to create a user interface on the smallest iPhone device size that scales up
to all iPhone device sizes and orientations. They’ll explore Auto Layout, the
system for laying out constraints that set the location and size of user
interface elements. And they’ll use stack views, a special object designed
to automatically set auto layout constraints based on simpler settings and a
gridlike system. In the process, they build the SimpleCenter, ElementQuiz,
and AnimalSounds apps.
App Development with Swift Curriculum Guide | May 2017 7
Everyone Can Code Curriculum | Overview | Key Features | Course Outlines | Additional Information | Curriculum Alignment
Course Outlines (continued)
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.
App Development with Swift Curriculum Guide | May 2017 8
Everyone Can Code Curriculum | Overview | Key Features | Course Outlines | Additional Information | Curriculum Alignment
Additional Information
Download the Get Started with Code resources About Swift
• Tynker Swift is the powerful and intuitive programming language created by Apple
for building apps. It makes programming easier, more flexible, and more fun.
• codeSpark Academy
Swift is not only great for getting you started with coding, it’s also super
• Get Started with Code 1 powerful. It’s designed to scale from writing the simplest program, like
• Get Started with Code 2 “Hello, world!”, to the world’s most advanced software.
Learn more about Swift.
Download the Swift Playgrounds resources
• Learn to Code 1 & 2: iTunes U Course About Xcode
Xcode is the Mac app used to build every other Mac app and every iOS app,
• Learn to Code 1 & 2: Teacher Guide
too. It has all the tools you need to create an amazing app experience. And
• Learn to Code 3: Teacher Guide it’s available as a free download from the Mac App Store.
• Swift Playgrounds app Learn more about Xcode.
Download the App Development with Swift guides Professional learning
• Intro to App Development with Swift MobileMakersEdu is an Apple Professional Learning Provider that offers
• Intro to App Development with Swift: Teacher Guide training and support services so teachers can bring app development
with Swift curricula into their classrooms. For more information, visit
• App Development with Swift their website.
• App Development with Swift: Teacher Guide
Additional resources
• Learn more about the Everyone Can Code program.
• Connect with other educators in the Apple Developer Forums.
App Development with Swift Curriculum Guide | May 2017 9
Everyone Can Code Curriculum | Overview | Key Features | Course Outlines | Additional Information | Curriculum Alignment
Curriculum Alignment: Intro to App Development with Swift
Here’s the preliminary alignment of Intro to App Development with Swift with the Interim 2016 Computer Science Teachers Association (CSTA) K–12 Computer
Science Standards for Level 3A. Once the new standards are finalized, the guide will undergo CSTA’s formal crosswalk review. The alignment covers the
algorithms and programming concepts within the Interim 2016 CSTA K–12 Computer Science Standards.
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
Playground Basics
Naming and Identifiers
• • • • • • •
Strings
• • • • • • • •
Hello, world!
• • • • •
First App
• • • •
Functions
• • • • • •
BoogieBot
• • • • • • •
Constants and Variables
• • • • • • •
Types
• • • • • • • •
Parameters and Results
• • • • • • •
Making Decisions
• • • • • • • •
Instances, Methods, and
Properties • • • • • • •
QuestionBot
• • • • • • • • •
Arrays and Loops
• • • • • • •
Defining Structures
• • • • • • •
QuestionBot 2
• • • • • • • •
Actions and Outlets
• • • • • • •
Adaptive User Interfaces
• • • • • • •
Enumerations and
• • • • • • • •
Switch
Final Project
• • • • • • • • •
App Development with Swift Curriculum Guide | May 2017 10
Everyone Can Code Curriculum | Overview | Key Features | Course Outlines | Additional Information | Curriculum Alignment
Curriculum Alignment: App Development with Swift
Here’s the preliminary alignment of App Development with Swift with the Interim 2016 Computer Science Teachers Association (CSTA) K–12 Computer Science
Standards for Level 3A. Once the new standards are finalized, the guide will undergo CSTA’s formal crosswalk review. The alignment covers the algorithms and
programming concepts within the Interim 2016 CSTA K–12 Computer Science Standards.
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
Unit 1: Getting Started
with App Development • • • • • • • • • •
Unit 2: Introduction
to UIKit • • • • • • • •
Unit 3: Navigation
and Workflows • • • • • • • • •
Unit 4: Tables and
Persistence • • • • • • • •
Unit 5: Working
with the Web • • • • • • • • •
Unit 6: Prototyping
and Project Planning • • • • • • • • •
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