This Stanford course has everything you need to start iOS Development. Every lesson is well explained with code demos and how Paul Hegarty explains the concepts of Swift and UIKit is amazing.
You can find the course at this link: https://www.youtube.com/playlist?list=PL3d_SFOiG7_8ofjyKzX6Nl1wZehbdiZC_
You can find the material for this course at this link: https://drive.google.com/drive/folders/14uxqi3ewCM2wvpwBY8nhkEa7ZLq7LXVu
These are my solutions for all the assignments for the CS193p-2017-2018 course using UIKit, Storyboard, Swift, and Xcode. If you are taking this course on your own, as I did, I hope this helps you.
- UIViewController - subclass
- UILabel and UIButton
- Targed/Action (@IBAction)
- OUtlets (@IBOutlet) and Outlet Collections
- functions and properties (instance variables)
- let vs var
- Value type (struct, enum) vs reference type (class)
- Strong type and type inference
- didSet
- for in (and ..< CountableRange syntax)
- Array and Dictionary<key, value>
- [Element] and [Key:Value]syntax
- initialization of struct and class
- viewDidLoad
- Optionals (including implicitly-unwrapped Optionals)
- ?? optional defaulting operator
- // TODO
- arc4random() ( extension to create a random Int number)
- Type conversion (e.g. from UInt to Int)
- Stack View and (simple) autolayout
- All the things from Assignment 1, but from scratch this time.
- Closures
- extension
- Using struct to declare constants
- Equatable
- enum
- Creating a custom UIView with a draw(CGRect) method
- Gestures
- Understanding the UIView hierarchy
- Creating UIViews in code (rather than in Interface Builder)
- Drawing with Core Graphics and UIBezierPath
- UIViewPropertyAnimator
- UIDynamicAnimator
- Timer
- UIView.transition(with:duration:options:animations:completion:) 5. UINavigationController
- UISplitViewController 7. UITabBarController
- Segues
- Autolayout
- Drag and Drop
- Collection View
- Table View
- Text Field
- Scroll View
- Multithreading
- Delegation
- Codable
- FileManager
- URL
- UIDocument
- UIDocumentBrowserViewController
- URLCache
- Running on an iOS device (rather than the simulator)