I built an app where you can put in your contact information and easily share QR codes when meeting new people. I have worked on mobile apps before but I have never gone through the whole process of launching on the app stores with payments.
I built the app with React Native Expo and used Revenuecat for payments. I think this is a great tech stack for indiehackers as you don't need to duplicate your code base for iOS/Android and Revenuecat makes payments easy.
Developing an app with React Native is relatively straight forward if you have a React background. Uploading it to the app stores and getting payments to work is more confusing.
Expo's EAS simplifies a lot of this. Uploading to appstoreconnect is straight forward but for the play store you have to manually upload once before EAS can.
I used Revenuecat for payments and I think I saved a bunch of pain. I had some problems authorising the play store API but it takes the two app store payment architectures and makes it one.
The annoying thing about using revenuecat is that you have to use expo's dev client to develop on your device. This becomes a problem when you actually want to use your app. The work around I use is taking all the payment code into one file. I then have replacement dumby functions that bypass the paywall. When I am developing I comment in the dumby and out the real payment code and when I am preparing for building I comment in the real stuff.
With companies like Expo and Revenuecat making a mobile app is as accessible as ever.