App Development with Swift


App Development with Swift


App Development with Swift is an twelve-week course designed to help you build a solid foundation in programming fundamentals using Swift as the language. You’ll get practical experience with the tools, techniques, and concepts needed to build a basic iOS app from scratch that will run on your iPhone or iPad. You’ll also learn user interface design principles, which are fundamental to programming and making great apps.



Swift is a 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. Thanks to Swift, it’s never been easier to learn to code. All you need is the willingness to take the first step.

Who should attend
Anyone who wants to learn to code and build apps for iPhone or iPad

macOS familiarity and basic computer navigation skills. Prior programming experience is not required for this course.

This is an twelve-week evening course beginning Summer 2018. Sign up to get notified about class schedules and enrollment information.

Course Outline

Playground Basics. Gain familiarity with the interactive playground environment. 

Naming and Identifiers. Explore the fundamentals of solving problems by using good names and identifiers.

Strings. Learn the concept of strings and string interpolation. 

Hello, world! You are welcomed to the tradition of programming, learning how to customize your Xcode environment and to debug. 

First App. Learn to create your first app using Xcode, displaying your work in an iOS simulator. 

Functions. Discover what makes functions so powerful as they combine detailed steps into a definition they can use again and again. 

Constants and Variables. Expand your understanding of naming as you’re formally introduced to the concepts of constants and variables. 

Types. Become more familiar with the underpinnings of Swift by examining the type system, from the standard library in Swift to custom types. 

Parameters and Results. Expand your knowledge of functions by finding out about parameters and return values to make functions more flexible and powerful. 

Making Decisions. Learn how to make decisions in code using conditional if/else statements, true or false Bool values, and comparison operators. 

Instances, Methods, and Properties. Build on your knowledge of types by exploring the methods and properties that make up an instance of that type. 

QuestionBot. Get experience modifying an existing Xcode project by writing new logic for an app bot that responds to different questions.

Arrays and Loops. Discover how to create and work with arrays by adding and removing objects, and how for-loops work with each object in an array. 

Defining Structures. You'll learn to recognize that it’s often useful to group related information and functionality into a custom type. 

QuestionBot 2. Learn to expand on the QuestionBot app by building ChatBot, an app that displays the history of the conversation. You’ll 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. You’ll practice appending to an array to store messages on the data source object to maintain a history of the conversation.

Actions and Outlets. Learn how to build user interfaces using Interface Builder, and tie user interface elements into code via Outlets and Actions. You’ll practice creating Outlets to access properties of a user interface view, and Actions to respond to user interaction with buttons and other controls. 

Adaptive User Interfaces. 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. You’ll explore Auto Layout, the system for laying out constraints that set the location and size of user interface elements. And you’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, you build three new apps. 

Enumerations and Switch. You'll learn to discover that enumerations, or enums, are a way to define a named list of options, what they’re used for, how to define them, and common ways to work with them. You’ll also learn to use the switch statement to conditionally run specific code based on any option that an enum defines. 

Final Project. You'll complete a final project from scratch. You'll review a variety of concepts covered in the course and build the user interface, model data, and controller objects that make up the entire app.