Written by on 4 February 2016

TBT: Do{iOS} conference

Together with my manager (and a lot of iOS/Swift enthusiasts) I went to Do{iOS} in Amsterdam. An event organised by Xebia on November 9 2015. There were several interesting talks, with topics ranging from app security (Avoiding damage, shame and regrets) to companies like ING.

Since you can view and download all the presentations, I would like to focus here on the topics that were the most valuable to us in our app development process.


When you start developing on iOS, Apple will direct you towards the Model-View-Controller way of working. This comes quite naturally but also has an important drawback. Your Controller will get very big, reducing maintainability and making the class very hard to read.

By introducing Model-View-ViewModel you can move the presentation logic out of your controllers into a ViewModel. This results in less bloated controllers that is easier to debug and maintain. And an additional benefit is that the ViewModel is completely testable!

We are currently applying this for all our new view classes and when we update existing view classes.

Learn more about this development model on the  Natasha the Robot blog.

Continuous integration with fastlane

There are different ways to set-up continuous integration for iOS projects. In the past I’ve worked with a number of them. Most of the time it was a hassle integrating Apple’s signing certificates in the workflow. This is where fastlane comes into play. It helps you set-up a chain of tools to manage to different deployment and test phases. Then it automatically handles all the necessary certificates. This helped me a lot and saved me time in deploying versions of our app.

You can read more about fastlane on fastlane.tools.

Interface Builder

Apple build in some nice stuff in Xcode. There are two things Apple added to help you use your custom classes in Interface Builder. You can let Interface Builder render your custom classes in the design view and add custom attributes. These can be altered from within Interface Builder. By doing this, you can let your designer be part of development process and let him see the result right away! All without him (or her) having to code. This allows you to iterate faster on both the development and design fronts.

If you also want to play with this, hava a look at nshipster.com/ibinspectable-ibdesignable.

Wrap up

Overall it was a fun conference. I have seen some stimulating talks, learned new things and I have met some interesting people. I will keep it in mind when it comes around in 2016. If you have any questions, remarks or if you’re interested in joining our team, please contact me.

COMMENTGive your two cents.