Full program description
About Develop in Swift Fundamentals
Have you ever had an idea for an app and wondered how to make it happen? If so, this course was designed for you. You'll start by focusing on iOS development tools, basic programming concepts, and industry best practices. Building on this foundation, you'll work through practical exercises, creating apps from scratch, and building the mindset of an app developer.
You'll build three projects—a simple flashlight app that changes the background color of the screen, a fill-in-the-blanks word guessing game, and a personality quiz. After you finish the course projects, you'll have a chance to build your own personal project, working through design, prototyping, and development phases.
You can work through Develop in Swift Fundamentals on your own, or you may be in a class with a teacher. If you're on your own, we recommend completing every lesson, lab, and guided project, to make sure you're building all the skills. If you have a teacher guiding you, keep in mind that they may use different parts of the course in different ways.
This course was designed for students with no prior programming experience. Prior experience with languages other than Swift will definitely give you a boost when learning the basics. And if you already know something about Swift, Xcode, and iOS development, you might want to jump straight into the labs and guided projects to practice your skills.
Course Structure and Content
At the core of Develop in Swift Fundamentals are three progressively challenging guided projects, each preceded by multiple lessons that cover the concepts and skills required to build the app. The course culminates in an exploration of how to develop and iterate on your own designs, as well as to create a prototype that can serve as a compelling demo and launch your project toward a successful 1.0 release.
About the Lessons
This course features 27 lessons that help you learn a specific skill related to Swift or app development. Each lesson starts with a brief introduction to the concept, a set of learning objectives, new vocabulary terms, and references to documentation used to build the lesson. The body of the lesson includes concept explanations, sample code, and screencasts. At the end of each lesson, a lab and review questions allow you to apply the concepts you've just learned and check your understanding.
Since Develop in Swift Fundamentals covers two very different types of content—Swift and app development—you'll see two different approaches to the lessons.
Swift lessons focus on specific concepts, and the labs for these are presented in playgrounds - an interactive coding environment that lets you experiment with code and see the results immediately.
App development lessons cover the Software Development Kit, or SDK. These lessons focus on building specific features for iOS apps, usually guiding you through a mini-project. The labs for these guide you to apply what you learned in a new scenario.
About the Projects
Each guided project includes a description of user-centered features, a project plan, and step-by-step instructions that lead to a fully functioning app. Through these guided projects - as well as through labs sprinkled throughout the course - you will be able to customize features according to your interests. At the same time, you'll be performing the kind of work you can expect in an app development workplace.
The first project is Light, a simple flashlight app. You'll learn the basics of data, operators, and control flow in the Swift programming language. You'll also learn about Xcode, Interface Builder, building and running an app, debugging, and documentation.
The second project is Apple Pie, a word-guessing game. You'll learn about Swift strings, functions, structures, collections, and loops. You'll also learn about UIKit, the system views and controls that make up a user interface, and how to display data using Auto Layout and stack views.
The third project is Personality Quiz, a personalized survey that reveals a fun response to the user. You'll learn how to build simple workflows and navigation hierarchies using navigation controllers, tab bar controllers, and segues. You'll also learn about optionals and enumerations, two powerful tools in Swift.
After you've built the guided projects, you'll learn how to design, prototype, and architect an app of your own.
Set Up Your Learning Environment
Learning to build apps involves many tools and many resources. At any given time, you may have multiple projects and playgrounds open in Xcode—as well as this book, Xcode documentation, Safari, and some number of assets on your desktop. As you start to build apps, you'll discover it's important to keep your workspace organized.
It's up to you how to navigate between applications. Some students like to use split-screen mode so they can keep all their tools in one single view. Others prefer to run each application (including this book) in full-screen mode and switch between applications as necessary.
To enter full-screen mode, click the green circle in the top left of the window or use the keyboard shortcut, Control-Command-F. You can then navigate between the full-screen applications using Mission Control, by swiping left or right with four fingers on the trackpad, or using the keyboard shortcuts, Control-Left Arrow and Control-Right Arrow.
Gather Your Materials
To complete the lessons in this guide, you'll need the following:
A Mac running macOS Catalina.
Xcode 11, available on the Mac App Store.
Project files for the course, which you can download here. Project files for the course
To access these materials in Xcode, you might need to enter the administrator name and password for your Mac.
A Word of Advice
Develop in Swift Fundamentals is designed to make Swift and iOS development approachable. But you will get stuck. All programmers get stuck.
Learning to program is hard. And building apps is hard. You'll feel discouraged when you can't get something to work just right. You'll feel frustrated when you've been stuck for hours on the same problem. And you may want to quit when you don't understand something.
But it gets easier. It turns into a puzzle. You'll experience a rush of adrenaline when you hit the Run button and your app works, especially after you've spent hours or days trying to get one little thing to work just right. You'll smile when you write code that runs perfectly on the first try. And you'll celebrate when your first app goes live on the App Store.
We're excited to see what you come up with.