When you're starting out on the road to build a web based application, we think there are some really important things to think about.
1. What platforms do you want to target?
Although many developers will tell you that the idea of a web app is that you build it once and it runs everywhere, this isn't always the case. For 90% of the functionality and devices you wish to support, it maybe the case. But what about the obscure Android that all of your field engineers have been issued or that client who's stuck in Internet Explorer 10.
It's really key that you ensure that you know your target user base and so does your developer. Otherwise this can result in some really awkard questions during the testing and acceptance stage of your project!
2. Has it been designed progressively?
This is quite a technical concept, but it's a good one to speak to your developers about. Progressive Enhancement is the process of incrementally improving the application's functionality based upon the capabilities of the environment it is running on.
For instance, if a nice-to-have of your web app is that users can upload a picture direct from their device then in older phones and tablets this won't work due to the older technology, but on newer ones it will. It's important that the experience for the users on the older device is still elegant and doesn't just break.
3. Hybrid App or PWA?
If you need or want some of the functionality that going native gives you such as notifications, working offline, instant loading etc, historically developers would reach for the hybrid approach. This is where your web app is written using the usual browser technologies but is then wrapped in a native layer so that it can pretend to be a native app on each of the platforms such as iOS and Android. This has been a necessity until very recently, however with new technology its now possible to have these features direct in the browser.
Progressive Web Apps leverage new browser capabilities so that they can provide this functionality where it exists. This is an elegant solution where you would like to have some of these native features but your app doesn't absolutely rely upon them. One of the corner stones of a PWA is instant loading using a feature called manifest files. This is fully supported on the vast majority of devices right now and is going to start to play a huge part in Google search rankings very soon as they put more and more focus on the speed and response time of your website or webapp.
4. What additional services are you going to be paying for?
The antomy of web application has changed substantially in the last few years. In days gone by a company would produce the entire application in house and serve everything from one server. This has now changed to a more distributed architecture whereby various pieces of functionality are essentially bought in. For example, to send emails developers rarely would create this feature from scratch themselves now, instead they would use an email service such as Send Grid. This has the benefit that it's extremely reliable and it means that the various building blocks of your application are created by specialists in their fields, but they do come at a cost. So be sure that the price you're quoted includes all of the on-going costs required to support your app.
5. What does the on-going support look like?
On-going support is really important, but it's seldom addressed at the start of a project. Too often there is a difficult conversation when a bug is found but the app is already signed off. So, is there a warranty period? How long does it last and what does it cover?
Secondly, having released your app into the wild, you will undoubtedly want to make changes as you learn behavious from your users, you might think "I'll just phone the developers", but the trouble is that they may have a 3 month lead time right now meaning you are slightly stuck. It's therefore always worth putting a retainer in place for a few days a month, at least for the first 6 months after release. This will mean you have virtually instant access to some of your developer's time for changes and improvements.
That's it, this list is not exhaustive but it feels like some of the more important points to us. Good luck with your new app and feel free to let us know how you get on.