Building business apps for mobile devices should be easy (part 1)

Mobile should be easy part 1

This is the first blog of series of three titled “Building business apps for mobile devices should be easy”. The blog series is based on an article by Richard Lancaster, published in MC Press at http://www.mcpressonline.com/wireless-/-mobile/you-want-to-build-business-apps-for-mobile-devices.html#sthash.G9xwG1TP.dpuf.

This first blog covers the topic: How Native, Hybrid and HTML Mobile App types compare

Building business apps for mobile devices should be easy.  Firstly, the physical features of mobile devices impose limits on memory, storage capacity and screen size.  Secondly, mobile apps typically satisfy a narrow set of business requirements. One might expect that the device constraints and a narrow requirement domain would simplify the task of building mobile apps. However, building business apps for mobile devices can be hard work, especially for companies that have little experience in mobile development and are embarking on new projects.

Companies are often struggling more with the decisions that precede app-building than the actual app building activities itself.  As you’re considering business apps, these are some of the decisions you’ll need to make:

  • Which processes or transactions are appropriate for mobile apps
  • Which mobile platforms to support
  • What types of app to use
  • What development tools to use
  • How to distribute the apps: via an app store or side-loading

The skills of your developers can influence or limit the choices. Which approach should you take?

  • Train existing developers who have no mobile skills.
  • Hire new developers who have the skills but not the business understanding.
  • Outsource the all of the mobile development.
  • Just purchase an already-available app.

The decisions are intertwined such that one choice can force outcomes for everything. For example, choosing native apps on one platform determines the platform, reduces the list of suitable development tools, identifies the required developer skills, and excludes most of the other options.

Which app type is the most appropriate for the business requirements? Which app type is optimized for performance or the easiest to build? Are native apps faster than hybrid apps? What app type is the easiest to build? What criteria do you use to assess the options? What action do you take if an app store rejects your apps?

In the end, the differences in the mobile platforms and development tools matter less than a well-thought-out mobile strategy (platform, app type, and development tools), less than the choice of appropriate business processes to mobilize, and less than the quality of the user experience you build into the apps.

Mobile App Types

Mobile apps fit into three categories: native, hybrid, and HTML.

Native Apps

Native apps are installed on a mobile device and compiled to run on the device’s operating system, like RPG or COBOL applications on IBM i, Java on Linux, or C# on Windows. Developers build native apps using languages including Objective-C (or Swift) on iOS, Java on Android, C# on Windows Phone, and C/C++.

Hybrid Apps

Hybrid apps are a combination of two components: the business app and a container (or wrapper). The container is a native app that hosts the business app and provides access to mobile device features including the camera, location services, and sensors. Developers use HTML, CSS, and JavaScript to build the app and tools to package the app with the container.

HTML Apps

HTML apps (also known as pure HTML) are server-based or device-based Web applications. The applications are designed to fit mobile device screens or use a responsive design that can adapt the user interface for different screen sizes. In the browser, developers use HTML5, CSS, and JavaScript to build the app’s user interface and business logic, and, on the server, developers use other languages (C#, COBOL, Java, PHP, RPG, Ruby, Python, etc.) for the business logic and data access components.

Developers can also package the application and save it on a mobile device. Mobile device users operate the app using the browser on their mobile device.

App Types Compared

This table presents some of the characteristics and dependencies of each app type.

CharacteristicsNativeHybridHTML
App runs as compiled, executable codeYesOnly the containerNo
Requires HTML, CSS, and JavaScriptNoYesYes
Requires access to a server to runNoNoDepends on use of local storage
Can access server resourcesYesYesYes
Can use the device cameraYesDepends on the containerDepends on the device’s browser
Can use location servicesYesDepends on the containerDepends on the device’s browser
Can store data on the deviceYesDepends on the containerDepends on the device’s browser
Can use sensorsYesDepends on the containerDepends on the device’s browser
Runs on every mobile deviceNoDepends on the containerDepends on the device’s browser

HTML apps depend on the browser provided with a mobile device and the HTML features implemented in the browser. The HTML5 specification provides solutions for accessing mobile device features from apps developed using HTML. For example, the SQL database API and the offline application HTTP cache are options for equipping HTML apps with offline storage.

Hybrid apps rely on a container (or wrapper) app for access to device features, and the apps can use only the features made available by the container.

Which App Type Is Best?

The short answer is, it depends.  Each app type is suitable for most applications, but business requirements may suggest desirable app characteristics.

  • Native apps are the most appropriate when animation is a requirement.
  • Hybrid apps offer the potential for cross-platform apps with the ability to write once and run anywhere.
  • HTML apps are best for ease of deployment or if you want to avoid app stores and side-loading.

However, each app type brings compromise, and that’s the reason for careful consideration when choosing an app type.

Keep in mind, the app type is only one of the factors that influence decisions concerning mobile app development.

Richard Lancaster

Author: Richard Lancaster

Richard Lancaster, Product Manager at LANSA's Product Center in Sydney, Australia Richard is LANSA's Technology Evangelist with a deep understanding of development and integration technologies on the IBM i, Windows, UNIX and IBM mainframe platforms. With over 30 years of experience in the technology industry, Richard previously worked as a solutions architect for systems integrators Aspect Computing and the KAZ Group – and held a range of roles from Computer Operator to Systems Development Manager at various banks and insurance companies.

Leave a Reply

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