Skip to Navigation

Need a Mobile Development (App)roach

The buzz over the past few years has been about the creation of mobile applications (apps), and interest continues grow. Many technology and web companies are wondering what is the best way to establish a presence in the mobile app space and what approach should be taken now and for the future of developing apps. What solution fits your company’s needs and goals? Let me help you out. Below, I’ll describe and compare three options for developing apps and offer a few solutions or platforms for building them.

1. Native Mobile Apps

Apps' built-in native operating languages are specific to a native operating system and platform. iPhone and iPad apps are built using Objective-C. Android apps are built with Java, and Windows are usually built with C++, C#, Basic.NET, or ASP.NET.

Pros

Benefits to creating apps the native route include: speed, better performance, consistency in transitions and usability, access to native User Interface (UI) components, and access to all native API components and most of the available device features.

Cons

When choosing this route, you first have to hire a developer or a team of developers that specializes in the specific languages for the platform you or your client has specified. This limits your larger audience and will not allow you to reuse code, as each app that is device-specific will have to be written multiple times in multiple languages. This takes time and, from a business perspective, time is equivalent to money.

2. Web Apps

Web Apps are built primarily using HTML, CSS, and JavaScript or Server-side languages like PHP or ASP.NET to resemble a mobile app as closely as possible, but are actually running through a device’s browser.

Pros

The benefit of choosing this route is that the code is portable and runs across all platforms and devices. You typically write the code once, usually with skills that developers in most technology companies already have, and it will generate multi-platform support.

Cons

Unfortunately, web apps are not able to be distributed through an app store, and usually have little to no access to the devices’ features or native APIs. Despite the limitations, this route seems to show a lot of potential and promise, as companies such as Sencha Touch, and jQuery Mobile offer JavaScript toolkits to help with the client-side and functionality of going this route.

3. Hybrid Apps

Hybrid Apps are often confused with native apps. They use web technology combined with native components and APIs. The code is written using cross-platform web technologies that is used on websites and mobile web implementations, and then wrapped in a native shell or container which acts as a bridge. The bridge works as such creating a native web view control as an execution layer to render the HTML, CSS and JavaScript through the native browser rendering engine, but through the browser itself.

The Webkit rendering engine — used in Chrome and Safari — runs on Android, iOS and the newer model Blackberry phones. Mozilla is used by Firefox and other open source browsers. Windows uses the Trident engine, the same as Internet Explorer. App developers are able to choose writing a bridge individually for each mobile platform or using technologies such as Apache Cordova (formerly PhoneGap) a library which exposes device capabilities to the hybrid app, written with HTML5, using a JavaScript API.

Pros

Benefits of hybrid apps are the mobile cross-platform reach that can be targeted at a very reasonable cost. Most companies that have web developers can transition them to mobile by leveraging their current knowledge and skills. Better performance than web apps. Access to a few of the device capabilities and APIs such as camera and geolocation. Distribution through the app stores of targeted platforms.

Cons

A major drawback with this approach is that the app will still runs slower because it is running in a native web view container, instead of exposing direct access to the device APIs and capabilities.

Which should I use?

Code display for Native Application, Web Application, Hybird Application

As an overview, here is what we are left with: Native excels in performance and device access, but suffers in cost and updates. Web is much simpler, less expensive, and easier to update, but is currently limited in functionality and cannot achieve the exceptional level of user experience that can be obtained using native API calls.

The hybrid approach provides a middle ground that, in many situations, is the best of both worlds, especially if the developer is targeting multiple operating systems.

As a company or developer looking to enter this market, keep in mind the trade-offs between the user’s experience, application functionality, cost, and delivery time. You have to decide which strategies best fit with your goals. You might find all three approaches are the solution based on the nature and requirements of the projects or applications you are delivering.

 

Comments

I have been looking to build

I have been looking to build a good professional opinion on the topic. Your post got me a step further in the right direction. Many thanks :-)
- dot net developers
 

Nice post

Hey Jason That is such a nice post. I have been working in a mobile apps development company and wishing to switch my current profile to apps developer, but was not getting how to make a start. Your post pretty nicely provides information between different type of apps and their pros/cons. Thanks a lot.
-Android Application Development

I am looking to create a

I am looking to create a cross-platform apps for a newly launched IPhone platform. Any recommendations?
- Phillips

Post new comment

The content of this field is kept private and will not be shown publicly.
  • Allowed HTML tags: <em> <strong> <cite> <code> <ul> <ol> <li> <dl> <dt> <dd>
  • Lines and paragraphs break automatically.

More information about formatting options

Type the characters you see in this picture. (verify using audio)
Type the characters you see in the picture above; if you can't read them, submit the form and a new image will be generated. Not case sensitive.