HOMEMUSICVIDEOSBIO

Record Station

Building a React Native app for the first time as a hobby project and releasing it the Apple App Store

Record Station icon

I am a fan of music and I especially enjoy listening to full albums instead of just singles. It happens to me quite often that I hear a song that I like somewhere, and I'm very excited to listen to the whole album and discover the artist and their music. However, the music app that I use, Spotify, does not really have a convenient way of saving albums in a "listen-later" list. I can save albums to my library, but it's not really the same. And I had this issue for a while, but I just accepted it and didn't think much of it.

Recently, at work where I was typically working on our web projects, mostly with Vue and Nuxt, I also started to work on a React Native project and I thought I'd do a little course to get a fundamental understanding of mobile development and the framework before really getting into the production code. While doing that, this idea of mine came back to me and I decided I'd build an app for it, both for understanding things better by implementing fundamental things like routing myself, and for just the fact that I could finally have a product that I made that people could use. A simple app, not too complex, not too grand, just something that I could use myself and maybe others would find useful as well. So I got into it.

Where to start and how to proceed

As for many others, one of the biggest challanges early-on was simply not knowing where and how to start. For me --even though every once in a while I do have doubts about agile-- adopting an agile mindset for building Record Station was quite helpful. Instead of getting bogged down in endless tinkering and optimization, risking spending a lot of time on a feature (or a whole app for that matter) that people wouldn't use or losing my motivation in the meantime, I aimed to release early and gather user feedback to know which one of some other features I had in mind I should focus on. I believe this approach really helped me for both stripping away unnecessary complexity and getting something out into the world.

By the time the functionality for simply adding an album to your list and setting it as "listened", some other ideas started to emerge. Setting up notifications for the albums, linking to your Spotify account to track the progress automatically, integrating better support for multiple music streaming apps, continuing your journey with the app after you listen an album by logging your experience and perhaps even have a social hub where you see the experiences of other people. Maybe this app could be the Letterboxd of the music world??

I decided to select three features that I would build in their basic forms, release the app and start optimizing them based on how often people used each one. So I selected (1) searching and adding an album to your list, (2) setting-up a notification, and (3) logging your experience with it.

In the initial implementation process, finding some inspiration/model apps really helped me decide what a specific screen would look like. Some of these were Apple Music, Apple Health, Apple Mail, and Letterboxd. Yes, that's a lot of Apple. One of my goals working on the app was to make it feel as smooth and native as possible (and spoiler alert, I think for my next project I may look into Swift) and I assumed they knew what they were doing with their apps.

Screnshot of the Apple Mail app mail details screen
Bottom action bar from Apple Mail
Screenshot ot the Apple Music app search screen
Search box and list items from Apple Music
Screenshot of the Apple Health log your experience screen
Experince logging from Apple Health
Screenshot of the Letterboxd log your experience screen
Experince logging from Letterboxd

I'm not really a big fan of using too many tools. I often find myself simply using my notes app for ideas. Though for this one, I found Github issues to be quite useful. Using tags and labels, I organised my thoughts and tracked the progress of each feature. This allowed me to maintain a clear roadmap for development and I even started doing "themed releases" which really helped me focus on improving a specific feature for every release I made. And there really is a certain satisfaction that comes with implementing something, merging a commit/PR and closing the related issue which makes you want to do more of that! :)

If there is anyone out there who wants to get into app development or any new software development area. I would definitely recommend this approach.

Getting it out there

After getting the app to a stable place where I felt like it could be released, I first made a TestFlight built and asked a few close friends and family to test the app. After getting some useful feedback and making a few final touches, I finally released the app on App Store!

One funny thing was that I wanted to use the albums of my friends and some of my favourite artists in the App Store screenshots but I got a response back from Apple asking for some license and copyright documents for the usage of the cover arts and since I don't really know much about legal stuff, I ended up just using my own releases (yep, I also make some music :D) and Apple didn't really ask me to prove that they were indeed my releases and I was able to get through the review process without too much trouble besides this.

Once the app was released, I simply shared a few Instagram stories on my personal account, and made a few posts in related subreddits. Ever since I share a new Instagram story with every new release talking about what's new. I did not spend any money or real focus on marketing since I also don't make money out of this app. However, I am still interested in learning about marketing the app mainly because I'm curious about how one can grow an audience almost out of nothing. Currently (28/04/2024), Record Station has about 180 total downloads. So let's see how it goes :)