100 Days of Swift: The Tutorials
After finishing my previous medium article, I received a lot of emails from people who were inspired and had questions. The most common one was a request to make tutorials. Although learning the Swift Language was easy, learning how to use Swift to build things was not. I remember how challenging it was for me early on. Because of this, I decided my next project would be to create the tutorials I wish I had in the beginning.
Checkout the tutorials — samvlu.com/tutorials
What was the process?
The first thing I did was decide what format the tutorials should be. I played with the idea of ebooks, video tutorials and a mix of both. I decided on 100% video tutorials because they are the easiest for me to follow. I started off using Quicktime and Apple Earpods to do the screen recordings. The result was decent but the audio needed improvement. So I did research on professional tools and recording techniques. After comparing a bunch of options, I decided to use Screenflow for screen recording, Blue Yeti for audio recording and Audacity for sound mastering. I ended up doing 3 or 4 takes per video to make sure I covered everything important. The whole process of recording, editing and mastering took around 6 months.
Swift 2.0 or 3.0? Does it matter?
“Fundamentals, fundamentals, fundamentals. You’ve got to get the fundamentals down otherwise the fancy stuff isn’t going to work.” ―Randy Pausch, The Last Lecture
Update: 100 Days of Swift is updated for Swift 3.1
Since we are focusing on gaining a good foundation, the changes have little effect on the tutorials. Swift 3.0 is still under development but Apple already has a Migration Assistant. So when the time comes, the transition should be straight forward. Additionally, if you want to see future changes to the language, checkout Apple’s Github page. There you can see all the proposed changes that are under review. It’s well documented so you can see the benefits of each change.
How is the course structured?
I designed this course to be a project based learning experience. We’ll start by learning the tools. In 12 minutes I’ll show you the essentials of how I use Xcode, Code Snippet Library and iOS Simulator. Then we begin our first coding project. Every project follows a pattern of:
The project demo shows you exactly what you’re building. I find that I learn better when I know what the code is suppose to do before I write it.
2. Build UI
Then we build the user interface so the components are ready for you to code.
And finally we write the code to make it all work. I’ll run the iOS simulator often so you can see how it all comes together.
There are also some projects where I show you my approach to debugging error messages. Each project will build upon the previous one. You’ll slowly learn more advanced concepts like Model-View-Controller Pattern, how to use different iOS Frameworks, how to build interfaces that adapt to multiple screen sizes, how to use Apple’s Documentation to build something and more. By the last project, you should feel comfortable learning a new iOS framework independently.
Do I need any programming experience?
It’s not required. In fact, I modeled the course after my own
experience learning Swift. So you’ll follow the same path I took. Your first coding project will answer fundamental questions like:
- How do I structure my code?
- Why write a function?
- What’s the use case of a variable?
- How do I detect when a user taps a button?
- How do I build a user interface?
For advanced projects, I’ll recommend some reading material from Apple’s Free Swift Book. It’s the same material I read while learning to build these projects. You’ll read about new programming concepts then see how to use them in the project.
When I started this project in January, I thought it would take 2–3 months. It took a little more than 6 months to create the tutorials, web page and the medium article. I worked at it every day including weekends. I hope these tutorials will answer most of your questions about Swift and iOS Development. I wish you the best on your journey to learn swift.