Device and Platform Decision-Making Strategy

Device and Platform Decision-Making Strategy

When developing an application there are a number of factors to consider before choosing a platform. The importance of each of these factors will change depending on the project. It’s an important to determine which of the following features are the most pertinent for your application.

During Development

Pre-Release

Continuous Development

Ensure developer is testing on both emulator and physical device as a minimum level of testing. This will ensure that the application is fit for purpose.

Before an application is released, it is essential to use external testing (external from the developer) on physical devices to simulate conditions that an end user would face.

For longer projects, or projects that will continually be updated, it may prove to be more efficient to use automated testing during and after development. This will take more resources to set up but once they are in place they remove the need to manual retest implemented features.

Native

Hybrid

Web 

Performance

Directly accesses platform functionality resulting in best performance

For complex apps, the abstraction layer can prevent native-like performances

Performance is largely based on browser and network connection

Distribution

App stores enforce requirements and restrictions but provide marketing benefits

App stores enforce requirements and restrictions but provide marketing benefits.

No restriction for launch, but no app store benefits

UI Consistency

Familiar and original UI components are provided

Will be required to create own UI but can be made to look native

UI frameworks can create a fairly native-look

Device Access

Access to all device APIs

Most device APIs accessible

Minimal device APIs accessible

Cost

Developing separately for multiple platforms can increase costs

Low costs as single codebase, however will need specialised developers

Lowest cost due to single codebase and common skillset

Code Reusability / Portability

Code will only work on platform it is created for

Single codebase for functionality, however may need to create separate UI for each platform

Browser compatibility and performance are only concerns

Project Length

Developing separately for multiple platforms can increase timescales

Single codebase and therefore shorter project length. Slightly increase by UI creation times

Single codebase and therefore shorter project length

Monetisation

More monetisation opportunities, but platform holders will take a percentage

More monetisation opportunities, but platform holders will take a percentage

Fewer monetisation opportunities

User

High performance, ease of access and familiar UI features allow for a more user friendly experience

Similar to native but can provide a slightly worse UX due to potential performance issues.

Lack of centralised store, low performance rating lead to a lower UX.

KEY

Most suitable

Suitable

Least suitable.

Device and Platform Decision-Making Strategy
Device and Platform Decision-Making Strategy

  1. Performance

The performance of an application is generally based around the frame rate of the application. The frame rate is measured by how many times the device is capable to redraw the User Interaction (UI) for the user in a second. Higher frame rates are more pleasing for the user.

  1. Native

    1. Native applications will always provide the greatest performance as they are able to interact directly with the device hardware. This results in a much more responsive application with smoother UI animations. 

  2. Hybrid

    1. Dependant on the type of application that is being created the performance difference between a Native and Hybrid application can be negligible. Hybrid applications have an abstraction layer that separates the application code from the hardware. The device will need to complete extra work before it is able to directly access the hardware and this can lead to less responsive UI or lag when using the application. As Hybrid applications become more popular the performance differences with Native will become less of an issue.

  3. Web

    1. Web applications rely on the device browser and the network connection to determine their performance. Although there have been improvements in the performance of device browsers, there is still a massive gulf in performance between a web application and a native application.

Device and Platform Decision-Making Strategy
Device and Platform Decision-Making Strategy

  1. Distribution

  1. Native / Hybrid

    1. Both native and hybrid applications benefit from being able to be uploaded to the app stores. The app stores use marketing tools such as rankings and featured placement to allow for more users to access the application. 

    2. A negative of the app stores is that they come with their own set of requirements and content restrictions.

    3. Any updates that are to be deployed on the iOS AppStore will need to go through an approval process before they are able to be put onto the store. Updates will also have to be downloaded by the user before they can be used, although auto-updates are possible. Android applications can be uploaded almost instantly.

  2. Web

    1. Web applications are unable to be uploaded onto the app stores and therefore lose the benefit of the marketing tools provided by such platforms.

    2. To be able to be accessed from a users’ home screen a web application will have to be bookmarked and placed there. This is an extra step of access for the user which could limit usability. 

    3. They are able to be accessed from any compatible web browser.

    4. Any updates to the application can be immediately deployed and accessed by the user.

  1. UI Consistency

  1. Native

    1. Native apps will use device specific UI elements that are generally used across all applications on the device. This will allow the user to have a better understanding of the function of UI elements.

    2. If the platform provider introduces a new style for the standard UI elements as part of a device update then the look of the native app will update along with that. 

      1. This does not mean that the application will automatically rescale its UI to work on devices with unaccounted for screen dimensions. If the application is not fluidly implemented then this can still cause issues.

    3. Native applications have access to a range of platform specific UI animations. As they are able to directly communicate with the hardware of the device they have the performance capabilities to be able to display them without compromising the quality.

  2. Hybrid

    1. Most providers of hybrid application tools provide methods to create native-looking UI. However, if there’s a major platform design update then the application will contain an out-of-date UI until the third party hybrid tools provider decide to update. This can leave the application waiting on a feature that is out of the developer’s control.

    2. As the performance capabilities are not as high as a native application, UI animations can be less smooth than native, which can cause a bad UX.

    3. To create a native UI experience the UI would have to be tailored for each specific device platform that the application should be on. This can mean extra development time.

  3. Web

    1. Similar to hybrid applications, web applications are able to create a native-looking UI, however they will take an even greater hit to animation performance. 

    2. It is suggested that, if building a web application, developers create an original UI, rather than trying to recreate a native one. Users will notice small differences between the web application UI and a native UI and this will make the application feel broken or wrong.

  1. Device Access

  1. Native

    1. Native applications are able to interact with all of the devices APIs such as GPS, accelerometer, compass etc.

    2. Any new features that are opened up by the platform holders will be immediately available which means that developers are able to work these into their applications straight away.

  2. Hybrid

    1. Hybrid applications generally have access to a large subset of the device APIs, if not all. 

    2. When a new feature is opened up by the platform holder, then the developer will be reliant on the third party hybrid tools provider to add this to tools. This can cause delays if the developer wishes to add this into the application.

  3. Web

    1. Web applications are only able to access a small portion of the device APIs.

    2. They are unable to use secure storage outside of the application which could make securing any data an issue.

  1. Cost

  1. Web

    1. Web applications are generally the cheapest as only one codebase is required. 

    2. The skillset required for web development is generally more common and therefore specialised developers are not required.

  2. Hybrid

    1. Hybrid application costs are generally similar to web application prices. However extra skilled developers may be required to create using the hybrid tools.

    2. Initial fee to platform holders to be able to develop for platform and ability to deploy on app store.

    3. Many third party hybrid tools require an initial payment to be able to use their toolset. May also include recurring charges.

  3. Native

    1. Native applications are generally accepted to cost the most out of the three options. The distinct language and tooling ecosystems require more investment in developer skills.

    2. The developer is also required to pay an initial fee to the platform holder in order to develop for platform and the ability to deploy on the app store which can raise costs.

  1. Code Reusability / Portability

  1. Web

    1. Web applications have the highest code reusability as if the application is built with this in mind, it should be able to be run on and major mobile platform.

    2. Web standards are constantly changing and may not be supported by every browser so there may still be compatibility issues.

  2. Hybrid

    1. Hybrid applications provide a good level of code reusability and most of the code will be able to reused across Android and iOS.

    2. Still required to work UI separately for each platform.

  3. Native

    1. Native applications provide very low code reusability as the applications will need to be coded separately on both Android and iOS.

  1. Length of Project

  1. Web

    1. As the developer would only need to build the application once and it should work across multiple platforms, a web application would take the least amount of time to create. 

  2. Hybrid

    1. Hybrid applications will generally take longer than a web application as they necessary to build specific UI for each platform.

  3. Native

    1. Native applications generally take the longest of the three as they have to be coded separately for each platform.

    2. The length of the project can be cut down dramatically by having developers working concurrently, however this would increase the cost (See ‘Cost’).

  1. Monetisation

  1. Native / Hybrid

    1. Include a much larger range of options for monetisation including in-app purchases, platform-native advertisements and app purchase itself.

    2. The platform holders will take a percentage of any revenue which is usually around 30%.

  2. Web

    1. The are far fewer monetisation options for web applications, although conventional web means (advertisements, subscriptions etc.) are still supported.

    2. Web applications aren’t bound by any platform holder to give a percentage of their revenue.

  1. User 

  1. Native

    1. Native applications provide the greatest User Experience (UX) of the three application types. The performance benefits described above ensure that it will always be the most responsive and smooth experience. The UI consistency will provide the user with an interface that will be familiar and intuitive. The application can be found in a common and understood app store also so the user doesn’t need to remember URLs to be able to access it. Once downloaded it will also be conveniently located on their device.

  2. Hybrid

    1. A lot of the benefits the user will receive from a native application also apply to a hybrid. However, the performance will never exactly match that of a native application.

  3. Web

    1. Web applications are generally the least user friendly of the applications. The lower performance rating and added difficulty in accessing the application provide a less enjoyable experience for the user.

When should each type of application be developed?

The type of application to deliver will change dependant on the features and requirements that are needed and also the development environment. The following diagram will give a very basic overview on the decision making process.

Device and Platform Decision-Making Strategy
Device and Platform Decision-Making Strategy

  • Native Application

    • As native applications provide the highest level of performance, and therefore provide the potential for the highest quality of application, they are the initial recommendation as to what type of application to build. As stated above, they are the most expensive option in terms of time and cost, however they will also be able to provide the greatest UX. 

  • Hybrid Application

    • Under certain circumstances a hybrid application is preferable to a native application. 

      • If the project is under development time or cost restrictions then creating a hybrid application is preferred. Although the performance can be comparable to a native application, they will always be slightly less responsive which can lead to a bad UX. 

      • If the development team responsible for the application are not proficient in the native coding languages required for a native application, then it would make sense that they create a hybrid application. There are a large number of common coding languages available that are capable of being used to create hybrid applications.

  • Web Application

    • If an application is needed to deliver content to a user without the need to go through the app stores, then a web app would be the best choice. Web apps are designed to make content-driven websites accessible on mobile devices as, with a responsive design, they will scale and update the layout depending on the mobile devices screen size. As web apps only require to be developed once to work on all compatible devices, it will also bring down production time. However, multiple screen sizes, operating systems, and browsers will drive up testing and compatibility programming times.

Leave a Reply

Your email address will not be published. Required fields are marked *