josedv82 / Swift_Learning_Resources

A list of resources and tutorial I am using to improve Swift & IOS coding skills.

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

Swift Learning Resources

A document to keep track of resources I am using (or have used) to learn Swift programming.

It is also intended to help those getting started on IOS development without any previous Swift experience by sharing my approach.

Jose Fernandez

Intro

The below is not an in depth list of resources but a list of courses, websites and documents I have used for reference. More will be added as I continue exploring.

Topics that are covered in this document:

  • Introduction to Swift Syntax and basic programming concepts
  • Familiarity with Xcode (IOS IDE)
  • Learning SwiftUI
  • Finding help / Answers questions

1. Swift Syntax

Most of the app logic is written in swift, so it is important to have a good foundation of the language. Here are some resources I used.

  • SWIFT Website Official swift website. Recommend to visit it to get a background of the language. Worth exploring their guided tour before getting started.

  • Learn Swift I took this course on codeacademy to start getting familiar with the language. It has a good mix of explanations anf practical challenges. Some of the concepts apply to other languages, such as declaring variables, arrays, dictionaries, for loops, if else logic, etc. But it was good to revisit.

  • Unwrap APP by Paul Hudson. Really engaging app covering a lot of content on Swift along with activities, assessments, tasks, etc. I find this format very easy to stick with, even for short 20-30 mins sessions whenever I have some time.

For practicing I use playgrounds in Xcode. Where I can write code and see the results.

2. Learning SwiftUI

SwiftUI is a relatively new framework released by Apple om 2019. Traditionally, ios development has been done via interface builder and story boards and plain Swift on Xcode. If you read a little bit about it, many would recommend learning that approach before jumping into SwiftUI. Since SwiftUI doesn't cover all the functionalities that UIkit offers yet. So likely, there is a need to combine both in the short term. Not having any previous background and considering that I am learning and therefore building very simple apps in the near future, my approach here was to focus on mainly SwiftUI, and only go to UIkit if and when needed. I believe this is a better idea moving forward rather than having to learn one approach now and another one in the future. Hopefully, SwiftUI will continue evolve until it becomes the primarily choice to build apps.

Resources I used for SwiftUI:

  • SwiftUI tutorials by apple This is a well designed tour of some of the swiftUI capabilities while readers follow along building an app from scratch. It touches on a lot of elements and functionalities that you will see in many common apps. As a side note, it says that it takes about 4.5h to complete the tutorial. My experience here is, if you are new and really want to understand the concepts, repeat each part of the tutorial 2 or 3 times, doing it more independently each time. Overall I can say I spent easily over 20hrs on this. If you are completely new to swift and swiftUI I wouldn't use this as a first resource as it can get relatively complex at times if you don't have any background. I would recommend starting with the options mentioned below that will help you build a foundation.

  • SwiftUI by example This is a great website by Paul Hudson with lots of useful resources. I wish I had found it sooner. The SwiftUI by Example tutorials combined short and easy-to-follow explanations along with Paul's short explanation videos. Content wise covers most of what is covered on the SwiftUI tutorials, but I found this one easier to follow. I'd probably say better to do this one along with the 100 Days of SwiftUI before the SwiftUI tutorials.

  • Learn SwiftUI APP I really liked this app. It has more than fifty short tutorials progressing in complexity that you can do directly from your phone. It is a guided tutorial and for me it was a good first introduction. From here I went to the other two resources above. It takes 2-3h top to complete all the tutorials.

  • Big Mountain Studio Even with other languages where I have years of exprience I find myself searching for ideas and googling code examples that I can then reuse in my projects directly or after some adjustments. Mark Moeykens at Big Mountain Studio has put together a lot of resources combining visuals and code examples on swiftUI. You can read it like a normal traditional book but for me, these is more of an investment on resources that you can check over time. I will provide ideas and help save time down the road.

  • FuckingSwiftUI If you think the tile is a bit aggressive :) , here is another link to the same page under a more user friendly name. In summary, a useful cheatsheet with resources and keywords related to swiftUI, including some minimal code examples by @Sarun

  • Sergio Becerril Youtube Channel For those searching for content in Spanish, Sergio has a channel with some videos of SwiftUI. He does a great job at explaining SwiftUI concepts and creating engaging and easy-to-follow videos.

Finally, this compilation of resources, links and publications by JuanPe Catalan is a must visit. There are tones of links here and while I haven't checked all of them, it is a good guide to stay on top or articles and news regarding swiftUI.

3. Xcode IDE

Xcode is the IDE where apps are coded. As of last week, I am currently running the 11.6 version. Resources I used to get started:

  • Xcode Apple guide Worth browsing through it. It is a very thorough document I still check if I need to.

  • Xcode Tutorial for beginners I found this one really helpful, short and easy to follow. Definitely recommend checking it out as well as the whole website by Chris Ching

I didn't spend much time here. In my opinion, familiarity with Xcode comes naturally if you follow some of the resrouces mentioned above to learn SwiftUI.

Forums / Help

After those 3 I felt I was in a good spot to start trying things on my own. When stuck or in doubt (like with any other language really) I use google, post on stackoverflow and started following some people sharing a lot of interesting content on twitter.

Some of the profiles mentioned above have websites with excellent courses and tutorials worth exploring.

Specific to the sport audience I consider Carlos Balsalobre a reference. He has created a lot of very popular and useful apps

Final Note:

This document is an expanded version of a previous Twitter thread

Definitely open to learn from others, how they go about this and what resources they found useful. I hope to update this page as I continue to learn more. Eventually with coding examples as well.

About

A list of resources and tutorial I am using to improve Swift & IOS coding skills.