Swift: Going Functional

My name is Alex. I’m an iOS Engineer at Stanfy. Recently, I gave a talk at the Swift Rocks event in Kyiv and shared my knowledge and experience in applying Functional Programming to iOS development in Swift.

Alexander Voronov at Stanfy

Currently, I’m working on the iPhone application for hotel services which I decided to develop entirely in Swift. I have been looking into Swift since its first release in October 2014 and was really impressed by that event. So first I started reading the official documentation since there were no other resources to get information from. After a while, people began to play with Swift and shared lots of interesting tricks and experiences. Soon I started feeling more and more comfortable with this new language, and felt more constrained when going back to Objective-C. That is why I decided to take on a freelance project to challenge myself to use Swift in real life. Oh man, there were lots of glitches and bugs that were pissing me off, but no pain, no gain. The hardest thing for me was to start thinking in Swift, taking advantage of all of its new features and possibilities. I moved on, reading and practicing, as Swift kept evolving and releasing new, better versions.

Currently, Swift has reached the 2.1 version and continues to improve with even more speed. Of course, there might be some rough places, but nevertheless Swift is the thing of the future.

The other thing that inspired me was Functional Programming. I first heard of its benefits and general concepts two years ago when I was faced with the new-to-me ReactiveCocoa framework. It is designed with Functional Reactive Programming concepts at its core to simplify building and managing software. Since none of these concepts were familiar to me, I started from the roots – Functional Programming. Currently, this paradigm is becoming more and more popular because of rapid improvement of the hardware and therefore growth in the complexity of the software. And now is the time when we should start learning and practicing with such tools to take advantage of these opportunities and to be able to make the best of them. While software does change the world we are a part of, we must keep it robust, clear, and simple to be able to make a great contribution to improving the world.

That’s why I wanted to share my knowledge and experience using these tools as a kick-start to developing better software and to challenge your minds with these concepts and tools, which are unusual for beginners.

Recently, I was invited to give a talk at the Swift Rocks event in Kyiv, which gathers Swift enthusiasts and opens doors into the Swift world for newcomers. And I was really happy to share my knowledge and experience in applying Functional Programming to iOS development in Swift.

Here are the slides from my presentation at Swift Rocks, that explain how the basic concepts of Functional Programming are achieved using Swift and how they can be applied in real life development.


Also, there is a video of my presentation available on Youtube.

I would be happy to hear about your experience with Swift or your thoughts and comments on my presentation!
Feel free to contact me on twitter: @aleks_voronov

October 7, 2015
  • Will Mruzek

    Do you have a published example of a Swift iOS app with functional programming?

    • Alexander Voronov

      Unfortunately I don’t have open-source example of my own that demonstrate FP in real world iOS app. The deal with pure functional programming in iOS is that you’re still having mostly object-oriented environment like UIKit framework. Thus I find it not really productive to fight it and strive to a single approach. So currently most of my projects use mixed styles were they are more applicative. And FP is mostly used while designing some services or utilities while OO approach is used mostly for interacting with UI elements and in the MVC/MVVM stack. Personally I find next libraries as a good example of applying FP approach in Swift:,,, and Swift Standard Library itself :)
      And you can also find a lot of interesting here