It’s been an amazing month since Apple announced Swift, at WWDC 2014. Since then we saw a lot of enthusiasm among developers all over the world, writing hundreds of blog posts and discussing on Reddit and Twitter. A bit over 100.000 people visited We ❤ Swift. We are really excited to see the massive number of people interested in learning Swift in just one short month – and the community is growing. Already there are over 2000 repositories on github!
Swift is fun and powerful. Although some parts are missing #beta – I hope we can all agree that it does a better job than Objective-C when it comes to developer productivity. Functions are first class citizens and new patterns are now possible. We can’t wait to see what is going to appear by the end of the year.
We are all beginners at the same time, so this is going to be an interesting learning experience for all of us. To help you out we compiled a list of the most interesting and useful resources that we have found on the internets:
- Getting started with Swift programming using Xcode 6 from Practical Swift helps you download and setup Xcode 6.
- Amit Bijlani from Team Threehouse wrote An Absolute Beginner’s Guide to Swift in which he goes over the basics of Swift. You should also check his other post on Understanding Optionals in Swift.
- Ray Wenderlich made a useful language cheat sheet and a tutorial to get you started with Swift.
- Andrew Hulsizer from Swift Yeti wrote a comprehensive article about Generics in Swift
- Swift: Spiroswiftograph – a cool example of what you can do in the Playground
- A quick look at Ranges by Erica Sadun
- Jameson Quave made an awesome tutorial about developing apps on iOS 8 using Swift:
- Part 1 and Part 2 goes over the basics of Swift and a simple example project that creates a Table View and a puts some API results from iTunes inside of them
- Part 3 Best Practices
- Part 4 Adding Interactions
- Part 5 Async image loading and caching
- Part 6 Interaction with multiple views
- Part 7 Animations, Audio, and Custom Table View Cells
- How to use the Swift REPL language shell
- How to write a minimal WebKit browser in 30 lines of Swift
- How to make a Singleton in Swift
- Swift Initializers
- Tod Cunningham writes a summary of the topics and notes that he found interesting from the Advanced Swift WWDC session 404 by John McCall and Dave Abrahams – Advanced Swift Part 1 and Part 2
- Create the Game of Life using Swift and SpriteKit – in this tutorial, you will learn to develop a game using Swift and SpriteKit.
- One of the best functional programming tutorials written in Swift is Composing functions in Swift by Artur Termenji
- This is not Swift related but if you are just starting out with programming you should check out Learnable Programming by Bret Victor the guy who almost invented the Playground
Intermediate and Advanced topics
- David Rönnqvist shows us how to create Multiple Animations using Core Animation
- Michael Buckley started an interesting – and very well documented – conversation about the importance of message passing in Mac and iOS apps – The Case for Message Passing in Swift
- Marcus Zarra from Cocoa is my girlfriend analyzes the Core Data template from Xcode 6 – The Core Data stack in Swift
- If you want to develop games using Swift then How to Make a Game Like Candy Crush with Swift Tutorial Part 1 and Part 2should get you started.
- Erica Sadun shows us how to Build custom simulators
- Tom Harrington looks into the features and possibilities of CloudKit – CloudKit: Moves like Azure
- Chris Cieslak talks about Error handling after a discussion on Twitter
- Evan Swick goes Inside Swift he shows us how classes are implemented and explains method name mangling
- Practical Swift shows us the List of implicitly defined variables in Swift and Swift Standard Library: Documented and undocumented built-in functions in the Swift standard library – the complete list with all 74 functions
- Andrew Wagner shows some of the quirks of
AnyObject– Swift’s Weird Handling of Basic Value Types and AnyObject
- Creation of pure Swift module Alex Denisov makes a logging library and shows us how to document classes in Xcode.
- How to write unit tests in Swift with XCTest
- Michael Teeuw shows us how he built a gesture recognizer in Swift.
- Swift Language Highlights: An Objective-C Developer’s Perspective
- Colin Eberhardt explains how
Sequenceprotocol works and cool things you can do with sequences in Swift Sequences and lazy evaluation
- Spaceship Operator in Swift and Regular Expressions in Switch Statements by Venkat Peri
- Noah’s Ark, in Swift is a funny example of unicode support
- Cartography is an excellent example of what could be achieved with operator overloading. If you don’t like writing Autolayout constraints you should definitely check it out.
- Swifter is a tiny http server engine written in Swift. It uses object subscripting in a creative way in order to create routes.
- FunctionSwifter is a simple playground for composing Swift functions. It introduces a Functor class, which wraps a function and provides some basic operations to compose functions.
- SwiftyJSON makes it easy to deal with JSON data in Swift.
- Agent is minimalistic Swift HTTP request agent for iOS and OS X.
- A demo weather app that uses cocoapods and CoreLocation, check out How to integrate Cocoapods into a vanilla Swift project
- LTMorphingLabel is another learning-by-doing Swift project cloning the original Morphing Label of iOS 8 introduced in WWDC 2014
- Hacker News reader iOS app
- Skip Wilson explains most of the functionality of the swift programming language and makes a game in his youtube video series
- A simple to do app tutorial
- Xcode 6 Tutorial for iOS 8: Universal Storyboard
- Drawing With Swift in Playgrounds
- Apple WWDC 2014
Thank you all for your feedback and support!
You can discuss this on hackernews:
I’ve also been covering how to interop from Swift, at http://russbishop.net
So far I’ve got Unmanaged for doing manual retain/release, withUnsafePointerToElements for arrays, and using UnsafePointer to allocate pointers and create COpaquePointers that will stay alive
I am new to everything. Should I continue to learn my Obj-C and master it or postpone that and start learning Swift and then come back to Obj-C?
Swift is easy and fun. For most tasks you will not need obj-c. Focus on learning iOS.
The main strength of Swift lies in the speed of coding apps.