Decoding nested values with property wrappers
Feb 12, 2020, 7:00 PM
Property wrappers is one of the recent Swift proposals that have been welcomed probably the most by the community. To be fair though they…
git rebase vs. git rebase --onto
Nov 9, 2019, 7:00 PM
Recently we were discussing in our team how to approach having fixes for bugs discovered during release both in release and the trunk branch…
Hello World
Jun 8, 2019, 8:00 PM
Hello World!
Making Slack, CircleCI and Fastlane work together
Jun 8, 2019, 10:00 AM
Nowadays Slack, some kind of CI and often Fastlane are default tools in a toolset of iOS developers. These tools serve their own purposes…
Swift 5 string interpolation
Feb 6, 2019, 2:30 PM
Strings are everywhere. We all use strings everyday. In Swift String is a very powerful type. One of the features it had available since the…
Implementing features with ReactiveFeedback
Nov 7, 2018, 8:40 AM
Some time ago there was an explosion of articles and talks in the iOS community about “unidirectional flow” architectures, inspired by Redux…
iOS UI Automation Tests at Babylon
Oct 8, 2018, 5:00 AM
This article is based on the talk I gave at iOS Astronauts meetup that was held on 03.10.2018 at Babylon. You can check out this talk and…
Parameterized jobs in CircleCI
Aug 7, 2018, 2:41 PM
The title is a lie - there is no such thing as parameterized jobs (at the time of writing, but seems it’s going to be improved in 2.1) when…
Codable in practice
May 5, 2018, 7:38 PM
One of the first tasks I got in my new team was to convert entire code base from in-house JSON encoding/decoding solution (in fact two of…
URL parser in functional style. Part 2.
Nov 7, 2017, 2:56 PM
In previous part we started to write base components of URL parser. Time to extend it and add some additional functionality, like…
URL parser in functional style. Part 1.
Nov 7, 2017, 2:56 PM
When I published one of my previous posts about deeplinks and then decided to turn it into a framework it turned out that Brandon Williams…
Swift 4 tricky filters
Sep 26, 2017, 3:46 AM
This is a short story of a regression in Swift 4 that I’ve recently had to deal with. It can seem as a simple problem, but I think it’s a…
Deep links with no brainer
Sep 6, 2017, 4:16 PM
Very often in my practice deep links were something that no one cares much, they work somehow and its fine. Or there are just few of them…
Swift enums with associated values defaults
Mar 24, 2017, 6:01 AM
In Swift enums are much more powerful than we got used to in other languages. One of the features that makes them more interesting to use is…
Xcode Source Editor Extension superpowered with SourceKitten
Feb 19, 2017, 3:23 PM
With Xcode 8 Apple finally provided developers with first party API to develop plugin-like Xcode extensions, at the same time closing all…
Extending native code with JavaScriptCore
Feb 8, 2017, 2:01 PM
This week there were a lot of articles around the web about React Native and its place in a current iOS dev ecosystem. I was also playing…
Going back to the roots
Feb 2, 2017, 4:58 AM
As Roy Marmelstein said in his recent presentation at dotSwift - we love to be excited. Can not agree more. When we read a blog post that…
Adaptive text styles
Jan 19, 2017, 4:00 PM
Textual content is the essential part of any app and text handling in iOS has been improving through last years. Starting with iOS 7 we have…
Inout variables with side effects
Dec 15, 2016, 8:12 AM
Every app has some kind of caching. Let’s say our caching strategy is very simple: check if data is in the memory cache and return it if not…
Objective-C headers in Swift framework & custom build configurations
Oct 29, 2016, 9:45 AM
It’s already 2 years of Swift and its interoperability with Objective-C as well. When app extensions were released we’ve got a way to share…
Frameworks, Keychain, NSCoding and Swift
Sep 30, 2016, 4:30 AM
One of the strategies that we use at HelloFresh to reduce compile time, improve code reuse and overall codebase health is breaking our code…
Xcode & cross-platform frameworks
Aug 17, 2016, 9:47 PM
Recently I came across an article by Max Howell describing how he had setup PromiseKit project to use just a single target instead of a…
Douglas-Peucker algorithm
Aug 13, 2016, 6:49 PM
This post is a part of the series about shapes recognition. This post is also available as a part of a playground. When drawing by hand…
Freehand drawing
Jul 31, 2016, 12:53 PM
This post is a part of the series about shapes recognition. This post is also available as a part of a playground. Naive implementation of…
Dependency Injection (DI) in Swift
May 28, 2016, 2:24 PM
This post is a script of the talk that I’ve made on UIKonf’16. That was a first time for me to present on such a big conference and honestly…
Mixing optional binding and boolean expressions
Apr 28, 2016, 5:11 PM
There were few times already when I used this little-known feature of Swift in real code and it improved (in my opinion) readability a lot…
~= vs Range.contains(_:)
Apr 14, 2016, 6:50 PM
Today I was working on simple validators that we use for forms (backed by awesome Eureka) and had to implement validator that validates…
On package managers
Mar 29, 2016, 3:16 PM
I definitely agree with those who say that you should not depend on code from external source (meaning where and how it is hosted). You…
Creating a simple OS X app
Mar 24, 2016, 5:42 AM
OS X developers are kind of rare developer species. I don’t know about you but among my fellow developers there is only one who is doing OS…
Intermediate action segues
Dec 27, 2015, 2:54 PM
TL;DR - You can play with source code and example project here. Storyboards segues are very cool. They are very easy yet powerful. They help…
Properties of types conforming to protocols in Swift
Dec 25, 2015, 7:21 AM
In Objective-C it’s very natural to have a property of type that also conforms to one or few protocols. In Swift that becomes tedious cause…
Dependency injection with Dip
Dec 24, 2015, 2:20 PM
Note (15.04.16): This post is updated to reflect some of the latest changes in Dip. In some of my previous posts I wrote about using…