As usual, let's start with the celebration: My app business generated over 250,000 downloads on iOS and Android combined. Most of these installs can be attributed to my habit tracking app HabitKit. If you take a look at the graph below, you can see the rapid growth I've been experiencing over the course of the last couple of months. The winter season 2023/2024 has been really great for my app business and I'm super happy with how thing turned out.
I usually try to not set goals based on numeric values like revenue or downloads, but I hope to reach one million downloads in 2024. That would be a huge milestone for me! Just the thought of one million people browsing through the App Store / Google Play and giving my app a chance, make me super happy.
The current download ration across the platforms is 5:1 in favour of Google Play. The most obvious reason for this is that there are more people in general on this platform and that I rank much higher for relevant keywords in important countries (especially the US).
Android Widget Rewrite
This week I started rewriting the Android home screen widgets of HabitKit to use native capabilities to their best. The most important aspect is to support interactivity (checking off your habits right from the home screen) and responsiveness (you can resize your widgets on Android).
The first step was upgrading my project dependencies. Every time I opened Android Studio, it's nagging me to finally upgrade my Gradle version. I have to be honest: As a Flutter developer, I'm pretty clueless about all the native Android topics and things like Gradle, Kotlin and Maven are a huge black box for me.
I was really worried to get stuck for a whole day on tooling issue after upgrading, but by using the "Upgrade Android Gradle Plugin" assistant everything went smooth and I could continue working on real features. Thanks, Android Studio!
I started with brushing up my Kotlin and Android knowledge by watching a couple of videos about how to implement modern Android home screen widgets. I have to be honest: These videos were a little bit underwhelming and finding concrete and more detailed examples was a big challenge.
I decided to dive right in, without having great learning resources at hand. I started with rewriting the ConfigurationActivity
for the widget to accommodate the new data structure. That was pretty easy and didn't involve UI code. Then came the hard part. I tried to implement the widget design using the old XML approach but I horribly failed to render the consistency grid (which is the core of the widget).
I decided to contact a few Twitter-friends which are more proficient in the native Android world than me. I received a lot of great advice and even found a great learning resource: If you're a desperate Flutter developer (like me) trying to implement native Android home screen widgets for your apps, take a look at this amazing repository: https://github.com/Bartozo/Life-Progress-Android
Bartosz created an awesome learning resource by open-sourcing his app Life Progress! He made me realise that I should use the "new" declarative UI framework called Jetpack Glance. This will make implementing the UI easier, especially coming from Flutter and SwiftUI.
Hope I will make good progress next week!
User Feedback
When I programmed the initial version of HabitKit, I added a button labeled "Send Feedback" to the settings menu of the app. The functionality is really simple: It just opens the users' configured email client with a pre-filled email address and subject. I also added some information like the current device, app version and subscription status to the bottom of the draft email.
I recently reached a point where I get ~10 mails per day with feedback and feature requests for the app. I am really happy about all the kind messages and now - after I switched to full-time indie hacking this month - I will hopefully be able to implement a large chunk of it.
I asked on X how other app developers handle and organise feedback like this. I just gather it in a simple markdown file in my notes app, but some people created more elaborate systems. I also received messaged from four different people, stating that they are currently working on a better solution for handling user feedback.
Excited to see what these people will come up with. For now, I'm content with my basic approach of gathering ideas and feature requests in a simple note file.
That's it for this week, see you in the next one 👋