Raw Syntax

The stuff programs are made of

App Store Adventures


Recently (in March) I took on a side project. My wife is nearing the end of her Family Medicine residency, however in talking with her I learned about a need for an app. The ACGME has requirements that residents in Family Medicine must have a certain number and type of patient visits completed to finish residency. For example one such requirement is performing 40 deliveries.

Where the app comes in is that it provides a simple way to log patient encounters and keep track of these metrics. After doing a quick search on the App Store and finding that such an app didn't already exist, I figured I could write one pretty easily. Though I don't have native app dev skills (Obj-C, Java) there are quite a few frameworks that allow developers to write JavaScript instead: Appcelerator, Ionic Framework, Phonegap etc.

Building the App

Ionic uses AngularJS and Cordova to handle building apps for phones. I chose Ionic because I'm already familiar with AngularJS. The actual app development was quite simple:

  • setup a form in AngularJS
  • write form data to a sqlite database
  • query the database to display statistics
  • export the database to a CSV file and attach via email

I only had to add a couple of cordova plugins, and write some straight forward JavaScript. The hardest part by far was signing up for the App Store and Google Play and building / submitting the app to each store.

Another user wrote a tutorial on how to build and sign apps for Android. This was extremely helpful since I'm less familiar with the Android submission process. To top it off I lost my app's keystore (which is required to make app updates) and had to dig through my Time Machine backups to find the file. I now have it more thoroughly backed up.

App Design

Once I reached a point where the app worked on my iPhone, I still needed an app icon. Instead of trying to make one myself I used 99designs. After about a week of commenting back and forth with designers, I picked an app icon. What I actually received was a 1024x1024 PNG file.

Taking this file and creating all the various image sizes could have been a pain, but Ionic comes with the ionic resources command, which automates this process.

However it became clear that I didn't think this process entirely through, as I was missing a splash screen (for when the app is loading). I found a template and made a simple "Log Encounter" text splash screen. It is boring, but it gets the job done.

Mission Accomplished

So now the app is available for both Android and iOS:

I've had a few sales (10?) on iOS and none on Android. Now that the app is done and works, figuring out how to increase sales is an entirely separate process. Mission accomplished but not finished. I've also received plenty of (unsolicited) email spam for app promotion services. I can only assume those services comb through the new app listings and email everyone.