Intro to App Development with Swift Resource Guide
February 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 lets anyone
learn, write, and teach it.
Swift Playgrounds Preview Guide | June 2016 2
Everyone Can Code Program | Overview | What’s Included | Support Resources | Course Outline | Curriculum Alignment | Additional Information
Everyone Can Code Program
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
Resource Device App Audience Prerequisites Overview Learning materials Support resources hours included
Middle school
None Learn fundamental
• Swift Playgrounds app • Learn to Code
45 hours, including
and up coding concepts using
• Learn to Code 1 & 2 lessons 1 & 2: Teacher Guide Teacher Guide and
real Swift code. Learn to Code 1 & 2
• iTunes U course
lessons
Learn to
Middle school
Learn to Code
Expand coding skills and
• Swift Playgrounds app • Learn to Code 3:
20 hours, including
Code 3 and up 1&2 start thinking more like
• Learn to Code 3 lessons Teacher Guide Teacher Guide and
an app developer. Learn to Code 3
lessons
High school
None Get practical experience with Intro to App Development • Intro to App 90 hours
and college the tools, techniques, and with Swift book and Xcode Development with Swift:
concepts needed to build a project files Teacher Guide
basic iOS app from scratch. • Professional learning
workshops
Intro to App Development with Swift Resource Guide | February 2017 3
Everyone Can Code Program | Overview | What’s Included | Support Resources | Course Outline | Curriculum Alignment | Additional Information
Overview
Intro to App Development with Swift is designed to help students new to coding
build a solid foundation in programming fundamentals using Swift as the
language. Throughout this course, students get practical experience with the
tools, techniques, and concepts needed to build a basic iOS app from scratch.
Students will also learn user interface design principles, which are fundamental to
programming and making great apps.
Swift is the powerful and intuitive programming language created by Apple for
building apps. It makes programming easier, more flexible, and more fun. Swift
is not only great for getting you started with coding, it’s also super powerful.
It’s designed to scale from writing the simplest program, like “Hello, world!” to the
world’s most advanced software.
Xcode is the Mac app used to build every other Mac app and every iOS app, too. It
has all the tools you need to create an amazing app experience. And it’s available
as a free download from the Mac App Store.
In the classroom
Intro to App Development with Swift is designed to use with high school and
college students new to programming. It can be used in a stand-alone class or as
part of any app development or computer science program. The Teacher Guide
will help you bring Intro to App Development with Swift into the classroom. The
lessons were designed to both highlight key coding concepts and to
demonstrate how coding is a way of thinking that can be applied and
understood through everyday life scenarios. Correlation maps are included in the
appendix, which provide alignment of the lessons to the British Columbia Applied
Design, Skills and Technologies grades 9 and 10 standards, the British Columbia
Computer Programming grades 11 and 12 standards, British Columbia Math
grades 11 and 12 standards, as well as to the US Computer Science Teachers
Association’s Interim Computer Science Standards for Level 3A.
Intro to App Development with Swift Resource Guide | February 2017 4
Everyone Can Code Program | Overview | What’s Included | Support Resources | Course Outline | Curriculum Alignment | Additional Information
What’s Included
Playgrounds. Students learn programming Sample Xcode projects. Xcode project files are App journal activities. These activities take
concepts as they write code in playgrounds—
included so that students can experiment with students through the beginning of the app
an interactive coding environment that lets
certain parts of code without having to build
design process, from thinking about the purpose
them experiment with code and see the results an entire app from scratch.
of an app to market research and early user
immediately. Playground files are provided.
testing.
Build apps. The course takes students through the
Step-by-step instructions. Students are guided steps of building a variety of apps, including a chat Review and reflect. Students can answer questions
through all the steps of building an app in Xcode bot that responds to different questions, a colour- that help them check their understanding and
with detailed instructions that include videos.
picker app, a chemical elements quiz, and more.
apply what they’ve learned.
Intro to App Development with Swift Resource Guide | February 2017 5
Everyone Can Code Program | Overview | What’s Included | Support Resources | Course Outline | Curriculum Alignment | Additional Information
Support Resources
Intro to App Development with Swift: Teacher Guide
The Teacher Guide includes extension and application activities, discussion
questions, and activities for an app journal. It’s designed to cover one semester
of instruction for high school and up. Correlation maps are included in the
appendix, which provide alignment of the lessons to the British Columbia
Applied Design, Skills and Technologies grades 9 and 10 standards, the British
Columbia Computer Programming grades 11 and 12 standards, British
Columbia Math grades 11 and 12 standards, as well as to the US Computer
Science Teachers Association’s Interim Computer Science Standards for Level 3A.
Intro to App Development with Swift Resource Guide | February 2017 6
Everyone Can Code Program | Overview | What’s Included | Support Resources | Course Outline | Curriculum Alignment | Additional Information
Course Outline
Intro to App Development with Swift
Lesson 10: Parameters and Results. Students expand their knowledge of
functions by learning about parameters and return values to make functions
Lesson 1: Playground Basics. Students gain familiarity with the interactive more flexible and powerful.
playground environment.
Lesson 11: Making Decisions. Students learn how to make decisions in code
Lesson 2: Naming and Identifiers. Students explore the fundamentals of using conditional if/else statements, true or false Bool values, and comparison
solving problems by using good names and identifiers.
operators.
Lesson 3: Strings. Students are introduced to the concept of strings and
Lesson 12: Instances, Methods, and Properties. Students build on their
string interpolation.
knowledge of types by learning about the methods and properties that
make up an instance of that type.
Lesson 4: Hello, world! Students are welcomed to the tradition of
programming, learning to customize their Xcode environment and how
to debug.
Lesson 5: First App. Students create their first app using Xcode, displaying
their work in an iOS simulator.
Lesson 6: Functions. Students learn 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.
Lesson 8: Constants and Variables. Students expand their understanding
of naming as they’re formally introduced to the concepts of constants and
variables.
Lesson 9: Types. Students become more familiar with the underpinnings of
Swift by learning about the type system, from the standard library in Swift to
custom types.
Intro to App Development with Swift Resource Guide | February 2017 7
Everyone Can Code Program | Overview | What’s Included | Support Resources | Course Outline | Curriculum Alignment | Additional Information
Course Outline (continued)
Lesson 13: QuestionBot. Students will get experience modifying an existing Lesson 19: Enumerations and Switch. Enumerations, or enums, are a way to
Xcode project by writing new logic for an app bot that responds to different define a named list of options. Students will learn what enums are used for,
questions.
how to define them, and common ways to work with them. They'll also learn
to use the switch statement to conditionally run specific code based on any
Lesson 14: Arrays and Loops. Students learn how to create and work with
option that an enum defines.
arrays by adding and removing objects, and they learn how for-loops work
with each object in an array.
Lesson 20: Final Project. Students will complete one or both final project
options from scratch. The first option is a Rock/Paper/Scissors game. The
Lesson 15: Defining Structures. Students will recognize that it’s often useful to
second option is a Meme generator. Students will review a variety of concepts
group related information and functionality into a custom type.
covered in the course, build the user interface, the model data, and the
Lesson 16: QuestionBot 2. Students expand on the QuestionBot app by controller objects that make up the entire app.
building ChatBot, an app that displays the history of the conversation. They’ll
Lesson 21: What’s Next? Students explore a wide range of app development
learn about the data source pattern, and build a simple data source object to
resources, from the Apple Developer home page to videos from the Apple
provide information on Message objects to display in the message list view.
Worldwide Developers Conference on the latest frameworks and tools for
Students practice appending to an array to store messages on the data source
building apps for all Apple platforms.
object to maintain a history of the conversation.
Lesson 17: Actions and Outlets. Students will learn how to build user
interfaces using Interface Builder, and tie user interface elements into code via Requirements
Outlets and Actions. They’ll practice creating Outlets to access properties of a
Students will need the following to complete the lessons in the guide:
user interface view, and Actions to respond to user interaction with buttons
and other controls. • A Mac running macOS Sierra or El Capitan
• Xcode 8
Lesson 18: Adaptive User Interfaces. Students will learn a repeatable
process to create a user interface on the smallest iPhone device size that
• Project files for the course, which are available via a download link
scales up to all iPhone device sizes and orientations. They’ll learn about auto in the book
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.
Intro to App Development with Swift Resource Guide | February 2017 8
Curriculum Alignment
Here is the alignment of the lessons of Intro to App Dev with Swift to the British Columbia Computer Programming grades 11 and 12 standards.
Intro to App Development with Swift Resource Guide | February 2017 9
Curriculum Alignment
Here is the alignment of the lessons of Intro to App Dev with Swift to the British Columbia Computer Programming grades 11 and 12 standards.
Intro to App Development with Swift Resource Guide | February 2017 10
Everyone Can Code Program | Overview | What’s Included | Support Resources | Course Outline | Curriculum Alignment | Additional Information
Curriculum Alignment
Here is the preliminary alignment of Intro to App Development with Swift with the Computer Science Teachers Association (CSTA) Interim 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 Computer Science Interim 2016 CSTA K–12 Standards.
CSTA K–12 Computer Science Standards Level 3A for Grades 9–10
3A-A-2-1 3A-A-2-2 3A-A-5-4 3A-A-7-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 Event Research Mathematical Hierarchy & Deconstruct Abstraction Design
Modelling & Debugging
CSTA Standard 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
•• •• •• •• •• •• •• •• •• •• •• ••
Key:
• Aligns to standard
Intro to App Development with Swift Resource Guide | February 2017 11
Everyone Can Code Program | Overview | What’s Included | Support Resources | Course Outline | Curriculum Alignment | Additional Information
Additional Information
Download the Swift Playgrounds resources
• Learn to Code 1 & 2: Teacher Guide
• Learn to Code 3: Teacher Guide
• Swift Playgrounds app
Download the Intro App Development with Swift guides
• Intro to App Development with Swift: Student Guide
• Intro to App Development with Swift: Teacher Guide
Additional resources
• Learn more about the Everyone Can Code program.
• Learn more about Swift.
• Learn more about Xcode.
• Connect with other educators in the Apple Developer Forums.
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, Mac,, and Xcode are trademarks of Apple Inc., registered in the U.S. and other countries. iPad mini and Swift are trademarks of Apple Inc. App Store and Genius Bar are service marks 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 for information purposes only; Apple assumes no liability related
Intro
to its to
use.
App
February
Development
2017 with Swift Resource Guide | February 2017 12