Already #27 of this weekly log where I try to summarise my week. I usually start with some good news or a major milestone that I've hit that week. But I wasn't able to find something remarkable for this week, so let's do something different. I will share something negative that happened and recently bothered me a little bit.
Revenue growth of my app business slowed down immensely. After a crazy jump last winter I reached a plateau and in the last couple of days MRR is even going down a little bit (which means churn is higher than new customer acquisition).
In terms of ranking on the App Store or Google Play nothing changed, so I'm sure that this is a seasonality thing. Less people are looking for a habit tracker in April than in December when the new year is right around the corner. That's an interesting new challenge in my app developer journey: Having to endure stretches of declining revenue while keeping motivation high to build new stuff. I'm sure the next winter season will come and I will do my best to keep momentum up.
Android Widgets Progress
This week I made a ton of progress on implementing the native Android widgets of HabitKit with Jetpack Glance. I also encountered some new challenges that I have to face though:
After being forced to upgrade my development environment to the latest Android Studio release (see the image above), the linter showed my a new warning: The GridCells.Adaptive
function that I'm using to layout my LazyVerticalGrid
seems to be only working on systems running at least Android 12 (API level 31).
This explains the messages I got from some beta testers last week: They complained about the broken UI of the widgets although I couldn't reproduce their issues on my testing devices (which run above Android 12 of course). After checking back with them it was confirmed that they actually run Android 10 and 11.
I did a quick check in the Google Play developer console and saw that 20% of my user base (in terms of installed devices) is running below Android 12. Crazy that so many people don't care to update or are stuck on the OS because their device doesn't support higher versions. Definitely a huge advantage when developing for iOS which has a much better adoption rate.
This is a huge bummer for me, because that means I have to develop some kind of compatibility mode. Without this function there is simply no way to build the consistency grid with Jetpack Glance or other existing Android remote view technologies.
Another challenge while building the widgets: I recently learned that some Android versions offer an option to customise the grid size of the home screen. Absurdly, you can even choose a 2x2 grid which makes app icons and widgets crazy big. Of course this also breaks the UI of my widget code. Will have to do some debugging for this next week, but I'm sure I will solve this soon.
That's it for this week, see you in the next one 👋