So WWDC happened, and we were all blown away by Swift. Yay Swift! And one of my reactions afterward was “I want to write a book on this”, because that’s apparently what I do now. So I created this page where you can register for updates when the book is launched.
Cool, cool. But why, people would ask me, am I writing a book when Apple has two ebooks on Swift already available, for free? Well, I had to think really hard about that. To be honest, I just wanted to write something cool – largely as an excuse to get really good at Swift. So I had to think hard about why I wanted to write about Swift, and after reading the Apple books and getting my hands dirty, it came down to this: Apple’s resources are really good at describing the language, but it’s not written as a resource for teaching practical knowledge. The book, while excellent, reads like a text book.
I believe this is because Apple – like everyone else in the world – still lacks the kind of practical experience writing production-ready code in Swift. Even the Swift engineers don’t know the kinds of new patterns that are going to emerge from the community over the coming months and years.
So that’s what I want to write about: practical swift. How do we, as iOS and OS X developers, solve familiar problems with new tools? It would be a shame to ignore this opportunity and just continue to write in Objective-C, but using Swift syntax.
But there’s a problem: I don’t yet have that practical experience. Hmmm.
About the same time I came to this conclusion, a bunch of people on Twitter (bless you, Twitter people) asked if I was going to updated my existing Your First iOS App book for Swift. Initially I said no, but then I had an idea.
What if I followed my old book’s instructions and gained experience building a feature-complete app, in Swift? With Core Data and everything? That’d be really cool, I could write about it, and better yet, I’d get the practical experience I need for my general Swift book. Sweet!
One catch: if I updated my book for Swift, then it won’t be available to people who still want to use it to learn Objective-C. My solution is going to be that I create a second book on LeanPub, and the Objective-C one will continue, at least for now. Because the Your First iOS App book was actually the product of a successful crowdsourcing campaign, I feel it would be wrong to make a new book based on the same material without compensating those who already bought the Objective-C version. So that’s why, once the Swift version launches, I’ll be passing out promo codes good for a free copy of the new book. If you don’t want to use it, then pass it along to a friend!
One more thing: I’ve also gotten questions surrounding my ReactiveCocoa book. I will be updating it for Swift, but only once The Great Swiftening has been completed.
So that’s it. My initial thought to create a book in Swift has lead to an updated version of two existing books and writing a whole new one. I’m really, really excited about the next few months, if a little daunted by all the work I have to do.
Oh, and one more thing. My friend over at objc.io are launching a book on functional programming in Swift which you should also consider. It looks super-promising. Also, if you’re looking for another Swift resource now, please do check out Daniel Steinberg’s A Swift Kickstart on the iBook store.