My professional work history on iOS apps
I've worked professionally for 6+ years on a handful of iOS apps as a software engineer:
- PayPal (Business App) used Swift
- LinkedIn (Jobs tab & Company pages) used Swift + Obj-C
- Facebook (Messenger Community Chats) used C + Obj-C
My work was primarily within a full stack team / mobile team, leading product development in both
Objective-C, building features and frameworks (yes Facebook used
C... it was weird). I enjoyed the folks I worked with and the apps I worked on, but nothing beats building what you want and owning that from end-to-end!
Launching my first iOS app as an indie hacker
Introducing: Chatty Butler, my first iOS app created from scratch. Chatty is a robust, yet lightweight chat AI assistant app, that uses expert AI bots to help you get the most out of AI chat. For example, you can chat a relationship coach, which can guide you on how to communicate with your friend if you are going through a rough patch.
There are plenty of bots across categories:
- much more...
It's a whole lot of work...
It's been both an exciting and stressful process. Owning every piece of the app, getting it through Apple's App Store review, and marketing it with beautiful and minimal screenshots. The journey took me out of my comfort zone doing things that I usually am not a part of at my previous roles, which helped me grow and expand my skillset.
I wanted to share my approach, learnings, and failures in the space, to help others navigate the iOS app landscape. Thankfully, I've documented my day-to-day work over the past few months publicly on my Twitter: @bradleybernard.
Here is an example of me building in public (#buildinpublic): adding Sign in with Google to my iOS app. There are wayyy more too (error reporting and crash reporting integration, for instance), check it out!
Day one in June 2023
Choosing what to work on
I wanted to build out an iOS app, for the sake of establishing identity for my new software business VuxByte LLC. My initial goal for my company was to create a website and iOS app that looked impressive visually and delivered a great user experience, to gain credibility and brand trust, for both me personally and the company.
When I left my job at Meta in June this year, I nose dived into the hot AI space and decided to create yet another chat AI app. I focused my efforts on creating a chat platform that was fast, extensible, familiar, yet customizable. I knew it was a crowded space, but I went for it anyway. If people are already paying for it, sounds like I just need to stand out?!
Half way through development: August 2023
Estimates are hard...
As I was deep in development, I realized that I routinely under estimate how long things will take. When I create products, I use them myself as an extensive dogfooder to fine tune the experience. This helps me refine product flows, but by no means makes it perfect. I told myself on day one of the new project: 1-1.5 months of development time, then launch.
Was that the case? Nope!
Looking at my thinking back then and knowing what I know now, I realize there is so much time required for App Store marketing, app screenshots, App Store review time, and integrations of in app payments, that even if I did hit the original development time window I wanted, launch would have still taken quite some time.
As an indie hacker, I want to ship things fast, but as a perfectionist, I want things to be modern, clean, and pretty. I'm not a great designer (yet), so making it pretty takes a while... especially when you are working on an app that exists on iOS, iPad and macOS!
Launching my iOS app Beta
I had a MVP built in July that I showed to a few folks and then a few weeks later launched my iOS app beta in August through TestFlight. It was a pretty fun moment: I got sign ups near immediately! I shared with friends and family in one TestFlight group and had a shareable link for the "public" that I put on Twitter. Real people downloaded that I didn't know!!
Little did I know, there is a bot on Twitter that searches for TestFlight links and posts them publicly, called Departures. Here is Chatty Butler on departures. I was curious how the TestFlight spots filled up so fast, and it's likely that is part of the reason. TIL!
I upgraded everyone from Free to Premium during Beta so they didn't run into paid limits as a free user. I got incredibly useful feedback and bug reports from friends and family to help shape the app. Most were centered on polish and usecase, which helped me form my marketing material and fix edge cases that occurred. Overall I would argue get your app out there early and ask for feedback. You'd be surprised what you miss even when you work on it daily for weeks!
Launching on the iOS App Store & Product Hunt: Sept 2023
Apple's App Store Review as a new app
I didn't realize how much pain it was to get through App Store review as a new Apple app. Before this, I only had a Mac app that was extremely simple which got approved by Apple easily. This, however, was my first iOS app and it brought quite a bit of struggle with it.
The complexities of in-app purchases and recurring subscriptions brought me frustration during App Store App Review. I consistently found myself: confused with the tooling (App Store Connect), overwhelmed by the reference links for fixes, and frustrated at the turn around time.
I don't fault Apple for holding a high quality bar, I truly think it makes the Apple App Store a joy to use as a consumer, but at times it did feel like a lot, especially when you want to ship fast.
App Store Review stats
My overall experience before approval:
- App submissions: 11
- App rejections: 10
- First submission: Sept 1st
- Approved build on: Sept 20th
- Avg time between submission and review decision: 13hrs
I'd submit a build on a Monday, hear back Tuesday, submit a new build Tuesday, hear back Wednesday. It wasn't slow by any means, but it would take a day to get your review decision. Add that all up and you are in this cycle for days!
App approval finally & how to do it better
But with patience and frustration, I resolved all of Apple's worries and got approved!
Recurring subscriptions are HARD! Using RevenueCat helped a ton with simplification, but even then, they have an article on how to pass Apple's App Store Review. You need to check a bunch of Apple's boxes on pricing, auto renewal text, TOS links, yada yada... I mean I get it. You don't want to be shown something that is malicious and trick the user into paying, but I see many apps doing this anyways with remote configurable paywalls, so you can definitely game the system if you truly want to.
If I were to inform my future self on this process, to avoid the headaches of repeated rejections:
- Provide Apple with a demo account that is NOT premium
- Allow user to manage their purchases via
Marketing: App Store screenshots
Getting screenshots for your app is surprisingly complicated. I'm thankful there are so many tools out there to help ease the pain, but it took me some time to find the flow I like and I truly think there are a few more evolutions of it, until I really think it's the most productive use of my time and the tools go well with what I want.
I ended up using Sketch and purchasing a screenshot kit from Angle. I took screenshots of my simulator with all the settings set correctly (full battery, 9:41 am, full cellular and wifi). Brought those photos into Sketch and added text to get crispy marketing screenshots!
Launching on Product Hunt
I then scheduled my launch for September 22nd on Product Hunt. This is about ~2 weeks ago from now Oct 6th. I was hyped! I knew AI apps get more love on Product Hunt, so was expecting to get quite a few downloads. It was my first launch on a weekend, which is supposedly less competitive and crowded, since big companies don't launch on the weekend. It felt weird to work for a few hours on a Saturday, but it's what I signed up for.
Post launch: October 2023
Product Hunt launch results
I do think Product Hunt is a good platform to get initial users, but it also feels like a popularity contest. When I launched on a Saturday, for the first few hours before lunch, I didn't promote anything. Wouldn't it be great if Chatty Butler just got all these upvotes without any manual promotion?! Well, it doesn't work that way, sadly. Side note: why can't I be more popular?! Please share with your friends :)
So, I then messaged my friends, family, and beta users to give it some love. It then got some momentum that it wasn't getting before and overall it didn't do too bad. I always have super high expectations and hopes when launching something, but my past two launches have grounded me a bit for the better, to be more realistic.
It reminds me of the 80-20 rule: sometimes the work that you put in less effort for, will stick higher with folks. The 80% might go unnoticed and that 20% will shine. However you never know what that 20% will be... so keep on going!
Wrapping up my launch on Sept 23 recap:
- 65 upvotes
- #21 position
- 29 comments (divide by 2 since I respond to all of them)
Admins modified my launch..?!
Was it successful? I'd say yes. One thing that did bother me is they removed AI from my product launch headline..
Chatty Butler: Chat expert AI agents
Product Hunt modified title:
Super charge specific tasks and workflows with assistants
Product Hunt modified subtitle:
Super charge specific tasks and workflows with AI assistants
My app is extremely focused on AI, so this was a bummer, and I think did affect me quite a bit. I didn't realize this until after my launch finished. It's a little odd how they handle this without really telling you.
It's been a journey to say the least. I've gone through all the emotions: excitement, hopeful, frustration, sadness, and confusion. I don't think you can have it any other way. On the other hand I've learned so much and it will help me on the next go around when I create another Apple app on any of their platforms, looking at you Apple Vision Pro!
Top 3 things I learned:
- In app subscriptions: getting it right in your app code and for app store review
- App screenshots: go through a few tools to find your workflow, but this matters a LOT!
- Stand out with quality: my app exists in a popular category, but I believe (and I've heard feedback from others) that it feels great, is buttery smooth, and delivers on it's core value
Top 3 things I messed up on:
- App store review: using App Store Connect is a learning process and working successfully with reviewers is a skill
- Quality takes time: I put a bit of pressure on myself to release it fast, but it didn't help much: as much as I want to ship fast, I'll be more real with myself next time on quality vs time tradeoff
- Marketing a mobile app is multi-faceted: You'll need a landing page, an optimized App Store page (SEO becomes ASO), and beautiful app store screenshots with nice looking device frames
I hope you enjoyed this long form article! Please drop a follow on Twitter @BradleyBernard to stay up to date with Chatty Butler developments and other projects I work on as I build in public!