Software Engineer at Capital One UK
Today, Wednesday, 9 September 2020, I launch my first iOS app, Transcrybr on the App Store.
As a non-native English speaker, I’ve always strived to improve my English. I searched for an app to help me practice speaking and reading out loud on my own. And as all the indie app stories go, I couldn’t find one that suited my need. And I thought I could make one of my own. Here’s the first drawing of the app:
It was to address only two main issues, speed and loudness. I started off tackling the speed issue.
To work out the speed in words per minute, we’d need to know the number of words and time. The challenge was then boiled down to finding a way to get transcription in real-time. I ended up playing around with Apple’s Speech Recognition framework. After about five days of experimenting, and banging my head against the wall, this is what first working prototype looked like:
Left: this is a screenshot when I stress-tested to see whether the speech recognition could go on for long, and it survived 3000 seconds!
Right: After putting some SwiftUI knowledge into practice, and jazzing it up a bit.
I thought this would take me a while. But SwiftUI made it so easy to implement a meter. In a nutshell, create a circle, cut it in half, thicken the line, add a background color, then make another circle, put it on top of the previous one, add a different background color. I found this amazing tutorial from kavsoft.dev and it took me minutes to get the barebone meter view moving up and down along with words-per-minute rate.
Left: Adding up to the previous version. Right: Moved closer to the initial card-based design.
I have also open-sourced this part of my app. You can check it out here: https://github.com/landtanin/MeterView
Then came the part where I started showing it to friends and family. I initially advertised this as a speech training app. And the feedback was really positive. One of my friends actually used it to practice public speaking for a conference. Some really enjoyed seeing what they said showing on the screen.
I tried to reach out to some speech coaches to try it out. Their initial feedback was positive as well. They agreed some of their clients might find it useful. But eventually, not a lot gave it a try. Some who did didn’t come back to it.
But I really thought this was a cool app! I strongly believed there must be a place for it. Then came the idea of giving this to podcasters and Youtubers. The more I thought about it, the more excited I became. These are the people who could benefit from the app more regularly. Especially for podcasters, they record themselves speaking on a regular basis, they surely would love to know they’re not talking too fast or too slowly, and there’s no doubt they need transcriptions for their episodes.
But those thoughts would be just me losing in a daydream. The only way to know is to ask out. I posted about my app in a subreddit /r/Podcasting, described what it did and showed a demo. The result was overwhelmingly positive. A lot of them liked it and wanted to try the beta. The number of interested beta users went up to almost 100.
That gave me confidence that this project with commented out unit tests could deliver value to someone. I started gathering feedback from those podcasters and built features based on that. From some obvious ones that my app lacked like Bluetooth support to more ambitious ones like timestamp highlighting and tap on any word to start playing back saved recording.
Left: Whiteboard mockups for the save recording feature. Right: The ambitious features.
I’ve always been an introvert and haunted by the imposter syndrome. I built a habit tracker app on Android a few years ago, and it stayed in beta for almost forever (I’ve recently pushed it to the Play Store). Despite various positive feedback, I still felt like I was many months away from launching. I started the project in April, beta started in May, it was August, and I was still thinking about how to get more beta testers. My excuse would be, I wanted to find more users I can talk to so I can build what they truly want—not wasting my time making something technically awesome that no one finds useful. I started to run out of social media groups I could reach out to. Then I realized, after staying in beta for way too long, to find app users, I need to put my app on the App Store! What a brilliant idea.
This Y Combinator video about how to Plan an MVP has changed my perspective on launching. I was afraid of being embarrassed by problems and glitches on our apps. But launching is actually not special, especially for an indie app. Even for big companies, I’m sure 99% of people don’t remember when Twitter or Google launched. It’s unlikely that people will flock to App Store and search for a new app with funny spelling on the very first day. But that’s also how many successful apps started.
With that in mind, I decided to launch! The plan started with creating the landing page, in which, as a developer, I wanted to do it myself. I think I had too much building this landing page. I could have had it done in a much easier and quicker way using WordPress and the likes. I asked my girlfriend and my brother to resubscribe to my mailing list through the site about 10 times before I was satisfied with how it works.
The majority of time was spent on building promo media as well. And I had too much fun again with Transcrybr Twitter banner image.
After spending the past few weeks, ignoring feature requests and perfecting the existing features. Today I’ve finally launched 🎉
Every Sport Is a Team Sport
I don’t want to sound like I’m winning an Oscar, but not sure whether I will manage.
And to every beta tester who has tested and given me feedback.
This app fulfilled my dream of having an app on the App Store. And this is just a start!