SwiftUI - built a real world application using Core Data
MP4 | Video: h264, 1280x720 | Audio: AAC, 44.1 KHz, 2 Ch
Genre: eLearning | Language: English + srt | Duration: 73 lectures (13h 8m) | Size: 10.5 GB
MP4 | Video: h264, 1280x720 | Audio: AAC, 44.1 KHz, 2 Ch
Genre: eLearning | Language: English + srt | Duration: 73 lectures (13h 8m) | Size: 10.5 GB
Create a large and complex app for macOS, iOS and iPadOS with SwiftUI and Xcode, including Core Data and MVVM
What you'll learn:
Know how to build professional iOS and macOS application
Be able to persists data locally with Core Data: create the data model and know how to use Core Data with SwiftUI
Know how to share the user data on multiple devices by combining Core Data with iCloud
Understand the MVVM Design Pattern with SwiftUI
Know how to take advantage of ObservableObject, Environment and Notification Center to structure the data flow in SwiftUI
Be able to write clean readable code
Be able to write Unit Tests
Know how to use SwiftUI for a macOS application: including window management, toolbar, and keyboard shortcuts
Know how to use drag and drop in your SwiftUI views to share data from lists, images and texts
Requirements
A Mac computer running macOS 10.15 (Catalina) or a PC running macOS.
You will need Xcode 12
Basic knowledge of Swift programming language
Basic level of SwiftUI - this is an intermediate course
Description
Most courses teach simple concepts and give an overview of all the different features of SwiftUI. In order to master development, there is nothing better than building a fully fletched application. In this course, we will go through all the main steps. I want to showcase the whole development process with SwiftUI. From app idea to MVP. You will get to know my workflow and how I make my design decisions. Follow me along in creating this amazing app.
What are we going to build?
I couple of months ago someone in the co-working space introduced me to the Zettelkasten method. Maybe you heard of the second brain movement or software solutions like roam research. They are all talking about the same problem: you read all this information and you want to keep it at a well organized place for later use. But you never find it again.
The Zettelkasten is a note-taking system developed by a German social scientist, Niklas Luhmann. Luhmann published an insane amount of books and scientific papers.
His trick: the Zettelkasten. It is an archive of notes (Zettelkasten is the German word for slip box). Luhmann had over 80 000 notes in his box at the end. In order to find a piece of information he used an index register and he linked notes to other notes to other notes. Thus following a train of notes feels like following a train of thoughts. You can communicate with the Zettelkasten like it is your second brain.
Doing all the archiving and linking of notes on paper must have been a crazy amount of work. Luckily we will build our very own version of the Zettelkasten: a digital slip box.
It is going to be a big and complex project. Because of that, I think it is perfect to evaluate what SwiftUi can be used for. We will build it together but there is no way to finish everything in this course. I want to give you the opportunity to make this your own app. So you have something you can be truly proud of. Share what you work on, show your cool features or your special design solution. I am very curious what you will come up with.
Why one project
Some concepts like MVVM (Model - View Model - Model) can only be understood, when you see them in a large context. Because you have an example of how things can work together, you can see the benefits of one design decision over another.
Learning one concept at a time and seeing a basic implementation is a good start learning a new framework. But it great to see examples of the same SwiftUI tool for different tasks and in an interplay of a larger project. That is why we will build one massive and complex project in this course.
What’s the deal with Core Data
Mastering Core Data is still a very popular skill for iOS developers. Because Core Data is built on top of SQLite, it is a great and very powerful option for local data storage. Thankfully, Apple made working with Core Data in SwiftUI super convenient. They provide us for example with environmental support and property wrappers like @FetchReqest.
The application we are building is a note-taking system, with keyword tags, links to other notes. It will become quite a complicated data model. We will work with relationships, see how to store rich text and images in core data. We will take advantage of the database to implement advanced search functions.
SwiftUI or not to SwiftUI
SwiftUI is clear, easy to read, and convenient to use. But most people don’t consider SwiftUI as good enough to use it for large and complex apps. They try to develop their first project with SwiftUI but soon get stuck because as the project grows the interplay of different parts of your app becomes more complicated. Managing the data flow is one of the main obstacles when it comes to working with SwfitUi.
This is because of the strong paradigm change. Thinking in declarative programming takes some time to get used to and is best understood by seeing examples of how it actually works.
I want to show you with this project, that it is possible to build amazing apps with SwiftUI. I can best prove this to you by giving you a real example: a fully fletched app written in SwiftUI.
Let’s build that app!
Who this course is for
If you want to learn how to build real applications with SwiftUI
If you started learning SwiftUI and you want to get to the next level by working on a larger project
If you are a pro iOS developer and want to quickly get up to date with Apple's latest technology SwiftUI
If you are an iOS developer who wants to take advantage of SwiftUI to create your very first macOS application