How to make a medical app
By Paul Watson
This article was initially published as a 2 part blog on Saturn.org.uk in June 2019 and January 2020.
Have you got an idea that could revolutionise healthcare at the push of a button? Or simply make patients' or fellow clinicians' lives a bit better? Have you ever wondered how to go about making an idea for an app become a reality?
If so, you've probably already asked yourself - do I need to learn to code? Will it cost me an arm and a leg? Is it going to take up all my spare time for the next couple of years?
In this article, I'm going to address these questions as I talk you through a couple of medical apps I've made - from zero background in coding to creating a best selling medical app.
My hope is that it will inspire you to have the confidence to test the waters in medical app development because, who knows - you might just have the next big thing in your head. But if you don't share it, no-one will ever know.
Do I need to learn how to code?
Not necessarily - but it will certainly help to minimise costs (even if you don't code the whole app yourself) and will mean you can fix problems yourself, saving time and money throughout your app's lifetime. There are companies out there that propose you can build a fully functioning app without learning a line of code, using 'drop & drag' templates (e.g. Appy Pie, Good Barber and App Machine). I looked at several of these in the vain hope I could make something useful without having to code, but at least for my purposes, they were never going to come up with the goods. Firstly, their formats are set up as marketing tools for businesses, and however you try to manipulate their model, it lacks real flexibility in either design or function. On top of this they charge a premium monthly fee, which would mean a single app would cost several hundred pounds a year to host, regardless of whether it was generating any income. I suspect that whatever medical app you have in mind, the 'drop & drag' model isn't going to cut it - or be worth your while.
What language do I need to learn to make a medical app?
To me - without a background in computing - it's a bit like the tower of Babel out there. But simply put, there are 3 pathways if you want to code an app yourself.
Code for Android using Java (you can also code for Android in Kotlin, C#, Python or HTML5 if you already know these). The simplest way is by using Android Studio.
Code for iOS / Apple apps in Swift using Apple's XCode platform.
Learn one of the cross-platform development tools and code once to deploy for both Android & iOS as well as Windows. There are quite a few out there: Xamarin, React Native, Flutter, Ionic and PhoneGap are the most widely used. Here's a really useful article comparing their relative pros and cons. I've been learning Flutter for the past year - I chose it because I think it'll be around for a long time (it's developed by Google) and it's popular (meaning there are lots of online resources available and a large community that can help out with any questions you have along the way.)
How can I learn to code & how long will it take me?
I've found online courses on Udemy the quickest & most useful way to learn - the quality is really high, the content usually pretty extensive. Additionally, they seem to have a sale on every few days meaning you can get access to a $199 course for $13. I'd particularly recommend courses by the London App Brewery - ideal for someone starting from absolute basics.
What equipment do I need?
For iOS apps a Mac is essential for app development. For Android, you can use either a PC or Mac. To test your app you can either use the relevant iPhone / Android device, or an emulator which comes as part of the free Software Development Kit (SDK).
How much is the software I need to code an app?
It's free! All the relevant software is available to download free from the official websites.
Say I don't want to learn to code..
You have options! You could find and app development company, who will give you a quote to develop, produce and deploy your app. This was the route I first explored when developing PocketDr - the quotes for what is technically a very straightforward app went from £6,000 to an eye-watering £50,000. On that basis, I decided to work it out myself. Since then, I've learned there is a cheaper way to get help making your app. The online freelance marketplace is huge - and you can access 1000s of developers, designers etc on flexible terms to meet your requirements and budget. I used Upwork to find a freelancer to update the Android version of PocketDr and was really impressed.
How much would it cost just to pay someone to make my app? That depends on the size, functionality and complexity of the app. Even for a simple app, you're likely looking at upwards from £10,000. Complex apps can cost several £100,000s.
What if I want to collaborate and share a project with someone else?
Sharing work is easy with GitHub. GitHub is a fantastic resource where you can store and share the source code for your project. Accounts are free.
Are there any regulations? Is an app a 'medical device'?
This is an important question, and depends upon the function and functionality of your app. You should check the legislation here. But if your app just reproduces a paper document in digital format and is down to the health care professional to make the decisions based on the advice displayed, then it is not a 'medical device' and does not need the CE mark.
So, talk me through the process of app design!
It helps to break the process down into several discreet steps. This way you'll pick up any bugs with the process even before you start to code or pay someone else.
Inspiration - You need a great idea that will meet a current need, make things run smoother / save time, make a process safer or better..
Imagination - The most important part of the whole process. Think deeply about the core of the solution - what is the 'one purpose' of the app? Take time to dream about your solution from multiple angles. Expand your thinking along all possible tangents; play with the ideas. Finally pare it down to the essence and come up with a mental model of the solution in app form.
Paper model - cut several sheets of paper, one to represent each screen of your app. Roughly draw the image each page will have, along with functional buttons leading to new pages. This is a low cost method to develop your app concept.
Testing - Test the logic of your app user journey by trying out different pathways through your 'paper app' pages. Make sure there are no dead ends!
Wireframe - Code the structure of your app (pages, links) using Xcode/Android Studio/Flutter according to your platform.
Testing - Test the user journey again on your wireframe app
Fleshing it out - Graphics, icons, colour palettes, text..
Backend - If your app will collect or generate data, you'll want to connect it to a 'backend' database. You may also want to store the information visible on the app on a backend server. There are many services to choose from, including Google's Firebase, Amazon's AWS - each with pros & cons. Here's a good article introducing them, and here's another.
Submitting to Apple & GooglePlay - Your app is finished & tested. Hooray. Now it's time to submit to the app store. Submitting your Android app to Google Play takes about 20 mins, and your app will be up and available to download before the day's out. Submitting to Apple's App Store requires jumping through a painful series of hoops, takes about a week (seriously). But eventually, if you follow the requirements, your app will become available to all on the App Store. And when you see it there, it's a great feeling.
Release - You can set a release date in the future, or ask for the app to be released as soon as accepted by the relevant store.
Marketing - There's no use having a great app out there if no-one knows about it. Tell the world by word of mouth, social media and relevant third parties (your Trust or Royal College perhaps).
I hope you've found this article helpful & inspired you to start your own journey in medical app development. We'd be really interested to hear about your experiences, project plans and successes. If you have any comments or suggestions, please let us know.