Getting the App onto Google’s Play Store

Once we’d released our CFA® Total Recall app onto Apple’s iOS App Store, I thought the process would be fairly quick to get it onto Android phones, via Google’s Play Store.

Fortunately, “React Native” works almost (but not quite) identically on both Apple phones and Android phones, with just a few places where you need to switch between them in the Javascript software, but with one major exception to that general rule.

That major exception is subscriptions, because Apple and Google both handle this in completely different ways, despite solving exactly the same logical problem. It’s much more complicated to handle subscriptions on Google, than on Apple. Fortunately, the React Native guys on the IAP project ( have made “In-App Purchasing” much easier than it might otherwise be, but I still needed to do a lot of coding to get the phone app to recognize both subscription systems. I also needed to write a completely separate subscription handler on our central server, to validate and verify Google subscriptions, rather than Apple subscriptions.

Anyhow, to cut a long story short, it took several weeks to modify the app to make it “Google-Ready,” and we finally released it just a few days ago. You can download it here:

Obviously, you can still download it for Apple phones, here:

So, how’s it going on Android? Well, without any direct effort to market the app on Google, we’re beginning to see downloads ramping up, which is great. The major ‘overall’ problem with Google, as compared to Apple, is that Apple has complete control over their phone hardware. This means that our app seems to have been completely ‘resilient’ on iOS, with absolutely no reported app crashes.

Alas, the same is not the same on Google. This is mainly because Android works on many different hardware platforms from many different phone providers, so the software situation is just not as well ‘controlled’ as it is by Apple. For instance, although the Android Studio program simulators (which are very good) have experienced zero crashes with our React Native phone software, I have noticed a few app crashes on real-world phones, which have been reported to us via the Google Playstore.

There’s one nasty one, which only occurs on one or two phone types, and only sporadically. If you’re on a question and press the ‘Home’ navigation button this sometimes causes the app to crash. It’s not a life-and-death deal-breaker, because you can immediately restart the app, but it is obviously a problem. If I’d downloaded an app from someone else, I would be less than impressed by this crash behavior. So I’m currently investigating this occasional random ‘bug’, and hope to fix it as soon as possible.

It’s a bit tricky, because the React Native navigation software ‘should be’ completely rock-solid, but it obviously isn’t. Fortunately, there is some discussion of the problem on, that essential website for all the world’s developers. It seem that I’m going to have to change the way the Javascript code of React Native is compiled in the Java code that Android uses, to use some mysterious system called ‘V8’ compiling, rather than the ‘out-of-the-box’ code compilation method provided by React Native.

Anyhow, for anyone reading this who has experienced this bug on Android, please be assured that I’m working as quickly as I can to get it sorted out, and will release the fix as soon as I’m happy with it.

I’ll write another post when it’s done.

In the meantime, I hope the bug isn’t slowing down your CFA® learning with our Android app. Keep working as hard as you can, as the next CFA® Level 1 exam window is coming up soon and we really do want you to pass the first time around, so you can get on with studying for Level 2.