New article on growing a UX tool

I wrote this article on the progress of the UX tool prototype:


The article was on the front-page of Hackernews for a while, yay!

Some where asking for a way to keep up to date and perhaps help out with testing. So I set up this form. The plan is to set up a simple website for the project and create a sandbox online prototype where people can get a feel for the potential of the tool.



Now you can import books in the My Picture Books app

Earlier this week I got an e-mail from Michel, who would like to use My Picture Books (MPB) in the class, but was missing an import feature. Also it was requested in the Google Play reviews.

Also, MPB is slowly gaining users, so more and more people would be helped by the feature.

Google changed the way stats are processed, so I can’t show a true lifetime chart. Currently not ‘installs by device’ but ‘installs on active devices‘ are used. Meaning users who opened the app in the last 30 days. For May 2, that number is 786.

So while I’m actually working on other things, like learning how to use FireBase, I thought I’d do this. I have a similar import feature for Idea Growr, so much of the code could be re-used. So in about 4 hours I had the update ready, and here it is:


Main menu now includes a settings icon. Where you can click a few dialogs to do an import. When importing the app looks at the names of the books to see if you might import a book you already have.

Screenshot_1493970454 Screenshot_1493970464 Screenshot_1493970469 Screenshot_1493970472 Screenshot_1493970478 Screenshot_1493970484

While I was looking at the MPB code, I found some room for improvement here and there, but I won’t let myself get distracted too much, since I feel that once I know how to use FireBase I’ll potentially be able to add online capabilities for all my apps.

So yes, it’s a bit strange that the export is on the main screen, but the import on the settings screen. But I’ll leave it like that for now :).

Like the update? Or if you have other feedback, let me know.

Download the free android app here. charity search engine just went live

The charities site I wrote earlier about just went live:


The short term goal is to let it be a global search engine for charities. Then in later steps I want to add more context, reviews and create an open API. You can read more about it here in ‘about’.

No charity reviews for now

In the screen-cast here I showed a version where you could sign up with your Twitter account and I actually have a version working locally where you can write reviews. But I decided that I was not ready for this yet. Live accounts requires moderation, being extra secure with your data and some form of customer service. At the moment I just don’t have the (continuous) time for that.

By first starting off as a pure search engine, I can slowly grow the content and quality of what will be the main feature for many users.

How you can help

My question to you: do you know great sources of data for Charitius? I’m using public data from UK, Australia and the Netherlands. I’d love to add more countries.

Also, I’d like to thank Giles from for helping out by providing a free hosting.


Update ‘Hier of Daar?’ – Using Custom View Group

As described in my last post, I’m working on an Android app that uses open data. For those interested in Android development, I’d like to share how I tackled a layout challenge I had. If fixed it in the latest update of the app ‘Hier of Daar?’  v1.10. Get it at Google Play.

The layout challenge


This screen is built out of multiple layers, where the white icons are on top of the blue-purple swirl. In order to place these icons on the correct spot and with the correct size, this was not really do-able with normal layout options in Android.

First solution; For one device only

To save time I side stepped the problem by only making it look ok for the Nexus 7 (2013). This allowed me to create a video of the app showing the jury how the app works. It’s somewhat acceptable, since the app is a proof of concept.

The big disadvantage being that hardly anyone can try out the app and give feedback without being distracted by how ugly it looks on their device..

Second solution: Custom View Groups

A View Group is a way to group different views. In other words; a layout. For instance, you can make use of LinearLayout or RelativeLayout. A custom View Group does the same thing; it tells the layout where to place the views and how to deal with resizing, etc.

While the custom view groups ( and compound views) still have many secrets for me, it was clear that I could create one that would solve my problem. So after reading some documentation and watching some videos I gave it a go.

Now I have one Swirl class that extends the ViewGroup and only has real code in the onLayout method. Here I place all the views and tell them what their position and size should be by providing a coordinate for their left, top, right, bottom. All values are relative to the size of the total view group.  What’s neat is that once you have the custom view group it will show in Android Studio as it would in the app.


The screenshot at the beginning of the post was of the Nexus 7, this next screenshot is of an emulator with a 480 x 800 px resolution and an older version of Android.


Up next

There is much that could be improved, for instance a back button would be nice, or making users aware that these white icons can be clicked, etc. But within the existing design, this solution worked and I’m happy with the improvement.

It would be nice to look more into custom views and see what could be improved based on that. Also, while I was researching I came across a video that explained how you can make a custom view that allows users to doodle. That could be nice to incorporate in my Idea Growr app.


Proof of concept for Hacking For Sustainability competition

I’m working on a project with Laura for Hacking for Sustainability.:

I’m doing development, she does design, we’re both responsible for concept.
You can find the proof of concept app here:

Because of this project, and a different project that resulted in 0 year old who’s living with us, all other projects are on pause for now.

What the project is about

The game tries to let kids explore open data in a way that makes sense to them. No maps, coordinates, tables or graphs. Instead it’s based on pictures of specific iconic locations, supported by audio and a simple question: “Here or there?”

With this app we like to show how open data can be used to create simple fun games, where teachers and parents can expand on the game content by simply adding pictures and audio and selecting a postal code.

The app comes with a single data set, but can be easily expanded on with many more in future versions. We see this as a potential international platform where lot’s of games and experiences can be played, customized and shared.

For now, it is a bit rough around the edges and very much a work in progress.  We made it specifically for the Nexus 7 (2013) in landscape.


We see that there is a huge amount of open data, and it’s not really finding it’s way to a lot of people in experiences they care about. So we want to bridge that gap by proving this platform.

As small and simple as possible

(Video is slightly old compared to state of app)

Obviously the app is for from the platform we have in mind. It’s a good example of starting with something as small and simple as possible. One data set, one super simple game, one way to play, etc.  The point is to make it easy for people to imagine that such a platform can exist and trigger ideas how this best should be done.

At the same time, we have something concrete we we can receive feedback on and improve, while learning. Also it fits nicely with my personal goals.

From a tech perspective

It’s a simple Android app. I wanted to use simple csv files for the data sets, that then load into the database. It made take a deeper look at different ORM’s.

How to lay out the views

At the moment I’m doing the layout with the new constraint-layout.

It doesn’t feel ready to be included in the stable release of Android Studio. Also it’s hardly documented. For instance try to figure out how to put a rules in the horizontal center of the layout. I’ll write the spoiler, because it doesn’t really say:

The design Laura made was not so conventional, so it made me look into custom view groups. For now I’m not using those, but it’s clear that this is right path forward if the proof of concept needs to look good on more than one device.

Later more..

Adding instrumentation tests to Idea Growr


At work, I’m learning more about how to use instrumentation tests with Android development. I’m now applying this to my Idea Growr app.

Tools used

These type of tests will ‘fake’ a user pressing buttons, and it’s quite fun to watch. I’m using Espresso to make the test scenarios, and Spoon for making a nice rapport on each test.

In the beginning I had the problem of not being able to take screenshots of pop-up windows with Spoon. So I’m using the Falcon library to make this happen.

Than I ran into the problem that Idea Growr supports android version with SDK 9 (really old), and the Falcon library has a minimum of SDK 10. So I needed to add a line in my manifest file to work around that:

At first that didn’t work, but then I found out that I should put it in a separate AndroidManifest file.

I’ve complained about this before, but I keep being surprised how things that seem like ‘core’ parts of Android require you to do some quite obscure Googling. But on the positive side, it’s quite easy to make test scenarios with Espresso.

Up next

One of the main goals is to make it easier to develop new features without accidentally breaking existing functionality. Also, I can much easier see how the app works on different devices (emulators).

I’m not there yet. Todo:

  • Add more tests
    I’ve made a couple of basic tests, like creating an idea with a note, but there is more to be done.
  • Figure out how to best test for mutiple languages
    There doesn’t seem to be something in Espresso for doing the same test for multiple languages. But it should be do-able
  • Figure out screen orientation changes
  • Add even more tests