Startup oslo

“Kulturhuset” is a new place in the startup scene in Oslo. It’s “free” and can be used by anyone to collaborate or work on different projects.

Infinite tree list

My notes on Infinite tree list

Protocol inheritance

My notes on Protocol Inheritance

Protocol ambiguity

How to differentiate protocol ambiguity

The ultimate xcode workflow

Spend zero time managing dependencies

Faster xcode with spm

How you can speed up compile times in XCode with Swift Package Manager

Spm and ci travis

My notes on Swift PM + CI Travis

Spm and nested frameworks

My notes on Swift package manager + XCode + Nested frameworks

Xcode and spm

Here is how you use Swift package manager in your XCode app projects

Carthage and nested frameworks

A few workflows concerning Carthage and nested framework

Two finger swipe

Notes on implementing two finger swipe for macOS


Notes about the Switch component

Playground and framework

Notes on adding external .framework files to playground.

Swift package manager

Notes on Swift package manager

Semantic versioning

My notes on Semantic Versioning


Some notes on swift .framework

Swift 3 migration

After manually migrating 35.000 lines of swift 2.2 into swift 3.0 code.

Dictionary reflection

Reflection and UnWrapping now has Dictionary support

Creating an app icon

Creating an app icon that can be use for macOS apps

Optimizing the style manager

parsing all the macOS Sierra GUI styles takes between 5-10secs on a 4-core 2013 MacBook Pro Retina. To make it faster


Case study of the ComboBox component

Dynamic method call

Reducing for-loops is a great way to maintain readability and maintain code modularity. “Data science” methods like map, flatMap, filter and reduce are awesome building blocks for functional programing in swift, but you can also build your own custom methods that do similar things.


Sorting things in swift


Case study of the Table element

El capitan style kit

The beginnings of the El Capitan StyleKit.

Live edit

In its simplest form you click a button and it loads a css and recursively calls setSkin on the UI.

Gradient panel

Case study of the GradientPanel element

Color panel

Case study of the ColorPanel

Color input

Case study of the ColorInput element


Case study of the TreeList

Cleaning up

Cleaning up the framework

Demo app

Notes about the demo app

Rubber band slider list

Case study of the RBSliderList

Frame anim and interaction

Debugging frame-animation and interaction

Easing research

My notes on easing

Rubberband motion

RubberBand-motion test:

Scroll wheel

My research notes on the scroll-wheel

Animation physics

A simplistic overview of motion physics


CVDisplayLink is a timer object that allows your application to synchronize its drawing to the refresh rate of the display. ==It’s highly useful when you want to combine animation with user interactions==, something that is not easily handled by transitions or stock animations.

Core animation

My Research-notes on core animation

Cascading style sheets system

This article will describe how the CSS system works.

Comparing anyobject

array.indexOf in swift only allows Equatables

The list

Case study of the List element

Check box button

Case study of the CheckBoxButton element

The event system

A simple event system that propagates events through hierarchical classes

The lever spinner

Case study of the LeverSpinner element

Text formating

Overview of text formatting

Hit testing sub views

Researching hit-testing of sub views

The radiobullet

Case study of the RadioBullet element

Floating algorithm

The floating algorithm takes care of floating the Elements to their position