Are you new to iOS development?
Are you looking to learn SwiftUI from the best available resources?
Well look no further, this is an honest attempt to guide you through the learning process of app development with Swift.
SwiftUI is a modern way to declare user interfaces for any Apple platform. Swift is a powerful and intuitive programming language for macOS, iOS, watchOS, tvOS, and beyond. Writing Swift code is interactive and fun, the syntax is concise yet expressive, and Swift includes modern features developers love.
Swift is the result of the latest research on programming languages, combined with decades of experience building Apple platforms. Named parameters are expressed in a clean syntax that makes APIs in Swift even easier to read and maintain. Create beautiful, dynamic apps faster using Swift.
What is SwiftUI? What is UIKit?
Both are frameworks used to build the user interface for apps.
SwiftUI - is a declarative framework. Implies you declare the user interface and behavior for your app on every platform.
UIKit - is an imperative framework. Implies you construct, and manage a graphical, event-driven user interface by adding functions to elements like text, buttons, and controls, etc for your iOS or tvOS app.
As a developer reading is one step in the process of learning anything new, whereas developing an app/getting hands-on experience is the most important one. It helps understand what you have learned and also clears doubts while learning new technology.
You can easily get carried away with so many free available options and articles on the internet. But without a plan or proper guidance, you can simply lose your way while learning a programming language like Swift.
If you are fed up with overwhelming options, let me help you zero in on a few of the best available sources to start with.
Take a look at the below resources.
Always start with the official sources 💎
Where else can you start learning Swift programming other than Apple themselves?
Official Documents - Click Here to go to the full documentation.
Start with A Swift Tour under The Swift Programming Language heading.
- This will help you only if you are familiar and have experience with any other programming languages.
Next, move on to Language Guide for a more in-depth description of features in Swift. You can also download the ebook for free.
Apple documentation explains most of the APIs included in Swift. But to cement the understanding of what you learned, you need to get your hands dirty. Start developing apps on Xcode.
Apple Official Developer Tutorials ⌨️
The below 2 tutorials are gold. Apple explains app development with the help of sample apps. You can build a complete project from scratch using these tutorials. The solution source code is also provided for each of the assignments. You can always download the project files and cross-verify them when you are stuck someplace.
These apps teach different concepts of Swift with hands-on experience. Learn the basics of Xcode, SwiftUI, and UIKit to create native apps for iOS.
1. Landmarks App
A step-by-step guide to build Landmarks App completely using SwiftUI and UIKit.
Bringing Landmarks to the Watch and Mac - You’ll build upon the views developed for the iPhone(iOS device) by re-using them and by adding few modifiers you will customize the views and migrate the same app to the watch and the mac. This tutorial gives a complete experience of building a SwiftUI app for iOS, watchOS, and macOS.
Click Here to get to the tutorial.
2. Scrumdinger App
A step-by-step guide to build Scrumdinger App completely using SwiftUI and UIKit.
Click Here to get to the tutorial.
If you are an avid reader online - Websites 🖥
1. Hacking with Swift - The guy is a rockstar. The moment you read his explanation, you know that this guy knows his stuff. Probably the best resource online with 100 days of SwiftUI tutorials.
100 Days of SwiftUI - One of the best-guided tutorials out there. Explains the basics right. Encourages you to learn swift at least one hour a day.
Click Here to proceed to his homepage for more of the stuff.
2. Code With Chris - Has a 14 Day Beginner Challenge tutorial to learn the basics. You can register with your email and start the course for free. The course will help you build a small card game while teaching Swift. This series will clear all your doubts with the basics. You can also find plenty of videos on Swift on his Youtube channel.
Click Here to proceed to his homepage.
3. Swift by Sundell - Has articles, videos, tips, and podcasts on Swift development and beyond. All of this site’s content is freely accessible.
Click Here to proceed to his homepage.
4. Ray Wenderlich - This learning path covers both UIKit and SwiftUI frameworks. This site has a big team and they constantly upload videos for not just Swift but also other technologies. There are paid tutorials and you can subscribe monthly to get exclusive access to their content.
Click Here to get to the home page.
5. Christopher Chee - A personal friend of mine with lots of experience in Objective-C, UIKit, and now Swift. He writes in-depth articles on a wide variety of Swift frameworks like PDFKit, JSON Bundle, etc. He also puts up the code used to explain the same.
The catalogue is small but this blog will be helpful when you start making your app more scalable.
Click Here to get to the home page.
If you like watching videos to learn - Youtube 📺
People say writing is equal to 10 times reading something. It helps remember things. That is one of the reasons why I started writing a blog in the first place. I say that watching something is like reading a thing about 100 times. Our brains are designed to remember and understand something visual better than reading through a dry concept.
Imagine reading through 600 or more pages. How cumberbatch 😛, I mean how cumbersome can it get?
Instead, watching videos can cut through the tough job and makes it easy to learn and remember pretty much anything.
If you're stuck with a problem that is too complex to google, or you prefer videos for learning, here are the best channels to learn from :
1. Paul Hudson - Youtube Channel - Have hundreds of videos related to UIKit and SwiftUI. Pretty much covers the basics and also full app development through his videos. You'll find well over a thousand free tips, techniques, and tutorials for Swift on this channel. One of the largest dedicated iOS tutorial channels on YouTube.
2. Sean Allen - Youtube Channel - This guy perfectly explains delegates, Xcode basics, and much more in short videos. Swift and iOS Development from an iOS Engineer with 3 years of experience in Silicon Valley. Videos like Tutorials, VLOGs, Interview Questions, and LIVE on Sundays are available on this channel.
3. Jared Davidson - Youtube Channel - Huge amount of iOS tutorials and videos ranging from Objective-C to initial versions of Swift and now Swift 5.
4. Brian Advent - Youtube Channel - Another decent channel to get your basics right. You can find tutorials on Swift and its frameworks like ARKit, CloudKit, and SpriteKit etc.
5. DesignCode - Youtube Channel - Great SwiftUI tutorials. Teaches designers how to code and developers how to design.
6. Kavsoft - Youtube Channel - Amazing channel focused on SwiftUI; must-have if you are aiming to master Swift. Explains hard concepts with simplified code.
- You can subscribe to them and choose any developer to your liking. Do not jump from one source to another in the middle. If you start a series try to finish it. Watch multiple times if something is getting over your head.
Below is a high-level source, and my personal favorite, a series of videos, where I started understanding Swift in depth. It is really challenging to follow which drives me more to improve my understanding of Swift.
7. Stanford Spring Class - The lectures given to Stanford University students who took CS193p course, Developing Applications for iOS using SwiftUI, during the Spring quarter of 2020. A series of tutorials explaining concepts in Swift while developing a Memory Game.
- Try not to miss the details in the middle.
Click Here to go to the Youtube channel.
These lectures are a little high level for beginners. So I recommend you to finish any basic tutorials and then start this series. With multiple views you can also understand this course sooner or later.
If you are old school and need a guided training - Courses 📚
Wasting money on a course that is not very effective or you don't like isn't a good idea, so I recommend this Udemy course if you are willing to shell out a few bucks.
1. Angela Yu’s The Complete iOS App Development Bootcamp - Udemy iOS course on Udemy.
You can find many other courses on Udemy by simply searching for Swift, but the above course checks all the boxes. The course is well designed for beginners.
2. Build your very first iOS app - edX Course
This one is free.
Learn how to get started with app development and create your very first iOS app with the help of academics from Curtin University. A course on edX, you can enroll for free and the access expires on May 23.
This age is the age of information. One can easily get lost in the ocean of data and the sources available on the internet. You can find hundreds(or maybe thousands) of gifted developers with unique perspectives. Some are good with the basics and some are really good at illustrating examples on a wide variety of complex features in Swift. They can simplify complex concepts with relevant tutorials and guide you through the learning process.
Pick one to your liking ✔️
Stick to it.
- While learning Swift(I am still learning), at some point, I used one of the sources above to get a better idea of a feature or a concept from another developer and it really helped.
You might feel exhausted by the overwhelming things you learn.
Hang in there. Take a break or whatever.
But, get back to where you stopped before.
- Do not put an impossible timeline to learn Swift. That usually is one big reason to lose the motive.
Good things come to those who wait but great things come to those who work for it.
Never give up.
- Start working on the code. Build a couple of apps using SwiftUI completely. The best part is using Swift you can develop applications for Mac🧑🏾💻, Apple Watch ⌚️, or any other Apple device for that matter. So the rewards come later.
Apple is working hard to make this language a go-to programming language for developers who wants to develop apps on any native apple platform. Every year WWDC comes up with new features in Swift.
Every year WWDC conducts a swift student challenge. Check this Swift Student Challenge for devs in 2021. This challenge is open to anyone above 13 and interested in Swift.
I mean, just like the iPhone increments from X, 11 to 12, etc year after year, Swift also comes with the latest version every now and then. The latest version being Swift 5.4. The language may not be perfect but has rich features, it sure is modern and fun to learn.
You can always buy Books online or from stores. Read reviews and do some research if you decide to buy a book. For now, I am only using the official apple documentation PDF, and for the time being, I felt it will suffice.
I hope you liked the post and it'll help you with your journey in the world of app development with Swift.
Happy Reading! Happy Watching!! and Happy Coding!!!
Practice may not make someone perfect, but it sure makes progress.
Feel free to share your sources in the comments section. After all, sharing is caring and in the dev world, the quote makes much more sense :)