Apple introduced the Swift programming language on June 2, 2014. The first Flinto for Mac commit was on July 10, 2014. I worked full-time on the app for 14 months from that date before releasing Flinto for Mac. As far as I know, it is the largest Mac app written entirely in Swift. And I’m glad the timing worked out because I believe using Swift allowed me to write 30% less code than I would have if I had used Objective-C.
Flinto for Mac is a professional tool for app designers. It allows designers to prototype their app designs without writing code. The main benefit of Flinto for Mac is our unique Transition Designer which allows for creating your own animated transitions that can be controlled by taps or swipe gestures. When you’ve designed your prototype, you can test it out on-device using our iOS viewer app (also written in Swift). You can learn more about Flinto for Mac and download a trial from the Flinto for Mac website.
At Flinto, we had the good fortune of starting our new project soon after Swift was introduced. That meant we didn’t need to convert an existing codebase, or deal with mixing Objective-C and Swift. I like to being an early adopter. It’s one of the things that keeps what I do fun and exciting, but it’s not without its risks. There was certainly some pain developing in Swift at the beginning, but things have rapidly stabilized and at this point, I’d certainly recommend anyone building an app for Mac or iOS to use Swift.
It may be more trouble than it’s worth to convert an existing codebase, but if you have a small one, you should do it. The savings in time and lines of code were huge. And that’s as a single engineer on a team of two, an environment where we’re naturally efficient already.
Swift is Easy to Love
Even as someone who has been writing Objective-C for seven years, I’ve found there’s a lot to love about Swift. Swift is safer. With features like optionals and strong types (which don’t rely on cumbersome C-like syntax). I found it easy to take advantage of functional programming tools like map/reduce. There is a good balance and while our code is not fully “functional”, it’s easy to reap some of the benefits as needed. Even the playgrounds feature (which may look like it’s just for fun demos) was of great value to me as a scratchpad for experimenting while building Flinto for Mac.
I’ve really enjoyed the improvements made to Swift during the development of Flinto for Mac. Better error handling in Swift 2 is more than welcome, but new availability checking syntax really save your time by dealing with supporting multiple version of operating system. It is easier than ever to support new API without spending lots of time to make sure the same code works in older operating systems.
Our First Swift Open Source Contribution
Finally, I’m excited to announce my first small contribution to the world of open source Swift. Flinto’s RK4 spring implementation is now available as open source. Designers using Flinto for Mac can now share the spring parameters they use in their animations with developers who can use our spring code to get an exact match from what the designer saw inside Flinto for Mac. If you are interested, please check out the Flinto Spring project on GitHub.
I’ve put Swift through it’s paces. Our app was released to rave reviews and is already an essential tool for many designers and agencies. We’re carrying on, full steam ahead with new features and projects. After all this I feel more sure than ever that Swift is a great language, and not only as a platform for Mac and iOS development, but I suspect it will become an excellent choice for computer science education. It would make a great first language, especially now that it has been open-sourced by Apple. I’m looking forward to using Swift for projects outside of Apple’s frameworks as the open source community finds more ways to use Swift on the server and elsewhere.