Show HN: Shade Slide, our first game written in Swift
itunes.apple.com
itunes.apple.com
The game is a puzzle, where by you have to try and clear the board of all tiles, by matching them into rows and columns.
It's been an interesting experience using a language that is still going through the final phases of development for a full blown product. It made some aspects far easier than I expected, but at the same time made other aspects far more tedious.
For me personally, one of the positives to using Swift is actually (and rather surprising) using it in its pure form, without any of the Cocoa frameworks. All of the Core Business Logic in Shade Slide for constructing and managing puzzles is done using the Swift Standard Libraries and no hint of Cocoa at all. It was remarkably easy to actually get something up and running this way. Curiously this aspect of the game, never had any issues between beta versions of Swift (where as the Cocoa level aspects of the game did).
In regards to Cocoa and Swift... I've found to be a less than smooth experience. Cocoa is built in Objective-C and relies heavily on its dynamic runtime and weak linking. The result in Swift, which uses static linking, is optionals everywhere. Either you make sure you have everything instantiated from word go (even if you do not have the data to do so yet) or you create an optional, which requires a lot of boiler plate code for constantly unwrapping them.
Another annoyance with Swift and Cocoa is inheritance (at least from SpriteKit related subclasses) that it will demand that you override all designated initialisers even if it is just to call back to the super.
It has been an interesting experience, and it has certainly been fun to use Swift. Would I use it again for our next game? Probably not so heavily. It is safer than Objective-C and won't let me make the same careless mistakes, but at the same time it currently feels very unforgiving and awkward in places.