Key Approaches To Mobile Development Explained

Android and iOS, having 52.9 and 43.3 percent of the market respectively, are the two obvious leaders among mobile operating systems. Thus, introducing an app that covers only one platform means losing almost half of the potential audience.

However, crafting 2 native apps at the same time could be even more wasteful, despite all the perks of native development. Besides, what if you decide to cover Windows Phone and Blackberry devices as well? Creating only one app that can run on all platforms seems to be a far better option. But is it?

We have already raised this issue in our previous article covering the 5-step guide for choosing the mobile development approach. It’s time to shed some light on the technologies behind each of the approaches.

1. Native App Development

This approach implies the use of platform-specific programming languages, software development kits, development environment and other tools provided by the OS vendors. As a result, building native apps for several platforms requires you to employ two separate technology stacks. For example, the basic toolset for iOS and Android development is as follows:

The above-listed out-of-the-box tools allow you to create advanced features and nearly perfect experiences within the native apps. Yet, this approach is the most time-consuming and tends to be the most costly. To create a native app for each platform, you need separate development teams to code for iOS and Android or any other OS. Obviously, this involves additional investments.

Native apps can use 100 percent of the features available for a specific OS and corresponding devices. They usually perform better and enable completely custom, platform-specific UI implementation — any nonstandard interface element or complex animation can be created using native tools. Hence this approach is perfect for consumer-facing app development.

2. Cross-Platform App Development

Cross-platform approach employs a single toolset to deliver apps across multiple platforms. However, if solving the native vs. cross-platform dilemma can be difficult, choosing among the available cross-platform tools might be even harder. There are 3 major ways to build cross-platform apps.

Hybrid development

It is the most widely used cross-platform approach. Hybrid development makes use of the standard web technologies and tools like HTML5, CSS, and JavaScript. The shared code is then wrapped in a native container, which can be done using various tools (PhoneGap, for example) and shipped as a regular app. Such apps function similarly to websites. They run in UIWebView/WebView — platform-specific components used to display web content directly inside an application instead of a standard browser (Safari or Chrome).

Hybrid approach is often called “Write Once Run Anywhere”, which means lower development cost and fast turnaround. Nevertheless, the solution is far from perfect in many aspects. Its most common drawbacks are:

  • low performance;
  • slower interactions;
  • generic UX;
  • limited access to device’s hardware and OS-specific features.

Compiled solutions

A slightly different cross-platform approach is growing its popularity. Unlike hybrid development, it involves using another technology stack as well as strategy. For example, Xamarin source code is written using C# and .Net framework. It is then cross-compiled into the native code for any platform (iOS, Android or WP).

Cross-compiled apps tend to outperform hybrid ones, they are often classified as native. However, this is still not an out-of-the-box solution, so the typical cross-platform drawbacks might be present. For example, immediate compatibility with the latest OS updates is practically impossible for any third-party tool: it takes time to bring new features to the framework.

Interpreted solutions

The last approach combines the benefits of the above-listed tools: it mostly uses web-based technologies to develop mobile apps which run natively. In the case of Appcelerator/Titanium, a cross-platform app is written in Javascript and can be executed on any device as the native code, with the help of a dedicated in-built engine (interpreter). Thus, using a single shared codebase, we can run the app on multiple platforms.

Interpreted apps can be compared to the compiled ones in terms of efficiency and speed. Yet, they tend to have the same drawbacks: depending on the third-party platform for the latest compatibility and the quality of performance, they cannot provide 100 percent native experience.

Choosing your approach

According to a recent study, 85 percent of companies are planning to develop from 1 to 20 applications in the near future. If you have a backlog of more than three apps for the next couple of years, choosing the right development strategy and toolset might be a decision worth millions.

Tailoring your mobile strategy to your audience needs is the only way to make the right decision about the technologies. So consider your purpose and resources you have at hand first. Or ask for professional consultancy.

You can find the original at AltexSoft’s blog: “Key Approaches To Mobile Development Explained”.