Mobile App Technology
There are two main decisions that must be made when beginning any mobile app development project:
- Which platforms will be supported?
- How will the app be developed to support those platforms?
The answers to these fundamental questions will have the biggest impact on the cost and skills.
Whether building single or cross-platform mobileapps, there are three primary development Techniques that can be used to build mobile apps:
- Browser
- Hybrid, and
- Native
Browser App (Mobile Website):
Browser app development leverages the power of HTML, CSS, and JavaScript to build and deliver apps via modern mobile browsers. Mobile Browser app is the fastest way to build apps that can reach multiple mobile platforms.
PROS
- Familiar development languages (JavaScript, HTML, CSS) and relative abundance of software developers with these skills
- Simple, browser-based deployment
- Easiest way to deploy an app to multiple platforms, reach most users (“automatically” available on any device with a capable browser)
- Built on industry standards, no platform lock-in
CONS
- Limited access to device APIs and sensors (bound by browser security)
- Cannot be distributed via mobile app stores
- Few mobile platforms support direct installation of mobile Browser apps (such as the iOS “Add to Home Screen” option in Safari)
- App developer must monetize app independently (no app store revenue)
Hybrid:
Hybrid apps aims to combine the convenience of developing with HTML, JavaScript, and CSS with the power of native apps. With this technique, mobile apps are developed using the familiar technologies of the web; identical to Browser apps, but the resulting application is then packagedin a native app “shell” that extends the power of the Browser app. The native shell acts as a proxythat allows JavaScript to access a wide range of device APIs and Sensors, not normally available in a browser. It also allows apps to be distributed through mobile app stores.PhoneGap is the most popular open source hybrid app containers.
PROS
- Familiar development languages(HTML, JavaScript, CSS) and availability of software developerswith these skills.
- Access to many device APIs and Sensors (beyond normal limits of JavaScript).
- Installable apps that can be deployed, monetized
- Common code base for cross-platform apps
CONS
- Separate configuration and build is required for each target platform (requiring native tools or theassistance of new cloud build tools).
- More difficult to package, debug, and deploy than Browser app.
- Bound by app store rules, less freedom than Browser app.
Native:
Native app development is the most familiar mobile app development technique. It refers to the technique that leverages platform-specific SDKs and languages to build an app. For example, Native apps on iOS use Apple’s APIs, Objective C, and UIKit. On Android, apps use Google’s APIs, Java and Android’s specific XML UI markup. On Windows Phone, it’s Microsoft’s APIs, .NET, and XAML.
PROS
- Unrestricted access to underlying platform APIs and device capabilities
- Maximum application performance (due to vendor optimized device APIs)
- Fewest limits on app design and behavior (only limited by platform, device)
CONS
- Most expensive, least flexible technique for cross-platform development
- Many languages and tools required for each platform
- Smaller pool of available developers with necessary skills for each platform
- No-to-low development reuse between platforms.
Every app and every organization will have different priorities that guide the decisions made for appdevelopment, but there are several key drivers for most mobile development projects:
- FLEXIBILITY: The ability to easily adapt an app to new and changing mobile platforms
- TIME TO MARKET: The time it takes to build and deliver an app to mobile users
- COST: The cost of building a mobile app, in terms of development hours, training, and maintenance.
- PERFORMANCE: The perceived speed of a mobile app
Download our Mobile App Technology Portfolio below: