It’s the question everyone’s asking. Well, that’s everyone if you’re in the market to develop an app.
Often it is the case that a prospective client will come to us to execute an idea they have developed, and they are very resolute in thinking that they need a natively coded app.
A natively coded app, is an app that has been developed either in Swift/Objective-C for iPhone, or Java for Android. Native coding, software development at its purest, allows us to develop products that tap into the core functions of the device, often with very little limitations.
Coding in this fashion allows us to deliver a product without compromise. We are limited only by the boundaries devised by the device manufacturers and as long as we stick to their requirements, and abide by their rules, we have a product that is much faster than a web-based app, and the product feels, well, native.
That said, there are many times when a native app isn’t required for the job. Unless you are creating something that extends the functionality of the device - something that can’t be done in a web browser - you might want to consider a web-based app. And Apple and Google are actively encouraging this.
Web based apps often look and feel like a native app with the fundamental difference being that they are delivered through the web - that is you do not need to go to the app stores to download the app - you simply visit a website.
A web app will not feel as responsive as a native app - it is often drawing upon code stored on the web server (as opposed to being stored on the device) and so can suffer from the lag that you would expect from a website.
As mobile browsers become more and more advanced, so web apps are becoming more capable of doing more things natively - storing data on a database on your device for example, tapping into geo-location, or utilising the onboard camera.
One major advantage of web app is the cost of development. Developing native apps is considerably more expensive, and more complex, than developing web based apps.
The other major advantage is searchability. Launching an app is hard work - and it is much harder to optimise a native app to be found on the web, as opposed to a web-based app where you can apply tradition search engine optimisation ideology.
So, it’s a horses for courses situation - you choose the environment that is right for the project.
There are other options too - the hybrid app - which might be half web based, half natively coded - is an option and can also help keep costs down. Again, very much depending on what you want to achieve.
And then there’s the “no-code” or low code development environments. No-code development takes on many forms, but typically a developer might design an app in a drag and drop type of environment, pulling functions out of a library and connecting the elements in an often simplistic and visual fashion.
For a quick fire MVP - this might be a great way to get off the ground. But these sorts of apps can be very slow indeed - they are often web-based, often have to pre-load a considerable amount of code to function and then suffer from the same lag that a web based app might expect.
The other downside to consider with a no-code development platform is you are dependent on the platform’s survival. If the platform is closed down, your app could potentially be put in jeopardy.
These are some of the different development environments we work with, and it really is a case of picking the right environment to suit your needs.
Consider speed, consider what you’re trying to achieve. And consider your budget.