TL;DR: Duolingo for programming: "Write" code via a drag-and-drop interface. The introductory course is free and the entire curriculum is $6.99. Available on the App Store 6/7/2015, just in time for WWDC.
TapCoding is an iOS application that teaches Swift programming.
The curriculum ranges in difficulty from total newbie up to intermediate. Including thousands of bite-sized tutorials, TapCoding easily matches the size of an entire programming book.
But programming books are boring.
Instead of relying upon walls of text, TapCoding is built upon interactive exercises. Its primary teaching tool, the Code Building exercise, allows users to build up lines of code a piece at a time:
By stringing Code Building exercises together across multiple pages users can create advanced pieces of logic, line-by-line:
Users learn in a guided and intuitive way, yet still are allowed to create on their own. This method of learning resembles the actual process of coding much more closely than any other technique that has come before it.
Code Building exercises are just one of five types of interactive exercises in TapCoding. To see some of the others in action, here's app preview video:
TapCoding is a freemium app priced at $6.99 to unlock the full curriculum as released in version 1.0. It also includes a reward system that allows users to unlock the Introductory Course (first 9 lessons) for free, by maintaining a "learning streak" across multiple days.
Who am I?
My name is Adam Wolf. I'm an independent iOS developer living in San Francisco. My one-man software shop is responsible for another long-time educational app called TapTyping which teaches people how to wield their iOS touchscreen keyboards efficiently. Users routinely reach typing speeds over 60 words per minute.
Why was this made?
As a long time Objective-C developer, I decided it was time to learn Swift. I surveyed the available Swift learning resources and worked my way through those that seemed the best. Among them were a few Swift tutorial apps, but none of them went deep enough or were engaging enough for my tastes. As a long time Duolingo user (for learning Spanish), I craved the interactivity and feedback that I knew was possible on the form factor of an iOS device.
So I did what any self-respecting (obsessive) educational app developer would do: as a means of learning to code in Swift, I created an application, written in Swift, that teaches you how to code in Swift. What could posibli go wrong?
Now all there is to do is spread the word.
TapCoding - coding trainer for Swift will be released Tuesday June 7th, 2016. Please contact me if you would like a TestFlight invite.
TapCoding's landing page is tapcoding.com.