Thirty days. That is all it takes to go from idea to live on both the App Store and Google Play -- if you have the right plan. I have done this multiple times with Flutter, and I have also watched developers spend six months on projects that never ship. The difference is not talent. It is prioritization. This playbook gives you the exact week-by-week plan I follow for every launch.
Before You Start: The Pre-Launch Checklist
Before day one, you need three things in place:
- A validated idea -- Talk to 10 potential users. If at least 3 say "I would pay for that," you have something. If nobody cares, save yourself 30 days of wasted work.
- Developer accounts -- Apple Developer ($99/year) and Google Play ($25 one-time). Apply now because Apple can take 24-48 hours to approve.
- A boilerplate or starter kit -- A Flutter boilerplate saves you the entire first week of setup. I use The Flutter Kit, which gives me auth, onboarding, paywalls, and Firebase integration out of the box.
Week 1 (Days 1-7): Foundation and Core Feature
Day 1-2: Project Setup
If using a starter kit, this takes 2-3 hours instead of 2-3 days:
- Clone the starter kit or create a new Flutter project
- Run
flutterfire configureto set up Firebase - Configure RevenueCat with platform-specific API keys
- Set up your design tokens (app colors, fonts, spacing)
- Verify the app runs on both iOS simulator and Android emulator
# With The Flutter Kit, day 1 looks like this:
git clone [your-kit-repo]
cd my_app
dart run setup # Interactive CLI configures everything
flutter run # App running on both platformsDay 3-5: Build Your Core Feature
Your core feature is the one thing that makes your app different. Not auth. Not settings. Not onboarding. The feature that solves the user's problem. Focus exclusively on this for three days.
Tips for building fast:
- Use hot reload aggressively -- Change a widget, see the result in under a second. Flutter's hot reload is your biggest speed advantage.
- Start ugly, make it pretty later -- Use Material 3 defaults. Do not spend time on custom animations or pixel-perfect spacing yet.
- One screen at a time -- Do not jump between screens. Finish one before starting the next.
- Use packages from pub.dev -- Do not build what someone else has already built and tested.
Day 6-7: Second Feature + Integration
Build your second most important feature and wire it into the navigation. By end of week 1, you should have a working app with two core features, auth, and basic navigation.
Week 2 (Days 8-14): Complete MVP and Monetization
Day 8-10: Remaining Features
Build any remaining features needed for your MVP. Remember: MVP means minimum viable product, not every feature you can think of. You need enough for users to get value, not more.
A good MVP for a subscription app includes:
- 1-3 core features that deliver the main value
- A clear distinction between free and premium tiers
- Settings screen with account management
- Basic error handling for network failures
Day 11-12: Monetization Setup
Set up your subscription products in both App Store Connect and Google Play Console, then configure them in RevenueCat:
- Create products -- Monthly ($4.99) and Annual ($29.99) is a safe starting point for both stores
- Configure in RevenueCat -- Create Offerings and map products from both platforms
- Build the paywall -- If using The Flutter Kit, customize the existing paywall template
- Test in sandbox -- Verify purchases work on both iOS sandbox and Android test mode
- Add entitlement gates -- Lock premium features behind the entitlement check
Do not overthink pricing. You can change it later with RevenueCat Experiments. Ship with a reasonable price and optimize based on real data.
Day 13-14: Polish Pass
- Test every screen in dark mode on both platforms
- Add loading states for all async operations
- Test with airplane mode (network error handling)
- Fix any layout issues on different screen sizes
- Customize onboarding copy and images
Week 3 (Days 15-21): Beta Testing and Store Prep
Day 15-16: Internal Testing
Deploy to TestFlight (iOS) and Internal Testing (Google Play):
# Build and deploy for iOS
flutter build ios --release
# Upload via Xcode or Transporter
# Build and deploy for Android
flutter build appbundle --release
# Upload to Google Play Internal Testing trackTest on at least two different devices per platform. Pay special attention to:
- Auth flow (sign up, sign in, sign out, delete account)
- Purchase flow (buy, restore, entitlement check)
- Push notification delivery and handling
- App behavior on different screen sizes
Day 17-18: Beta with Real Users
Share your TestFlight link and Google Play internal test link with 5-10 target users. Give them specific tasks to complete and ask for honest feedback. The three most important questions:
- Did anything confuse you during setup?
- Does the core feature solve the problem you expected?
- Would you pay for the premium version? Why or why not?
Day 19-20: Store Assets
Prepare everything both stores require for submission:
| Asset | App Store | Google Play |
|---|---|---|
| App icon | 1024x1024 PNG | 512x512 PNG |
| Screenshots | 6.7" (iPhone 15 Pro Max), 6.5" (iPhone 14 Plus), 12.9" iPad Pro | Phone + 7" tablet + 10" tablet |
| App description | 4,000 char max | 4,000 char max |
| Short description | Subtitle (30 chars) | Short description (80 chars) |
| Keywords | 100 char field | In description (Google indexes it) |
| Privacy policy | Required (URL) | Required (URL) |
| Support URL | Required | Required |
| Feature graphic | N/A | 1024x500 (required) |
| Data safety | Privacy Nutrition Labels | Data Safety Form |
Screenshot tip: Use a tool like Screenshots.pro or Previewed to create professional store screenshots with device frames and marketing copy. Good screenshots directly impact conversion rate.
Day 21: Iterate on Feedback
Fix the top 3-5 issues from beta feedback. Do not try to address everything -- focus on what is blocking users from getting value. The rest goes in version 1.1.
Week 4 (Days 22-30): Submit, Launch, and Market
Day 22-23: Final Testing
- Full regression test on both platforms
- Verify all placeholder content is replaced
- Confirm API keys are production keys (not sandbox/test)
- Test purchase flow one final time on each platform
- Remove debug logging and test mode flags
- Verify analytics events are firing correctly
Day 24-25: Submit to Both Stores
Submit to both stores simultaneously. Tips for faster approval:
App Store
- Submit Monday or Tuesday for fastest review (avoid Friday submissions)
- Include clear demo account credentials if the app requires sign-in
- Fill out the App Privacy section completely and accurately
- Explain any permission usage in the review notes
- Do not show the paywall before users see any value (Apple rejects this)
Google Play
- Complete the Data Safety form carefully (Google is strict about this)
- Use the pre-launch report (Firebase Test Lab) to catch crashes on different devices
- Set target API level to the latest required version
- Include a feature graphic (required)
- Start with Production track, not Open Testing (if you want immediate availability)
Day 26-27: Marketing Prep
While waiting for review, prepare your launch marketing:
- Landing page -- If you do not have one, create a simple page with screenshots, features, and download links
- Product Hunt -- Draft your PH listing. Schedule for a Tuesday or Wednesday launch.
- Social media -- Write 5-7 tweets/posts about the app. Show screenshots, share the problem it solves.
- Reddit / communities -- Find 3-5 relevant subreddits or communities where your target users hang out
- Email list -- If you collected emails during beta, prepare a launch email
Day 28-29: Launch Day
Once both stores approve (typically 24-48 hours for App Store, a few hours to 3 days for Google Play):
- Release the app on both stores
- Post on Product Hunt, Twitter, Reddit, Hacker News
- Send launch email to beta users and email list
- Monitor crash reports and analytics closely
- Respond to every review and piece of feedback
Day 30: Retrospective and v1.1 Planning
After 24-48 hours of real-world usage, review your analytics:
- What is the onboarding completion rate?
- What is the paywall conversion rate?
- Which features are used most?
- Where are users dropping off?
- What are users asking for in reviews?
Use this data to plan your v1.1 update. Ship the first update within 2 weeks of launch to show users (and the algorithms) that the app is actively maintained.
Common Reasons for Store Rejection
Here are the rejection reasons I have encountered or seen from other developers:
Apple App Store
- Aggressive paywall during onboarding -- Apple wants users to see value before being asked to pay. Show at least one feature screen before the paywall.
- Missing privacy policy -- Must be accessible from within the app and from the store listing URL
- Missing account deletion -- If you offer account creation, you must offer deletion. No exceptions.
- Crash on launch -- Usually caused by missing Firebase configuration or expired API keys
- Incomplete metadata -- Missing screenshots for required device sizes or broken support URL
Google Play
- Incomplete Data Safety form -- Google is increasingly strict. Declare every data type your app collects accurately.
- Missing target API level -- Must target the required API level for new submissions
- Deceptive app description -- Do not claim features your app does not have
- Missing feature graphic -- Required 1024x500 image for the store listing
The 30-Day Timeline with The Flutter Kit
Using The Flutter Kit compresses this timeline even further because week 1 infrastructure is already done:
| Day | Task |
|---|---|
| 1 | Clone kit, configure Firebase + RevenueCat + PostHog |
| 2-5 | Build core feature |
| 6-10 | Build remaining features, customize onboarding |
| 11-14 | Customize paywall, configure products, test purchases |
| 15-18 | Polish, dark mode, error handling, beta test |
| 19-22 | Store assets, screenshots, descriptions |
| 23-25 | Submit to both stores |
| 26-28 | Marketing prep while waiting for review |
| 29-30 | Launch and monitor |
Get The Flutter Kit for $69 and start your 30-day countdown today. The infrastructure is done. The templates are ready. All that is left is your unique idea.