πŸ‘‹ 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

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.Choose your Mac mini.
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

‍

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.

‍

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.

‍