
I’ve developed apps using various solutions over the years, like Objective-C, Swift, Java, and Ionic. I haven’t tried Kotlin yet since, as a one-person team, I’ll probably never have time to manage two separate codebases for iOS and Android.
Ionic: The Beginning
Anyway, I’ve been using Ionic for my last couple of apps because it seemed like the perfect solution: write once, run everywhere. Designing the UI was also kind of fun if you know HTML and CSS, you could basically make it look like anything you wanted. That being said, there were still parts of the development process that made me feel like I was troubleshooting more than coding, which took the fun out of it.

For example, what looked great in a web preview didn’t always look the same on an actual iPhone or Android device. That meant constant tweaking, testing, and troubleshooting. Additionally, something just felt off about Ionic apps. They weren’t as responsive, likely because they were running inside a WebView rather than truly being native.
React Native: A New Hope

A couple of days ago, I decided to try React Native (RN), starting with Expo, which boasted an easy setup and fast development. I remade one of my apps in less than a day, but once I had to “eject” to build real iOS and Android apps, things got messy. Dependency issues, broken builds, obscure error messages. It felt like Ionic all over again. I was spending more time fixing things than coding.
Then I switched to bare React Native, and suddenly, I was addicted. With Metro (RN’s development server), I could instantly see my changes on both an Android emulator and an iPhone simulator. No more guessing if my app would break when I compiled it for real devices. And when it was time to package the app for the App Store and Google Play, it actually worked without hours of trying to get the dang things to compile properly.

That being said, it wasn’t all smooth sailing. The biggest and most frustrating hurdle was library compatibility. Some updates broke my app because different packages weren’t playing nice together. The error messages weren’t helpful, and figuring out the root cause was almost impossible without some Google-fu. Thanks to a bunch of real programmers (not me), I realized it all came down to version compatibility. Once I got a good idea of which versions were stable, things got a lot easier. I was able to focus on designing and programming my app rather than fixing random issues.
Conclusion
Overall, I think I’m going to stick with React Native for a while. Less time troubleshooting, more time coding. The finished apps feel more polished and truly native compared to Ionic. I’ve spent so much time enjoying the process, I haven’t even queued up for a League match. It’s actually making development fun, and that’s what really matters. Or is it the massive pile of cash I’m going to rake in from my apps? Just kidding, my apps are worthless.