Mobile solutions – Native vs. Hybrid vs. Web applications

Within Finaps we develop three types of mobile applications:

– Native Applications
– Hybrid Applications
– Mobile Web Applications.

What is right for you?

Each project has different requirements, challenges and features. As a result, one mobile solution does not match every project. We like to work closely with our clients to explore which solution would best fit their needs and their target audience. Finaps can design and prototype applications within days allowing us to turn ideas into solutions within a short amount of time. This creates the opportunity for us to rapidly develop new functionalities and maintain a short feedback loop with the end users.

What is our approach?

We aim to produce a Sketch prototype and design of the application within the initial design phase. This allows both parties to have clarity as to what we want to achieve with the minimum viable product (MVP). When confidence has been reached in the prototype and design, Finaps develops a MVP with the aim of delivering a first impression of the application in a short time span. By doing this the core functionalities of the application can be tested and assumptions in designing and prototyping can be confirmed or adjusted easily. This method of working is known as agile/scrum and it allows for Finaps to have a constant feedback loop with the end users and product owners. As a result, the application is always moving towards a shared vision which is transparent to everyone involved in the development. We follow this approach regardless of the type of mobile application.

Which Technologies do you use for each app type?

The result of the MVP should make it clear as to which technology would be best suited your project. Finaps would then begin to develop the application in one of the following means.

Native applications- Xamarin

Xamarin is a cross platform development tool that allows developers to create mobile applications for multiple devices within one language, C#. Xamarin allows for native applications to be developed with the ability to share code between platforms. This means business logic of an application could be written one time and work the same way on both Android and iOS. These applications allow native functionality to be utilised easily and have the best performance out of the three approaches.

 

High level architecture of Xamarin app

Typically, Finaps will choose to use Xamarin when an application requires functionalities such as offline or lower level control over certain functionalities (managing data, web services/integrations or security) .Xamarin also allows for the option of a shared code for the UI of the application. This is done by using Xamarin Forms. Developers can design and develop UI one time and they will look & act the same on all targeted devices. These application are typically simple and do not utilise platform specific functionality heavily. In the case of a client requiring bespoke functionality on certain platforms or drastically different UIs it is recommended to use the native approach per platform via Xamarin.  This means the UI for each platform can be bespoke whilst still utilising shared code. Additionally the UI code is still written in C# and Xamarin, making it possible to maintain one codebase.

 

Hybrid applications – PhoneGap / Mendix

A hybrid application is the blend of both native experience and web application. The idea of PhoneGap is to allow for web applications to work on a mobile device and to allow these applications to utilise native functionalities to enhance the user experience. As a result, developers could develop a web application and transport it as an application that users could install onto their mobile devices to enrich the experience. A hybrid application at its core is a combination of CSS, HTML and JavaScript that has been compiled into the native application code for each platform.

Finaps develops hybrid applications using Mendix. Within Mendix, developers can create widgets that utilise plugins developed for PhoneGap. Plugins are similar to libraries that provide additional functionality to the PhoneGap shell. In the example of camera there would be a plugin that allows PhoneGap to utilise the camera of the device. Within a Mendix application a widget could make use of the plugin to add this functionality to the application.

This approach is suited for applications that need some basic native functionality as well as a web application counterpart. These applications suit a certain group of applications very well however it has limitations when requiring bespoke functionality or lower level control.

In the next video you can see how the Mendix platform is handling Hybrid app development:

 

Mobile Web applications – Mendix

Similar to hybrid applications these applications use web languages and make use of the Mendix web application. However, the difference between mobile web and hybrid applications is that mobile web applications don’t necessarily make use of the device. Additionally, these applications may not necessarily be downloaded and installed to the device as they work by the device connecting to the website via a browser. This application requires little additional development within Mendix and can easily be supported within the standard application.

Mobile web applications are best suited when applications are required to work on multiple platforms but do not require any bespoke functionality on one particular platform. It allows for a unified solution that works the same across platforms usually with limited and focused functionality.