
This video provides an overview of the entire course.
In this video, we will download Xcode 11 first. It’s the IDE (Integrated Development Environment) for developing iOS, iPadOS, macOS, and watchOS apps.
• Download Xcode 11 from the App store
• Have a look at the official developer documentation
• Create our first Swift playground
An important concept in Swift is the difference between variables and concepts. In this video, we will learn how and when to use them.
• Learn how we store values in memory
• Understand the differences between “let” and “var” keywords
• Implement our first computed property
Swift is a type-safe language that helps you to be clear about types of values your code can work with. In this video, we will see the difference between an explicit and an inferred type.
• Understand the differences between explicit and inferred types
• Learn about string interpolation
In this video, we will learn about optionals to represent a situation where a value may be absent. This is a great technique that avoids a lot of app crashes and provides a better user experience.
• Get an overview of optionals
• Learn about unwrapping and force-unwrapping optionals
• Understand nil coalescing
In this video, we will learn how to create a new project in Xcode.
• Create project in Xcode
• Get familiar with automatically created files
• Cleanup project and organize files
In this video, we will design an intuitive user interface in an interface builder.
• Get familiar with the tool
• Explore most important areas
• Make changes to our user interface with interface builder
In this video, we will learn to build the basic UI for our application.
• Add different views to our view controllers
• Design the basic layout and UI for our application
• Create new view controllers
In this video, we will learn how to use Actions and Outlets to make our app responsive.
• Let the user perform an action and react to it
• Hook up views with our code
• Be ready to change our user interface based on user interactions
In this video, we will learn about one of the most used interface elements in iOS.
• Learn about UITableViewController
• Learn the different types of UITableViews
• Create a first prototype cell
A frequent task of an iOS developer is to parse a JSON file and create data objects from it. We will learn more about this, in this video.
• Import necessary resources to our project
• Create our model and classes accordingly
• Use decodable protocol to create objects from the JSON file
To be able to display data in our table, we will learn how to make use of UITableViewDataSource and UITableViewDelegate methods.
• Populate the table through data source
• Filter data with segmented control
• Customize table view with delegate methods
A UITableView comes with its own pitfalls. In this video, we will learn how to avoid them so you can save time figuring out any issues.
• Prepare our data model for some experiments
• See problems when cells are not correctly recycled
• Learn the most common mistake when table view is not showing data
In this video, we will add some more view controllers and learn about new UI elements.
• Create a new storyboard
• Add UILabel, UITextField, and UITextView
• Change the design of UITextView
In this video, we will learn about storyboard segues and how they allow us to make a transition between view controllers.
• Build navigation stack with a UINavigationController
• Create storyboard references to perform segues across different storyboards
• Perform segues and using different presentation types
In this video, we will learn how to pass data to a UIViewController (to show details of recipe) and how we can receive data from a UIViewController (to show newly added recipe).
• Use our segues to pass data
• Implement prepareForSegue method to pass data
• Create a custom delegate to receive data from a UIViewController
The Apple ecosystem consists of different devices. In this video, we will make sure that our app runs perfectly on all different screen sizes.
• Learn about different device sizes
• Set constraints in the interface builder
• Make our UI adaptive with size classes
When creating custom UITableViewCells, we want to make sure that they can have a dynamic height. In this video, we will learn how to use Auto Layout to achieve that.
• Create a custom UITableViewCell
• Set correct Auto Layout constraints for our cell
• Support dynamic cell height in our UITableView
In this video, we will learn how to provide the best user experience on bigger screens.
• Optimize user interface for bigger screens such as on iPads
• Implement UISplitViewController
• Customize UISplitViewController to support it on iPhone and iPad
In this video, we will learn how to use the newest Apple technology called “Catalyst” to bring our iPad app to the Mac.
• Check the magic checkmark “Mac” in Xcode
• Run our app as a native macOS application
• Implement specific code that only runs on Catalyst
In this video, we will make sure our app supports dark mode and dynamic type for better readability.
• Learn to use adaptive colors
• Support dynamic type by using predefined text styles
• Add dynamic type support for UITextView with attributed text
In this video, we will learn about the Core Data framework and how we can use it do persist data.
• Understand what Core Data is
• Learn why we need Core Data
• Look at the Core Data stack
Xcode comes with a super-easy setup for Core Data if you create a new project. In this video, we will learn to add it to an existing project.
• Create a dummy project with Core Data
• Copy necessary parts of the code to our existing project
• Add a Core Data model
In this video, we will define an entity within our Core Data model and add attributes to it. We will also use the model editor in Xcode for this.
• Create an entity and adding attributes to it
• Use code generation to generate subclass of NSManagedObject
• Clean up our code and delete files that are not relevant
Now that we are using Core Data instead of parsing objects from a JSON file, we must update our project accordingly.
• Learn tips and tricks to easily create instances of NSManagedObject
• Fetch objects from Core Data instead of parsing from JSON
• Store objects to Core Data
In this video, we will make use of an NSFetchedResultsController to prepare our app for syncing with CloudKit.
• Make a UITableViewCell reusable across our project
• Extend our entity by an additional attribute
• Use an NSFetchedResultsController to display Core Data objects
In this video, we will learn to use the newly introduced mechanism to sync Core Data with CloudKit.
• Enable sync via CloudKit
• Add necessary entitlements
• Learn about Apple developer program
As we are loading from a remote server (or cloud) now, in this video, we will prepare our app for asynchronous loading.
• Handle nil values in UISplitViewController
• Add observer with NotificationCenter
• Update our user interface when receiving a notification
Apple introduced their own sign-in mechanism last year at WWDC. In this video, we will implement the safest and most private login in our application.
• Add necessary entitlements to our project
• Work with AuthenticationServices framework
• Fetch name and email from a user
To stand out from the plethora of apps in the App Store we will create a beautiful app icon.
• Get an introduction to assets
• Add an application icon
One of the most important questions of being an app developer is “how to make money with an app”. In this video, we will discuss the different options you have.
• Get an overview of five different business models for an app with real-life examples
Once your app is ready, you are eager to show it to the whole world. The last step is the app review by Apple. In this video, we will learn how to avoid being rejected.
• Look at the App store review guidelines
• Understand the most common reasons for app rejections
• Get a closer look at the top app rejection reasons
In this video, we will learn more about the newly introduced framework called SwiftUI.
• Get an overview of SwiftUI
• Create a project with SwiftUI
• Explore common concepts for building apps with SwiftUI
Now, we are testing the capabilities of SwiftUI. To better understand the differences, in this video, we will replicate some user interfaces from our app we’ve built with UIKit.
• Create a list of our recipes with the list element of SwiftUI
• Build a similar recipe detail screen
• Work with previews and other design tools of SwiftUI
What is done with a UINavigationController in UIKit works completely different in SwiftUI. In this video, we will learn how to add navigation to a SwiftUI app.
• Embed our list inside a NavigationView
• Navigate between views with the help of NavigationLink
Apple says that SwiftUI adapts to the native behavior on each platform. In this video, we will run checks and let our app run on iPhone, iPad, and Mac.
• See how our application behaves on different devices
The iOS 13 SDK arrives as a major milestone in the evolution of the Swift language with new and interesting features for developers such as Dark Mode, Apple Sign-in, CloudKit, SwiftUI, UIKit, and more. If you're looking to get started with iOS 13 programming, unravel the potential of Swift 5, and publish your apps on the iPhone and iPad, then this is the right course for you.
This course will be a perfect guide on your iOS journey; it will take you through the capabilities of iOS 13 and show you how to put its principles into action. It equips you to handle the most common tasks an iOS developer will deal with daily. We begin by creating a burger-recipe application and gradually add features to it as we move on. You will also learn how to build simple apps using SwiftUI and master iPadOS, which is specifically created for tablets. You will learn about the differences between UIKit and SwiftUI, and explore how SwiftUI handles the look-and-feel of different platforms such as iOS, iPadOS, and MacOS.
By the end of the course, you will have built an appetizing burger-recipe applicaiton.
About the Author
Gregor Pichler has more than eight years' experience with iOS development. He graduated with a Master of Science degree from the University of Applied Sciences in Hagenberg. He was iOS Project Lead for several projects for a well-known London agency; his projects ranged from an HR recruiting app up to a GPS-based app for helicopter pilots. Together with four other colleagues, he co-founded his own startup called Butleroy, an app that manages your calendar and to-do lists more efficiently.