Apple Swift provides a disruptive App opportunity for early adopters

Hacker in Work

From our experience a lot of companies at the moment may not consider Swift to be ready for production. Each version of Swift that comes out is not compatible with the previous.

For example Swift 1.2 introduced some very welcome features that our development team started using but subsequently had to remove to build a version that is submittable to the app store.

Aside from this there have been a lot of Xcode bugs and crashes related to using Swift. Some of the recent Xcode versions have been almost unusable and one of them even totally unusable. Swift at the moment seems very much Beta and for early adopters.

However once you get the Swift code to build to a binary there are no compatibility issues and nothing to lose, There’s even some performance to gain as Swift is being developed very much to integrate well with LLVM and by the same person / team that created LLVM.

In our opinion Swift has the productivity of Ruby while at the same time making it easy to implement safe code that doesn’t crash as much as before. In the near future when Swift becomes more mainstream either the cost of implementing a polished app will go down or the expected standard will go up.

The simpler syntax makes it much easier to use certain features which previously were a pain ( ex. completion handlers/blocks ) or even new features ( ex. custom operators ). When you combine them the power is multiplied. Including the time taken debugging bugs that are now avoided with Swift.

The chainTest Swift function below uses a combination of a custom operator ( |> ) and the way functions/blocks are first-class citizens in Swift and can easily be passed around and chained. What the function does is call the “start” function, then on the main thread it creates an activity view ( with a spinner etc ), then with the activity view running it does some work on the global thread, when the work is finished it removes the activity view and calls the “end” function.

func chaintest()
{
start I> main I> startactivity I> global I> doSomeWork I> main I> stopActivity I> end
}

We’d estimate a 4x increase in productivity compared to Objective-C.

Our conclusion is that we’re currently at a place where using Swift provides a window of opportunity for early adopters to compete with the larger less adaptable companies.

Facebooktwittergoogle_plusredditpinterestlinkedinmailby feather