While starting to understand the power of Swift, protocols and associated types I also started running into the limitations of the current version of Swift (version 3). One of the more surprisingly limitations I’ve faced was when I got the Type may not reference itself as a requirement error. It’s actually a bit annoying as this is a very common thing to do in a project, but for some reason, this hasn’t been added to the awesome Swift language yet.

Alright, so it all boils down to recursive protocol constraints. Meh? One protocol referencing another protocol and vice versa. It…

The 1st of January 2016 I wrote down a list of things I would like to do in 2016. One of them being was that I wanted to go to an iOS conference. Luckily for me, I have an awesome workplace (Unwire) who were interested in helping me to go to UIKonf 2016. For each day at the conference I tried to write down my thoughts for any interested reader who considers going to an iOS conference or going to this specific conference.

Day 1: Social events

I signed up for the UIKonf Bike Tour because I remembered seeing some awesome pictures from the…

Swift 2.2 got released recently, and with the new version, Apple continues to show that they’re committed to this language. One of my favourite new features of Swift is the #selector() method, which can make our code more safe.

In Objective-C we have been used to be able to write:

SEL mySelector = @selector(viewDidLoad);

Which is awesome. Why is that? By having the @selector() method, we’re able to make the compiler have our back when referencing selectors. It might not be super clear, when we’re referencing methods from the Cocoa API, but what if we referenced our own methods:

Ever since Apple announced that Swift was going to be open source, I’ve been interested in the development of moving Swift to the backend. Being an old web developer myself who is still doing some web stuff, I found it exciting to be able to re-use my knowledge of a programming language across frontend and backend. Although I still believe you learn a lot from knowing multiple languages, you can’t deny that you would be more productive, and learn more about the language when being to able to use it across platforms. …

I recently got contacted by my old university, University of Copenhagen, where I got my master’s degree in Computer Science in the summer of 2014. They contacted me to ask if I would be interested in giving a talk at the university about my “career”. The purpose of the event was to inspire the new master’s students in their studies. I accepted this offer as I thought it sounded interesting, and also because I saw it as a good way to give back to the university. To kickstart the presentation I’m writing this blog post as I believe it will…

You might already be thinking, “didn’t the Apple Watch came out, like ages ago?”. The answer is yes, and no. Unless you’re one of the lucky ones living in a country where it has actually launched, you might have a hard time getting your hands on a Apple Watch. In Copenhagen, Denmark, unfortunately the Apple Watch has not yet launched (but will on the 25th of September) — however, a quick train ride to Sweden solved the problem. …

Because I like to get inspired by how others work, I decided to do a small list of the Xcode plugins I use daily. I use Alcatraz for handling my Xcode plugins. It works fairly well, except sometimes when Apple updates Xcode. The list of plugins in this post has been used with Xcode 6.4. Feel free to leave a comment if you use a plugin I did not mention.


Handy little plugin for changing font size when showing code to others or doing presentations. Just press ⌘ + or ⌘ - to adjust the font size of your editor.


TL;DR The source code can be found here: https://github.com/steffendsommer/TodaysReactiveMenu

I’ve been working with ReactiveCocoa the last 8 months and I’m overall very satisfied with the framework and the approach in general. I’ve been following the progress on ReactiveCocoa 3.0 (mainly focused around Swift) and when it recently hit beta-4, I decided to dig in.

First of all, I want to put out a disclaimer. I’m new to Swift and I’m definitely new to RAC 3.0. …

1. Let Xcode generate 1x, 2x and 3x PNG’s

With the launch of Xcode 6, Apple provided a way for us to store assets as PDF files. Xcode will then handle the creation of 1x, 2x and 3x PNG files at build time. Convenient, but may not always be the best solution depending on your assets (as highlighted here). The recent apps I’ve worked on had really simple assets without any shadows or gradients, and PDF files worked as a charm. Martin Craft has a fine description on how to get your started with PDF files in Xcode.

2. Color your own assets

Sometimes as a developer, you’re given the entire design for the…

I love reading about which apps people use, specially for iOS development. I figured it was time I shared my setup.



After refusing using AppCode many times, I finally ended up having AppCode as my main iOS development IDE. It took me some time getting use to it, but I really do feel that I’m saving time over Xcode.


Even though I’m a fan of AppCode, I still use Xcode for interface building and editing project settings.


My favourite git client for the mac.


My choice of diff tool. Worth the money? Yee.. kind of. It looks great!


One of…

Steffen D. Sommer

Technical leader from Copenhagen, Denmark. Excited about cutting edge technology. Love to travel and a big fan of boards 🏂🏄

Get the Medium app

A button that says 'Download on the App Store', and if clicked it will lead you to the iOS App store
A button that says 'Get it on, Google Play', and if clicked it will lead you to the Google Play store