What do we mean by native vs. web?
Native and web for mobile are obviously families of diverse and constantly developing technologies, but still mostly distinguishable as separate development paths. This makes it possible to discuss their relative strengths and suitability for different types of applications in general.
Native mobile applications are developed with various development tools for each mobile platform, typically using a native programming language (such as Java or Kotlin for Android and Objective-C or Swift for iOS). Since they are platform-specific, they can efficiently utilize the built-in capabilities of the underlying operating system, such as access to sensor data or local storage. Native mobile applications are typically distributed through application stores, which generally helps in application discovery, marketing and monetization.
Mobile web apps
Mobile web applications are basically web pages that are optimized to work in mobile devices. They are developed with generic web development frameworks and tools and run within mobile web browsers. To a large extent, they work similarly on all platforms and therefore need to be developed only once to cover the different types of mobile devices of the users. All the capabilities of the underlying mobile platform are accessed through standardized browser interfaces, which makes it harder or impossible to fully utilize the resources of the device. Web applications do not need to be downloaded; instead they are accessed directly through web urls.
In addition to pure native and web applications, development tools for hybrid mobile apps (such as Adobe PhoneGap) allow a set of web pages to be wrapped up as a native application and published in an application store, combining the benefits of efficient web-based development with those of store distribution.
Our Choice for Utility To Go: web technologies
We ended up selecting the web application paradigm for Utility To Go. It was (and is) being developed using HTML5 and some of the most prominent web application frameworks such as Angular and Leaflet. Some of the considerations leading to this decision are described below.
One of the key customer processes supported by Utility To Go from the beginning is utility outage management and repair. It is essential to deploy the repair workforce as fast as possible, especially during major electrical network disturbances caused, for example, by extreme weather. In some cases, the parent organizations of the mobile users, as well as the mobile device population in use, may be very diverse. In these circumstances, it is very useful for the mobile application to be immediately compatible with the maximum number of different mobile devices regardless of their age, OS or the platform version.
Utility To Go can be accessed very quickly through a web link distributed for example via email. On the other hand, since the number of target users is still relatively limited and can be addressed individually, store-based distribution would not bring the same benefits as it does for consumer apps.
Device compatibility and wider user base
In addition to the speed of deployment, wide device compatibility enables a flexible use of Utility To Go in different situations and by different user groups. For example, with some Trimble customers, Utility To Go has become a popular tool for quickly sharing network information to stakeholders such as senior managers using mobile phones, perhaps in settings that would not warrant installing another native application. In addition, although Utility To Go has been developed for mobile users, we have seen office users using it for quickly checking the network status also on a desktop computer.
Less device management and system upgrades
Updates and new features in native applications necessitate new application versions that need to be updated separately in each user’s device to become functional. They also can often introduce dependencies to mobile platform versions. Therefore the continuous development of a native application introduces a lot of extra administrative work in ensuring the mobile OSes and applications are kept up to date in each user’s devices. In contrast, as a web-based application Utility To Go is immediately usable on all types of devices and platforms without any individual upgrade needs.
Unlike native applications, a web-based app is developed and released for all operating systems simultaneously. This removes the need for separate compilation, testing and release activities for different platforms. Although the native development tools are very powerful (and toolsets enabling simultaneous development for several platforms exist), separate platform-specific development teams are often employed to reap the maximum benefits from native development. In contrast all mobile development resources can be focused on a single Utility To Go development team. As a consequence, every new feature, innovation and maintenance update is available to Utility To Go users much faster than would be in the case of several separate native apps.
Developing web application platform
An area where native mobile applications still have advantages over the web application platform is access to the various device capabilities such as local offline data storage, the full set of sensor data and background processing (for example enabling continuous location tracking when the application is not active). However, the capability gap is constantly getting narrower because of the fast development of browser capabilities and standardization. This has happened, for example, with the HTML5 geolocation interface, which allows accurate GNSS location information from an external receiver to be used by Utility To Go. Other examples are the developing capabilities related to the emergence of so-called progressive web applications. The PWA paradigm brings to web apps increasingly native-like capabilities such as more seamless offline operation and customized icons on the application grid.