Wednesday, March 19, 2025

Why build a native app?

Today, more code runs on the web, and more developers write code that runs on the web than in traditional or native apps. This still isn't all software, and there are many reasons not to build for the web or use web technologies.

The most obvious reason to not build an application with web-focused technologies is because the devices the software will run on are not, or are rarely, connected to the internet. If you feel as though you are always connected and often by multiple devices, it can be hard to remember that this isn't always the case for everyone. This can also be due to circumstances (like location) or done deliberately for security reasons.

Even when internet connectivity is not an issue, some features are unavailable outside of native apps. This includes access to specific APIs or integration directly with the OS and other applications.

Some accessibility-related features of the OS are only accessible (ironically) to native apps and so are unavailable if using web technologies or must be recreated within the app.

Matching the native look and feel of the OS can more easily be achieved through the use of tools, frameworks, and languages that were created to integrate with the native UX of an OS.

Higher levels of code performance can also be achieved when not using the abstractions added by using multiple technologies. This is a debateable argument as it more comes down to how you use individual technologies rather than the technology themselves. It's possible to build apps that perform well or badly with most technologies. Being able to get closer to the silicon (with fewer layers of abstraction/framework/conversion) usually makes the possibility of better performance easier.

When there's seemingly an app available for everything on mobile devices, it may seem unnecessary to build an application specifically targeting more traditional computing devices. Even when apps can be built to run on varying devices and adjust accordingly, there's still a need to consider each device type differently. The creation and consumption of content required or provided by different apps can be better suited to the different capabilities and form factors of a PC, laptop, tablet, phone, or other device. 

Beyond the device and required capabilities of an application, you may also need to consider your existing skill set and any other apps you already have. If an organization already has multiple existing native apps that they support and maintain, adding a new app built with a different technology and requiring a different set of skills and knowledge can be a considerable risk to the organization. Training staff and maintaining a suite of apps built with a mixture of technologies can require a lot more work and, therefore, cost. This isn't to say that these reasons should be the deciding factor in what you build.

Many developers can't imagine building anything other than a web based solution. That lack of imagination and inability to consider scenarios other than what they do every day, probably isn't a great trait to have though.

Once you've decided to build a native app (or accepted that some people need to), there's the question of how to build that app...


0 comments:

Post a Comment

I get a lot of comment spam :( - moderation may take a while.