Building a Mobile App For Android & iOS

classnav case image

The deployment problem.

For those who have gone through the process of deploying an app, these headaches need no explanation. Well, I suppose I should say for those who have deployed to the App Store. The Play Store is much more leniant in what they will accept.

When trying to submit to the App Store, the long game began where we would send in a version, wait 1-2 days, and then fix the issues they found. Upon resubmitting, they would come back a couple days later with more issues they found. And these issues were not large functional issues! No, they were tiny details, like using the word "free" in a screenshot. And all of this work did not even include the extensive licensing process that Apple puts you through.

Needless to say, when Apple finally accepted our app, I was ecstatic. Now, we had our app available for both Android and iOS, so we could begin marketing it from our primary site! I watched nervously as the user count quickly started growing.

Maintenence and reviews.

Like anyone who has published something on the internet, I watched feverishly for the first reviews to roll in. Once they had, I was initially happy with them, until a review listing a bug rolled in.

The review left a comment noting a functional issue that left the user in a loop, and a scathing 2 stars (which is honestly more than a broken app deserves). Thankfully, we were able to quickly resolve the issue, send a comment to the reviewer letting them know the issue had been fixed, and then we started seeing more of the positive reviews.

As of now, the app has a cumulative rating of 4.5 stars across both platforms from 150+ reviews. We have had over 10,000 downloads and people continue to get value out of the product!

Maintenence of the app has been relatively minimal, except for when either the Play Store or App Store have changed their policies or app requirements, which have required me to make infrastructural changes by certain deadlines, or else our app would be pulled down.

classnav case image

Biggest lessons learned:

Building this app was a saga that required countless hours of researching help forums and debugging mystifying issues for weeks. When I started, I was incredibly intimidated by the prospect of publishing an app, but by the end, I had the experience and now have the confidence to be able to repeat it and make another. Hopefully with less headaches the second time around.

Research your tools.

Like I had mentioned above, we used React Native and Expo to build this app. This made the initial development much faster than it would have been otherwise, but these tools had certain limitations, especially Expo. Though Expo had several helpful tools in the process and worked great for our purposes, if we needed to build an app that had more features, Expo had its limits and may have required us to fully rebuild the app without it, which could have set the development time back weeks, if not months.

Fail fast.

There were so many unknowns going into this project, but thankfully, the process to discover them was to do it wrong, carefully read the error messages, then try again. Like learning most things, the most important factor is to learn from your mistakes so that you don't repeat them in the future. The only failure is not trying again.

Those who answer questions on dev forums are heroes.

I could not have done this project without the expansive help docs online, so for those that take the time to answer questions, bless you. I owe you dinner if I ever run into you.