I build apps also for Apple's platforms, but I use Android as my daily driver. App Store Connect (I'll call it ASC in the rest of the story, for brevity) makes it very difficult to access data on the go: the "trusted browser" is never trusted forever; you need to wait to get the SMS for the OTP code, and navigating ASC is complicated. So, I can boost (or drop :) ) my morale for a new user review only when opening my Mac for work or when I can reach my iPad or my iPhone.

What PomoStats does

PomoStats gives a panoramic view of the entire app portfolio with all the metrics that I think are useful to follow: downloads, proceeds, active devices, MAU, DAU, ratings, and movement over time.

The home screen is the "command center" to quickly check how the apps are doing:

  • there's a list of all the Apps, with a quick peek at the rating and the MAU, for a quick glance without opening the details;
  • there's a list of the reviews of all the apps, so it's possible to quickly view everything from the same place;
  • there's a recap of the proceeds grouped by the latest day, 7, 30, or 90 days, to know how the business is going.

Each app opens into details, showing interactive charts and information about downloads, sessions, active devices, crashes, sales, territories, conversion, proceeds, and ratings.

Anyone can explore the complete product through a built-in fictional sample portfolio of apps, so a user can get a sense of what to expect without signing in immediately with the ASC API key.

Note: The attached screenshots and the video show data from the fictional sample portfolio of apps mentioned above. This demo mode was also useful and essential for the Google Play Store review team, so they can review the app's functionality.

Privacy by architecture

PomoStats has no account or backend. The App Store Connect private key is encrypted with Android Keystore, excluded from backup, and used only for direct requests from the device to Apple.

Monetization that follows portfolio value

The free tier supports only one app. The premium plan, offered with a yearly subscription or a lifetime purchase, removes this limit and gives access to all the apps belonging to the ASC account.
The core product is still useful before purchase for hobbyists or developers with only one published app, while the upgrade scales with professional needs.

How it was built and challenges

PomoStats uses Kotlin Multiplatform and Compose Multiplatform, and currently it's only available on Android, but it's already ready for a possible future expansion on iOS as well.

The difficult part of the project was turning Apple's irregular asynchronous reports into something that can easily be read in a mobile app. Another challenge was designing the onboarding flow to provide a great user experience, because the sign-in requires a lot of information retrievable from different parts of the ASC console. Moreover, ASC statistics are not available immediately, but you need to make a request, and data will be available after some days - this required a careful design of the user experience to not have a completely useless app before the stats are available.

What's next

Next comes learning from real developers: which statistics make sense to show, if data are missing, if data are unnecessary to show, and whether annual or lifetime ownership best matches this niche. If there's enough traction, I will consider making an iOS client since the codebase is already with Kotlin Multiplatform and Compose Multiplatform.

Fun facts

Pomo means Apple in the Venetian dialect, the region where I'm from. The name is a reference to remember my hometown, and it's a perfect fun name for this kinda app.

Built With

  • android
  • app-store-connect
  • compose-multiplatform
  • kotlin
  • kotlin-multiplatform
  • revenuecat
Share this project:

Updates

Submission history