Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/josedv82/swift_learning_resources

A list of resources and tutorial I am using to improve Swift & IOS coding skills.
https://github.com/josedv82/swift_learning_resources

ios ios-app learning-resources swift swiftui xcode xcode11

Last synced: 11 days ago
JSON representation

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

Awesome Lists containing this project

README

        

# 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](https://swift.org/) Official swift website. Recommend to visit it to get a background of the language. Worth exploring their [guided tour](https://docs.swift.org/swift-book/GuidedTour/GuidedTour.html#//apple_ref/doc/uid/TP40014097-CH2-ID1) before getting started.

- [Learn Swift](https://www.codecademy.com/learn/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](https://apps.apple.com/us/app/unwrap/id1440611372) 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](https://developer.apple.com/tutorials/swiftui) 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](https://www.hackingwithswift.com/quick-start/swiftui) 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](https://www.hackingwithswift.com/100/swiftui) before the SwiftUI tutorials.

- [Learn SwiftUI APP](https://apps.apple.com/us/app/learn-swiftui/id1467598599) 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](https://www.bigmountainstudio.com/a/df0u0) 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](https://fuckingswiftui.com/) If you think the tile is a bit aggressive :) , [here is another link](https://goshdarnswiftui.com/) 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](https://twitter.com/sarunw)

- [Sergio Becerril Youtube Channel](https://www.youtube.com/sergiobecerril) 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](https://github.com/Juanpe/About-SwiftUI) by [JuanPe Catalan](https://twitter.com/JuanpeCatalan) 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](https://help.apple.com/xcode/mac/current/) Worth browsing through it. It is a very thorough document I still check if I need to.

- [Xcode Tutorial for beginners](https://codewithchris.com/xcode-tutorial/) 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.

- [Trailing Course](https://twitter.com/TrailingClosure)
- [Paul Hudson](https://twitter.com/twostraws)
- [John Sundell](https://twitter.com/johnsundell)
- [Chris Ching](https://twitter.com/CodeWithChris)
- [Majid Jabrayilov](https://twitter.com/mecid)
- [The SwiftUI Lab](https://twitter.com/SwiftUILab)
- [Stewart Lynch](https://twitter.com/StewartLynch)
- [Mark Moeykens](https://twitter.com/BigMtnStudio)
- [Sarun W.](https://twitter.com/sarunw)
- [Craig Clayton](https://twitter.com/thedevme)
- [Sergio Becerril](https://twitter.com/CFEApps)

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

Specific to the sport audience I consider [Carlos Balsalobre](https://twitter.com/cbalsalobre) a reference. He has created a lot of very popular and useful [apps](http://www.carlos-balsalobre.com/#apps)

# Final Note:

This document is an expanded version of a previous [Twitter thread](https://twitter.com/jfernandez__/status/1280913591546380288)



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.