Imperative shell, functional core

Imperative shell, functional core is one of the concepts that influenced my programming career the most. It perfectly formulates how to write clean, easily testable code and always keeps you wondering whether you did enough to extract the functional pieces. During my preparations for the Mobile Warsaw #62 talk I…

UI testing iOS apps for humans

No one likes to be blamed for the mistakes. This is especially true for software engineers. Over the years they came up with countless ideas which make software development less fragile and error-prone. It is safe to say that ever growing number of precaution steps taken to maximize the quality…

UIView providers for Swift unit testing

As you might already know, I deliberately chose not to use storyboards for my Swift code. Instead, I build all of the views programmatically and inject them through initializers into suitable controllers. Although this approach works really nice, it has drawbacks when it comes to unit testing. Imagine having a…

Functional reactive programming in Python

Functional reactive programming (FRP) is probably the hottest 🔥 topic in mobile apps development world right now. GitHub trending repositories list is packed with reactive frameworks (RxSwift, ReactiveCocoa and RxJava to name just a few). But is the pattern's usability limited to iOS and Android only? For the past couple of…

Adding iMessage integration to your app

So you already have an app and you are trying to engage users even more... What is a better way to do that than using one of the coolest iOS 10 features - iMessage integration? This Tuesday Apple rolled out iOS 10 together with Messages framework. It provides building blocks…

UI database bindings with Realm & ReactiveKit

UITableView is truly a heart of iOS user interface. It does not matter whether you are changing settings, going through unread emails or sending messages. Provided that you have used your iOS device recently, it is almost certain that you have stumbled upon a table view. Rendering a table with…

To storyboard or not to storyboard?

Storyboards are known to "divide" iOS developers since their introduction in iOS 5. Almost five years have passed and the consensus about when to (not) use them still remains. It is probably because of the fact that using storyboards has as many benefits as drawbacks[1] so it…

iDev recipes: managing filesystem chaos

iDev recipes is a series of short articles that present ways of dealing with common problems while developing apps for Apple devices. One of the most frustrating things about Xcode is that project layout does not have to reflect directory structure. It seems like a powerful feature at first, but…