2
3 Comments

I'm about to ship my first "real" app – here's what I've learned so far

First time sharing something here. As anything "first", it's tough, but I hope it'll be useful to some of you.

I'm an iOS Engineer. This year, I started my journey not just as engineer, but as an "app maker". The first app that I'm shipping (Ask Yourself Everyday) was born from a simple idea - I wanted to ask myself a set of questions everyday, to understand myself better and see how my life changes over time. I started developing the app in August, and I plan to release it by the end of October.

Here's what I learned so far (very briefly), as a first-time indie app developer:


Shameless plugging: you can sign up for a beta here: https://beta.askyourself.app.
Thanks for your support!


1. App development is hard; it takes time

Oh I wish making a fully-featured app was simply a one-week effort. But it's absolutely not, and it's okay. Especially when working after hours & on weekends. It's hard, and remember: from the outside, it always looks like it's "simple". It never is, and don't blame yourself for it.

2. Launching is your #1 priority

This one was tough. My app is very statistics-focused. After you use it for just about two weeks, you start to get valuable insights - you can see in what direction your life is moving ("Oh, my sleep has gotten 14% worse, huh"). And I know for a fact that my code is not that well optimized to handle all those calculations. I've simulated two years of data and the app is super slow when dealing with that. It's a problem and it'll need to be solved, but after I spent two days trying to find a solution for it, I had to say to myself that this was not my #1 priority, and I should move on. These performance issues will not be visible until at least month 4, and I'll have enough time after the launch to fix them.

Understanding that I should be laser focused to make the product launch-ready was huge for me. It also helped to triage the features I had in mind – "is it actually needed for 1.0, or can it wait?". Usually, the answer is the latter.

3. Optimize your development process for speed and flexibility

I had to understand than when developing a first version of the mobile app, everything is in flux. Yes, I could spend 4 hours perfecting the architectural patterns of this one screen, but then what if I decide to completely change it a few days later? Make yourself used to building stuff fast and changing stuff fast.

I can optimize, refactor, cleanup the code later, once the "hot" development phase is over. Right now, a lot of my code (especially UI code) is messy, but it's also very easy to change – exactly because it's messy.

4. Get early adopters, well... early

I started sharing my app with my friends when it was absolutely bare-bones. It was pretty much two working features and a big "this screen is in development" banner for everything else. But once it's out there, I started to get feedback, and I was able to iterate much faster too. I also started to understand exactly what was missing and what I needed to focus on. Many people started asking me "hey, are there some templates or suggestions for questions?", so that's when I knew that this should be included in 1.0.

My channels of distribution were:

  • Sharing app development process in my Instagram stories and then sharing the TestFlight link once I had the first beta
  • Sharing the TestFlight link on Twitter
  • Uploading the TestFlight build to Airport (https://airport.community) - this one is amazing. I was able to get over 100 early adopters with Airport. Highly recommend.

5. Launching a product is a totally separate thing

Here's what I was thinking when I started working on this app (wrong):

"Okay, so developing this app will be 98% of work, and then I'll just have to press two buttons to launch it and that's it"

Here's what it's actually like:
Project A: developing, testing, finalizing the app itself
Project B: launching the app

Yup, launching is a totally different thing (kinda obvious, I know). You really should treat it as such. You should understand that after you've finished developing the app, now you're in another game. You're not anywhere near done. I mean, sure, have your cake and celebrate when your development phase is over, but now there's more work to do.

Just be prepared for that. It's actually pretty fun too.


You can sign up for a beta here: https://beta.askyourself.app
Thanks for your support!

  1. 2

    Thanks for sharing this! Will try your app for sure, seems like a good way to track things from a macro perspective.

    1. 2

      My initial feedback after trying your app:

      1. Timed notifications - since users will be answering the questions at night it'd be helpful if could choose what hour I get my reminder. Some people finish their day quite late so if you remind them at 7 p.m there's a high likelihood they'll forget to answer the questions.

      2. Community Suggestions - when adding a new question there's the following option: "tap here to explore our community suggestions". Could you enlarge this? The text is really small and it's easy to miss because of the dark background. Making this option pop-more will help onboard users more seamlessly.

      3. Gamification - perhaps add some simple badges that people can earn after they've answered daily questions on a streak of "x" amount of days. This will help retain users and also give some sense of accomplishment regarding self-care.

      Cheers 🍻,
      Daniel

      1. 2

        Hi Daniel! Thanks for much for the feedback, I put it all on my list 👍

        1. By default, the daily notification arrives at 9:15pm, but yes, adding a customization is in my backlog
        2. Good call! Will do
        3. Yup, gamification is in the works!
Trending on Indie Hackers
I talked to 8 SaaS founders, these are the most common SaaS tools they use 20 comments What are your cold outreach conversion rates? Top 3 Metrics And Benchmarks To Track 19 comments How I Sourced 60% of Customers From Linkedin, Organically 12 comments Hero Section Copywriting Framework that Converts 3x 12 comments Promptzone - first-of-its-kind social media platform dedicated to all things AI. 8 comments How to create a rating system with Tailwind CSS and Alpinejs 7 comments