Releasing My First App on the App Store: Lessons from Lumeni
After months of building Lumeni—a Pomodoro timer app with subtle gamification—I finally hit "Submit for Review" in App Store Connect. I was nervous. I'd heard horror stories about rejections, multiple submission cycles, and weeks of back-and-forth. But 48 hours later, I got the email: "Your app is ready for sale."
The Build-Up
Lumeni started as a side project to help me stay focused during long coding sessions. I wanted something simple: a reliable timer, local notifications, and just enough visual feedback to make completing sessions satisfying. SwiftUI + MVVM, Core Data for persistence, StoreKit 2 for a one-time premium unlock. Nothing too complex.
The app worked on my device. TestFlight beta testers (mostly friends) said it was solid. I polished the UI, added some space-themed visuals, and started thinking about actually shipping it.
The Preparation
Before submitting, I spent a week doing research. I read the App Store Review Guidelines cover to cover. I checked common rejection reasons on forums and Reddit. I made a checklist:
- ✅ Privacy policy URL (required for StoreKit apps)
- ✅ App description that clearly explains what the app does
- ✅ Screenshots showing core functionality
- ✅ Notification permissions requested at the right time (not on launch)
- ✅ Background timer behavior that doesn't drain battery
- ✅ Tested on real device, not just simulator
The background timer was the trickiest part. I knew Apple cares about battery life, so I designed it from the start to be lifecycle-aware:
- Store session start time instead of running a continuous timer
- Calculate elapsed time on app resume using wall clock difference
- Only schedule local notifications for session completion
- Cancel notifications properly on pause/reset
This architecture paid off—no issues during review.
The Submission
Filling out App Store Connect was more tedious than I expected. Screenshots, descriptions, keywords, pricing, age rating. I spent an entire afternoon getting the metadata right. I wrote the app description assuming users know nothing about Pomodoro technique—explaining what it is, what the app does, and what makes it different.
I submitted on a Tuesday afternoon. The status changed to "In Review" the next day. Then I waited.
The Wait
Those 48 hours felt longer than the months I spent building the app. I kept refreshing App Store Connect. I second-guessed everything. Did I miss something? Was my privacy policy URL correct? Did I test all the edge cases?
I got the approval email on Thursday morning. I was genuinely surprised it went through on the first try.
What Went Right
Looking back, here's what I think helped:
-
I read the guidelines first. Not after a rejection—before submitting. This let me design the app with compliance in mind from the start.
-
I tested on a real device. Background behavior, notifications, and app lifecycle work differently than in the simulator. Catching issues early saved me.
-
I thought about UX, not just functionality. Requesting notification permissions at the right moment (when starting first session, not on launch) shows you care about user experience.
-
I was explicit in my descriptions. Assuming reviewers (and users) know nothing about your app forces you to be clear and thorough.
-
I kept it simple. Lumeni does one thing well: Pomodoro timers. No complex features that could introduce edge cases or confusion.
The Reality Check
Getting approved on the first try felt great, but it's not the norm. Most apps go through at least one rejection cycle. I got lucky, but I also prepared thoroughly.
The review process made me think about edge cases, user experience, and app lifecycle in ways I hadn't before. Even though I didn't get rejected, the preparation process itself was valuable.
What I Learned
-
Preparation matters. Reading guidelines, testing thoroughly, and thinking through edge cases before submission saves time.
-
Real device testing is non-negotiable. The simulator is great for development, but it doesn't catch everything.
-
Metadata is part of the product. Screenshots, descriptions, and keywords matter. Spend time on them.
-
Keep it simple for your first app. Do one thing well. You can add complexity later.
-
The review process isn't as scary as it seems. Apple reviewers are thorough, but they're also fair. If you follow the guidelines and test your app, you'll be fine.
The Aftermath
Lumeni is live on the App Store now. It's not perfect, and I'm already planning updates based on user feedback. But shipping something real—something people can actually download and use—feels different than just building it.
Seeing that first download notification was surreal. Someone I don't know is using something I built. That's the part that makes all the preparation worth it.
If you're working on your first iOS app, my advice: prepare thoroughly, test on real devices, read the guidelines, and don't be afraid to submit. The worst that happens is you get feedback and improve.
Lumeni is available on the App Store. Built with SwiftUI, Core Data, and StoreKit 2.