

Show HN: Shade Slide, our first game written in Swift - snijj
https://itunes.apple.com/gb/app/shade-slide/id916923964?mt=8

======
snijj
About 3 months ago, my brother and I decided to create our first game. I have
been using Objective-C for a long time, and I wanted to use Shade Slide as a
vehicle for learning Apple's new Swift Programming Language.

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.

------
elmarto755
Just downloaded. So far i'm very impressed. Incredibly polished and quite
addictive

