👋 Hi, I'm Roel

Photo of Roel in his garden holding up red berries

I am a product designer living in the Netherlands, interested in how my design work can contribute to a more sustainable way of living.

Latest blog posts

February 1, 2023 21:20

Review: the Menu

⭐️⭐️⭐️⭐️ / 5

The Menu is a great movie that is a smart parody of Chef's Table mixed with a good thriller story ala Knives Out. A young couple goes to an exclusive restaurant on an island. The high-end restaurant bullshit bingo starts right from the beginning. You can watch it on Disney+

Watch the Menu via Disney+
February 1, 2023 21:20

Review: Puss in Boots: the last wish

⭐️⭐️⭐️ / 5
Puus in Boots: the last wish is beautifully animated. Every scene with fast paced action switches to a comic book style with lower frame rates and popping colors. And the animation of puss is really cute, when he switches from humanlike to cat like behavior is really funny. The story is a little weak however, and I altough i giggled every now and then, it wasn't really funny either.
Watch via Google Play
January 30, 2023 21:29

Roel radio on Spotify

Now that my first song is released on Spotify, they created a "Roel van der Kraan Artist Radio" playlist. And it is awesome! Just of the one song that I've uploaded, the Spotify algorithms created a list of nice instrumental electronica, including some artists that I absolutely love, like Jamie xx, Plaid and Weval. Give it a listen!
Listen to Roel van der Kraan radio on Spotify
January 28, 2023 17:02

New song: Desert Nights

For a Metapop contest I created a song using Hypha, a new synth from Native Instruments. In this song I use 17 (!) instances of that synthesizer. It produces nice organic sounds like organ and bell sounds. Only the drums in this song are made with another instrument. Listen on Spotify:

Or via YouTube:

Listen to Desert Nights on Spotify
January 24, 2023 16:23

New song: Major Lazer - Koo Koo Fun (rule remix)

This was a great opportunity: Meta Pop hosted a remix contest for Major Lazer's "Koo Koo Fun" track! The original song has a really relaxed vibe that I tried to keep. The stems (that are the individual instruments and vocals for the track) were a lot of fun to work with!

Listen Koo Koo Fun (rule remix) on Metapop
September 6, 2020 17:41
January 24, 2023 15:57

My struggles with NSPersistentCloudKitContainer

Read about my struggles with the new NSPersistentCloudKitContainer and how I got it to work in my app Hippo.

This is going to be a bit of a technical post.

During WWDC 2019 Apple announced a super simple way of adding iCloud synchronization to your app with NSPersistentCloudKitContainer. The promise is great: simply switch your CoreData stack from a regular NSPersistentContainer to NSPersistentCloudKitContainer and voila, your app will sync 🥳.

For the basic setup, follow this tutorial or check Apples documentation.

While this basic premise does hold up, I encountered quite some practical issues while adding iCloud sync to my app Hippo. To be honest, it drove me kind of crazy, so much that I almost ditched iCloud sync to move on to something easier 😬

I thought to share some of my biggest struggles here, maybe it will help you with getting iCloud sync into your app!

Issue 1: where is the existing data?

Probably your users will have some data in the app after you add iCloud sync. But NSPersistentCloudKitContainer did not sync existing to iCloud from my app initially.

The issue was that the original NSPersistentContainer did not have history tracking enabled. Thus only newly created objects or updated objects would be pushed to iCloud.

To solve this I implemented an ugly work-around: I've added a isSyncedToiCloud flag to all CoreData entities which defaults to false. Then on launch, the app checks if there are entities that havent been updated and will flip this flag.

This will trigger NSPersistentCloudKitContainer to push the entities to iCloud.

Issue 2: crash when adding an entity to the model

This issue took me forever to debug.  When you add a new entity to your model, you could get these kind of errors: Constraint unique violation, reason=constraint violation during attempted migration It turns out that this is a bug in NSPersistentCloudKitContainer on iOS 13.

New models should be ordered alphabetically and be added at the bottom of the list 🤦‍♂️. My solution was to prepend a "Z" to the new entity name, but this is quite an ugly solution.

This should be fixed in the latest iOS 14 beta's, but while you support iOS 13 you'll need to be careful with naming new entities.

Issue 3: how to let users enable/disable iCloud sync

Most apps allow users to enable and disable sync in the apps settings screen. Or sync is a premium feature only enabled if you have a subscription.

I tried to implement a setting switch to disable iCloud in Hippo from the app, but it's rather impossible to implement with NSPersistentCloudKitContainer.

First of all, there is a recommended way to turn off syncing, by setting cloudKitContainerOptions to nil. Be sure to do this before you call loadPersistentStores.

But, you will run into issues with this code. Since the container will only be loaded once when the app starts, and its contexts will be used in various views and background processes in your app, it's not simple to change this while your app is running.

I tried for quite some time to get this implemented but gave up after I got a reply from Apple. I now point my users to their iCloud settings in the Settings app to enable or disable sync. Not ideal, but I have no clue how to do this otherwise.

iCloud in production

I've submitted Hippo 1.4 with NSPersistentCloudKitContainer to Apple today, hopefully my users can enjoy the benefits of syncing, and I can move on to another feature 😁

January 2, 2022 17:05
January 23, 2023 11:56

The tools I use

This is a list of tools I use to run this website, work on my app and focus.

Website

SimpleAnalytics

A privacy friendly alternative to Google Analytics, SimpleAnalytics doesn't use cookies and has no personal tracking, I love it's simplicity.

Sign up via this link and get one month for free!

DigitalOcean

I used DigitalOcean to host a large scale restaurant website, and now I'm using it to host this site, my statistics server and a database that records all my sensor data.

Sign up via my personal link and get $100 in credits to spend.

DigitalOcean supports one-click server setup for a lot of different tools, including Ghost (see below).

Ghost

Ghost is a nice and simple CMS for blogs and sites like this. Also supports paid subscriptions and newsletters.

Productivity

Things 3

The best task manager I've used, and I've tried a lot! I love the way Things handles dates and allows you to postpone tasks till someday.

Notion

I use Notion for my more structured notes, like feature roadmaps, plans, weekly reviews. I love the ability to link notes and easily create pages.

Readwise

To keep my book notes in sync with Notion I use Readwise, it takes the highlights from my kindle and bundles them neatly. I also like the review feature where Readwise gives 5 highlights randomly. It makes me revisit sections of books I read and remember the takeaways.

Sign up for Readwise and get one extra free month!

Evernote

While Notion is nice for structured note taking, I still use Evernote as a document archive. It contains most of the receipts, letters, contracts. Evernote's search is fast and fluid and makes it a breeze to retrieve documents when I need them.

February 14, 2019 16:25
January 23, 2023 11:56

Starting my own indie app company

Ever since the web started I have been creating websites and apps. I built websites for local business in my hometown and ended up working for the largest restaurant website in Europe.

But in the recent years I switched from a technical/UX to a product management career. Being a product manager meant a lot of coordinating, planning and managing. Although that was a lot of fun and I released some great products with my team, I wasn't actually building anything myself anymore.

In the past months I had time off to reflect and look ahead. And I decided to get my hands dirty again and go back to programming and designing. I want to create stuff! I want to work on projects that I find useful and I think can be useful to others. So I'm going to build my own product. Which is exciting and super scary at the same time!

My goal

I'm starting an indie app company. The goal of this endeavor is to refresh my design and programming skills which I have neglected in the past years.

The plan

I quit my job so I can focus on this full time. I have given myself 6 months to see if I'm going to be successful at indie making. In this time I want to design, create and ship an iOS app. To earn money, the app will have some paid component, either a subscription or a premium feature set.

My aim is to have my first project in the app store by the end of March.

I trust my design, programming and product management skills but I'm less confident in my marketing abilities 😁 So I will also work on building a following and reach on different social media, blog about my journey on this site and recruit/interview possible customers.

My first project

The first app I'm creating is a note taking app with a little twist, I'll share more about this idea in a future blog post.

January 20, 2020 0:00
January 23, 2023 11:56

My 2020 goals

Last week I  met with a group of friends. One of our traditions is to review the previous year and commit to goals for the next. It is always nice to reflect together. But the best thing is to share my resolutions with a group and get honest feedback plus create accountability over the year.

My 2020 resolutions (details below):

  • Live a more sustainable life
  • Share more in public
  • Try some hobbies that don't involve a computer or TV
  • Relax

Live a more sustainable life

I think we should all try to do as much as we can to limit the damage caused by climate change. And while I'm already doing my best, I see some things I can do this year to improve even more.

In the next months I will try to:

  • Limit gas usage in my home by repairing the solar water heating we have and repair broken doube glass panels
  • See how we can generate our own electricity with solar panels
  • Make our garden more bee and butterfly friendly

Share more in public

I am not sharing a lot on the web. I think it would be great to share more, it will help me put my thoughts in writing and to get more attention for my sideproject.

In the next months I will try to:

  • Write a blog once a week (this is the first :)
  • Send a newsletter once a month

Hobbies without a computer

I have a lot of hobbies but most of them involve my iMac. Creating music, working on my sideproject, playing games. I think it would be good for me and my stiff shoulders to try different things that don't involve sitting.

In the next months I will try some hobbies without a computer. My shortlist: baking, cooking, hiking, gardening, playing guitar and piano.

Relax

I have a hard time relaxing. It's hard for me to sit still and do nothing. Or to do something and relax. It will be good to take some more time for myself and with the people I care about.

In the next months I will:

  • Go to the sauna a couple of times
  • Plan trips with my boyfriend
  • Plan dinners / drinks with friends
  • Celebrate my birthday

January 23, 2023 11:56

Mac Mini with M2 Pro chips

Just a month after I got my Mac Studio, Apple released a refreshed Mac Mini with M2 Pro chip. This was the machine I was hoping to buy (but Apple didn't make a mac mini with a pro chip until now). Guess I should have waited a bit longer..

Choose your Mac mini.