Full course description
About Develop in Swift Data Collections
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 learning some fundamental concepts of Swift and iOS app development before diving into a wide variety of APIs that professional developers use every day. You'll work through practical exercises, creating apps from scratch and building the mindset of an app developer.
You'll build three projects—a to-do app that allows the user to list and check off items, a restaurant app that displays a menu and submits orders, and a social network client for logging habits. 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 Data Collections on your own or 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 experience in basic Swift, experience in the fundamentals of iOS app development in
UIKit, and familiarity with Xcode and Interface Builder. If you're unsure whether you're ready, check out Develop in Swift Fundamentals, the precursor to this course, which will help you develop all the skills and knowledge you need.
Course Structure and Content
At the core of Develop in Swift Data Collections 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 how 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 21 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 Data Collections 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 lessons 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 lessons 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. In these guided projects—as well as in 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 List, a task-tracking app that allows the user to add, edit, and delete items in a familiar table-based interface. You'll be able to customize the app to track any type of information, such as a card collection, homework assignments, or a playlist. You'll learn how to build scroll views, table views, and complex input screens. You'll also learn how to save data, share data to other apps, and work with images in the user's photo library.
The second project is Restaurant, a menu app that displays the available dishes from a restaurant and allows the user to submit an order. This project comes with an easy-to-use local web service that allows you to customize the entire menu with your own menu items and photos. You'll learn about animations, concurrency, and working with the web.
The last project is Habits, a social network client that allows the user to log their favorite habits and keep track of how they rank against other users. This project also includes a customizable local web service that replicates the activity of a real social network with multiple simulated users. You'll learn about collection views and compositional layouts, discover how to display notifications to the user, expand your understanding of protocols, and learn how generics make Swift a powerful language for simplifying code.
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. 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 Data Collections 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.