KefBytes Swift Crash Course
This course is meant to be an introduction to Swift for developers. If you have no developing experience you might find this tough since some common programming features are assumed and not explained.
Each item is a link to more information about a specific topic. You will see some items marked as "Fast Track", these items give you a brief overview of a topic and usually a chance to write a line of code or two to practice what you are learning. The Fast Track items are by no means exhaustive in their detail of an item. In fact quite the opposite they are meant to give you an introduction so that you can quickly get up to speed with the basics.
One approach you might consider is going through the Fast Track items and then writing a little app using what you have learned. This will get you down and dirty in the code as quickly as possible. If you are someone who wants to just jump in to writing an app, this should be your approach. But know that the Fast Track items leave out some more complex details of each topic that you will want to learn later.
A second approach might be to take your time and dig deep into each topic by reading each link before moving on. It will take you longer to get to the point of building your first app, but you'll have a much deeper understanding when you do.
Just do whatever works best for you and have fun with it.
The playgrounds and eBook excerpt can be downloaded right here https://github.com/kefbytes/Swift_Crash_Course. The eBook excerpt uses ObjC, but the Xcode and Interface stuff will help you get up to speed with those pieces. I would recommend downloading the full zip to your machine.
The Stanford Lectures can be found on iTunes. Go to iTunes U and search for "developing iOS 8 apps with Swift", the course is CS93P.
- Getting introduced to Swift
- Xcode, Playgrounds & Interface Builder
- Interface Builder
- Vars, Types & Properties
- vars & lets
- Control Flow
- Closures & Functions
- Structs, Classes & Enums
- Protocols & Extensions
- Error Handling
- Fast Track - ErrorHandling.playground
- Apple Language Guide
- Natasha - TestDriving Error Handling
- Natasha - Why guard is better than if
- Thomas Hanning - Error Handling in Swift
- Bart Jacobs - try, try? and try!
- Using Swift with Objective C
- Build App
- App Requirements - SwiftCrashCourseApp_Requirements.txt
- Steps to build app - SwiftCrashCourseApp_Build_Steps.txt
- Functionality you'll be implenting
- Keychain Access
- Core Data
- Setup the stack
- Create Model Objects
- Add, Delete & Edit
- Table View
- Using FetchResultsController
- Custom Table Cells
- API calls
- Parsing JSON objects
- If you do nothing else, subscribe to Natasha The Robot's "This Week in Swift" newsletter
- Using CocoaPods - Swift in Practice
- MokaCoding - When to Use Map, FlatMap and For Loops
- WWDC - Building better apps with value types
- WWDC - Protocol Oriented Programming
- WWDC - Swift in Practice
- AustinZheng - Generics in Swift
- AustinZheng - Generics in Swift Part 2
- Artsy - MVVM in Swift
- Masilotti - Better Unit Testing with Swift
- Andrew Bancroft - TDD for iOS in Swift