Application Function – A Fundamental Choice in App Development

Transforming Digital Innovation for New Balance with Mendix Platform as a ServiceMIT is Driving Digital Innovation using the Mendix PlatformDun & Bradstreet use the Mendix Application Platform to Drive InnovationMerck uses the Mendix Digital Transformation PlatformChubb uses Mendix as a PaaS ProviderPaaS Provider for Berkshire Hathaway Specialty InsuranceKLM

There are some very basic questions to ask whenever you decide to approach application development as an investment. One such question is how your application will function (versus what the intended functionality is) to which there are currently three classes of applications that you can hope to build for. The Mendix platform offers users the capacity to design and deploy applications from each class including hybrid apps, applications which share qualities from both native and web-based applications.

What Are Native Apps?

Native apps are probably what first come to mind when you start to judge mobile application development platforms to make your project a reality. In a nutshell, native apps download to your device’s local memory and are then launched by tapping their respective icon or by some automatic command added to the boot sequence of the device. The app function for native apps is to run on the given device without relying on an internet connection.

What distinguishes native apps from the alternatives mentioned is that they are almost always designed and coded for a specific kind of device. For instance, iPhone apps are written in Objective-C, while Android apps in Java, etc. Each application platform, including mobile application platforms, comes with their own interface elements and standardized development kit – sometimes even rapid application development tools. This should enable any professional developer to develop a native app with greater ease.

The Case for Web Apps

Web-based apps are in general ideal when existing content or use-case is already available on mobile via a website and investing in a native application seems too resource heavy. Typically, web apps are coded in JavaScript, CSS, HTML5 or some other web-based languages, and a developer won’t have access to a standardized software development kit like with native applications. Developing a web app can be simple and quick, however, their simplicity can also have downsides. Basically, hybrid applications ensure flexibility at the cost of functionality – taking advantage of a given device’s components as well as push-notifications are maybe off-limits.

In addition to web apps being limited in what they can do effectively in terms of features, as compared to native application web apps are always slower and less intuitive. Again, web apps are designed once for working on as many platforms as possible without optimizing for each device’s specific architecture. If you use a web app, be warned that they are also more difficult to build a loyal user-base from. The difficulty arises from trying to engage with your audience minus the ability to send users notifications to bring them back to your content.

Furthermore, with a web app, you’re missing out on an important source of downloads/traffic. While native and hybrid apps appear on a platform application store, web apps won’t. With millions of searches every day on these stores, the potential to get your app discovered is real.

Specialty of Hybrid Apps

In-between the worlds of native and web apps, you’ll find hybrid apps. They are usually quicker to build (and therefore cheaper) than native apps, but definitely a step-up from the functionality expected from web apps in general – specific native functions such as a device’s camera are now available. Is the hybrid app the best of both worlds and therefore the best for your application development project? Well, it depends.

A hybrid app is usually built using cross-compatible languages, such as HTML5, CSS or Javascript – the same languages often used to write web apps – but often include some native code to allow the app to access the wider functionality of the device and produce a more refined user experience. An advantage that hybrid apps have over native is that it’s faster and easier to develop. It’s also easier to maintain and users can typically change application platforms without sacrificing much in terms of continuing to use your application. The app itself will not be as fast as a native app as it still depends on part due to the quality of Internet connectivity, but the “durability” of a hybrid app is undeniable.

Making sure a hybrid app runs on each platform should be expected to take some time, and in some cases, the cost of the hybrid might become comparable to that of fully native apps. It all depends on how close you want to get to the “native user experience” or how simple your app is. Still, there’s one big advantage in hybrid apps: Being built on one single base, you can add functionality continuously and have multiple versions of the application under development. Mendix encourages its developers to consider designing hybrid applications and to follow instructions on the Developer Community site on how to do so successfully.

Testing Apps

Regardless of how you make this crucial yet not necessarily straightforward decision regarding your app function, i.e. whether it be designed to work as native software or require some degree of Internet connectivity, make sure to test your application for high speed and application reliability. With native applications, however, it makes sense to take it a step further:

  • Take advantage of a given device’s components, e.g. accelerometers, cameras, etc.
  • Use push-notifications for keeping the user informed about data-processing alerts or problems

The sheer number of mobile devices used by consumers creates a true challenge to testing app function, regardless of the kind of app you designed. Potentially tens of thousands of different client devices could be used to access your app, and they therefore must be considered to some extent when testing what you have built. Add to this the different versions of operating systems, and the consideration set grows exponentially. With native apps, you can sacrifice coverage across device/OS combinations to an extent, but when you reduce the number of device types that you test against, you are taking a chance that your application might not work for several potential customers. Hence one definite advantage of hybrid apps riding in part on the device’s source of Internet. Mendix wholeheartedly suggests testing applications built on its platform and even has tools in place to help automate different types of tests.