December 30, 2016

JUnit 5! What's new?

JUnit 5 is finally out. I will take this opportunity, to introduce some of its new features. I will point out only the features that I have found most interesting.


The JUnit Team has changed a lot of the annotation names so that it is clearer how and when they should be used. The underlying behaviour is still the same. Methods which are annotated with either @BeforeAll or @AfterAll must be static because each test creates a new instance, and, therefore, it is unclear on which instance they have to be invoked. [1]

December 20, 2016

iOS Deep Linking - Common Challenges and Their Best Attempt to Solve Them


"Deep links" are a powerful mechanism for making web/mobile app content more easily accessible. By automatically navigating to the desired page/screen we are able to improve the user experience dramatically.
Instead of requiring users to click through several pages – starting from the "home screen" – we can point them to a specific location within our app. Usually, a deep link is contained in, for example a push notification, an email, a Facebook advertisement, and so on. Furthermore, we can drive users back to our app from the mobile website with Smart App Banners in the Safari browser. See below for two real world examples. In the next few sections, we will show you what to consider when implementing such functionality on iOS.

December 19, 2016

Performance Testing with Gatling, Part 2

This is the second part of a two-part series covering theories on performance testing. This part showcases how to set up Gatling in IntelliJ. It provides some practical examples using Gatling, and explains how to get a graphical report for your execution results.

Sample Application

You can clone the sample application here:

December 13, 2016

Avoiding the Implicit

TL;DR: You have a mixed Objective-C/Swift project? Avoid runtime crashes by adding nullability annotations to your Objective-C headers. Integrate this cool script to find missing annotations. Also activate Treat Warnings as Errors.
We love the dynamic freedom of Objective-C, and we also love the static safety of Swift. We know that Swift is the future, but we cannot migrate everything at once, so we live in a mixed world, Objective-C and Swift tangled together via The Bridge.
The Bridge is a wondrous thing, but danger lurks in the dark. In this article, I want to help you sharpen your tools to defend yourself from a special kind of beast: Implicitly Unwrapped Optionals (IUOs) that crawl over from Objective-C land into Swift.