
iOS
Trends-insights
18 min read
June 10, 2025
Updated: May 26, 2025
12 min read
When building a mobile app as an indie developer, finding a sustainable business model is essential. In today’s app economy, this typically means monetization through in-app purchases, particularly subscriptions. Despite growing subscription fatigue among consumers, this business model remains viable but only if you can demonstrate ongoing value to compete for those subscription dollars.
During development of my weather app Solarc, I’ve experienced three different approaches to subscription management: Apple’s StoreKit, RevenueCat, and finally Adapty. This journey taught me valuable lessons about subscription management that I want to share with other developers.
In this article, I’ll walk you through why I initially chose StoreKit, the limitations I encountered, and why Adapty proved to be the superior RevenueCat alternative for my specific needs. My goal is to help you avoid some of the pitfalls I encountered, enabling you to integrate subscriptions faster and more smoothly in your own apps.
When I first began work on Solarc, it was a different app than it turned out to be. I was initially focused on providing a timezone converter so users could know the time of day and whether the sun was shining in various locations. This was also the beginning of the COVID pandemic and my goal was to build and ship something quickly.
As I settled on my monetization plan, I decided to use StoreKit to handle subscriptions. Due to a variety of reasons (and the impact of COVID overall), I didn’t actually ship the app in 2020.
I picked development back up in 2021 and by then, Apple had shipped the StoreKit 2 updates that made it much easier to use. I implemented a very plain-looking paywall and used StoreKit 2’s improvements to deliver a straightforward value proposition for users.
A coding strategy focused around StoreKit might be right for you if:
If you use this strategy, I’d suggest creating a persistent manager to keep track of your products and manage the purchase process. This will help prevent IAP-related code from proliferating throughout your views and general codebase. It can also help ease the transition should you later decide you want to move to something like Adapty (more on that later).
Your needs for subscription management may outgrow this approach, either during development or after launch. Personally, as my app got more complex (I shifted to offering weather data alongside sunrise/sunset times), I wanted to have a more sophisticated approach to showing and managing my subscription options. This led me to researching revenue management software tools.
At the time I made this decision, RevenueCat was a tool I had heard of and even worked with in my day-job. It seemed to match my needs, and it was simple enough to implement in my day-job project, so I thought I’d give it a try here as well.
The main advantages of using a toolset like this over StoreKit are the following:
Because I had already built a standardized way to manage my subscriptions in my code, I was able to adapt it to use RevenueCat instead. I converted my native paywall to use products from RC’s SDK and due to the subscription manager, most of my main app code was unaffected by the transition.
I shipped version 1.0 of Solarc in mid-2023 and I was quite happy with what I had built technically. The problem lie in the marketing and the case I was making in the app to convince users to convert. Even great apps are limited by their approach to user acquisition. These limitations led me to research other RevenueCat alternatives that might offer more sophisticated tools for optimizing the subscription experience in Solarc
After launch I worked on an update to Solarc throughout most of 2024. The advantage to making all the decisions is that you can judge your work by your own standards. The downside of course is you don’t have anyone to tell you “it’s good enough, ship it now”. The update I had planned for the beginning of 2024 ballooned into a pretty major overhaul of most features within the app. I think Solarc is much better for it, but I did spend quite a bit of time making changes.
As the product evolved, I developed new ways to showcase value and try to convince users the upgrade would be worth it. Along the way it became clear that I would need to show paywalls in multiple locations and that they would need different designs to appeal to users in the right way. Creating these paywalls natively would be a lot of work.
After researching various RevenueCat alternatives, I learned about Adapty and their Paywall Builder feature. It’s a no-code editor for creating and deploying paywalls instantly, assuming you’ve got the Adapty SDK installed and configured in your app. The SDK looked similar in approach to RevenueCat’s and I knew that my subscription manager would be quite helpful in making the switch since I had already done so when moving from StoreKit to RC.
I decided the richer analytics, the easy A/B testing, and the quickly updatable paywalls was something I needed for Solarc, so I got to work with the conversion.
I started by reviewing my subscription manager class to determine where I was referencing RC’s SDK and what I’d need to change to use Adapty’s SDK instead. This tutorial on how to migrate from RevenueCat to Adapty was quite useful, as it breaks down the terminology and approach differences between the two SDKs.
I installed the Adapty SDK using Swift Package Manager and began converting my subscription manager to using calls from Adapty.
If you’re using subscription manager in your code, here are my tips for migrating it with the fewest headaches:
I was most excited to work with the Paywall Builder feature, but I made sure to get the app functional and purchases processing with the Adapty SDK using my native paywall before trying out new features. I wanted to make sure I could replicate the same user experience first.
With everything functional, I got to work using Paywall Builder to replace my native paywall. I was able to replicate the basic look quite quickly thanks to all the template options that give you a great head start. I ended up with three different paywall designs in three different placements around my app. This approach let me tailor the value proposition to what felt most natural for users at that point in their exploration.
Some things to keep in mind as you’re determining where and how to show your in-app subscription options to users:
I shipped that large update in early 2025 and I’m quite proud of what Solarc has turned into. The app provides lots of rich weather and timezone-related data and easily lets you keep tabs on what it’s like for your friends, family, and really anywhere you want. The user experience is more sophisticated and provides a more nuanced way to convince users to upgrade to a subscription.
To help you evaluate whether Adapty is the right RevenueCat alternative for your needs, here’s a detailed comparison of key features between StoreKit, RevenueCat, and Adapty:
Feature | StoreKit | RevenueCat | Adapty |
Integration complexity | Medium | Low | Low |
Cross-platform support | iOS only | iOS & Android | iOS & Android |
Analytics depth | Basic | Good | Excellent |
Paywall creation | Manual coding | Paywall Builder | Paywall Builder with dozens of templates and advanced widgets |
A/B testing | None | Basic | Advanced |
Entitlement management | Manual | Automatic | Automatic |
Remote configuration | Limited | Partial | Comprehensive |
Conversion optimization tools | None | Basic | Advanced |
Price | Free (Apple) | Scaling with MTR | Scaling with MTR |
As you can see from this comparison, while RevenueCat offers significant improvements over StoreKit, Adapty provides additional capabilities that make it a compelling RevenueCat alternative, particularly in areas crucial for conversion optimization: paywall creation, analytics, and A/B testing.
The use of Adapty’s SDK and my subscription manager allows for much easier maintenance of the subscription infrastructure inside Solarc, and the insights I can glean from the analytics dashboard is very helpful for me to understand how the app is doing in the market. As an indie, I particularly appreciate any tool that can save me time and make maintaining my projects easier.
If you haven’t already, check out Adapty’s documentation, especially my new tutorial for integrating the iOS SDK into your own app. The tutorial uses the subscription manager I applied in Solarc but adapted for other use cases.
Recommended posts
iOS
Trends-insights
18 min read
June 10, 2025