How I published my first app using Ionic

In the past week, I became an app developer.  The process of developing and deploying my first app, Cosma, wasn't easy, but it is very achievable.

I used the Ionic framework, which is now compatible with React, and integrated with Typescript.  

For the most part, it was a pain free process, and I would recommend it.  The typing of Ionic never gave me issues.  Ionic is a hybrid framework, meaning that the code you create in Typescript can be deployed on Android, iOS, and as a progressive web app.

The only issue that I ran into was that React Ionic uses Capacitor in order to integrate with native capabilities, instead of Cordova, which the Angular version uses (Ionic was originally written for Angular).  Capacitor is less mature than Cordova, and some of the Ionic plugins were not compatible with it, or were unreasonably buggy.

I deployed the app to the Google Play store.  It took about an hour to set up a Google developer account.  It took about three hours to figure out how to turn my app into a deployable, signed APK (Android Package), to fill out Google's required forms, and to create and host a privacy policy.

In the process, I discovered the NASA API set, and would recommend it to anyone looking to make an app or fun web project.  It is easy to get an API key from, has decent documentation, and the auth process is painless.

One of the biggest issues that I hit was trying to figure out the best way to keep my API key for Google maps confidential (I've gotten one too many messages about exposed API keys from Github), without being able to access node variables (like process.env).  I wasn't able to make something like dotenv work for me in a mobile environment.

The way that I got around this issue was by storing the key in firebase, and simply requesting it from the application.  This way, I was able to use the API key without exposing it.  

If you are coming from a frontend background, Ionic is a relatively painless way to try your hand at app development, and I would definitely recommend giving it a go.  

Subscribe to joshuaa.dev

Don’t miss out on the latest issues. Sign up now to get access to the library of members-only issues.
jamie@example.com
Subscribe