In an earlier blog published last week, we have presented the various implementation choices for Mobile App Development. In this article, we would like to discuss the key factors that will influence the choice of appropriate technology framework for developing mobile applications.
User analysis
Identifying the core user group and charting their potential use case scenarios is the first factor that one must consider, prior to embarking on mobile application development. Once the core users are identified, it will be easier to form an informed opinion on the type of mobile devices they typically use, and the associated UX expectations. A solid understanding of the potential target users is perhaps the single biggest factor influencing the technology framework and implementation choice. For example, if the target users are from a specific industry segment where iPhones are popular, then it will make sense to initially target the native iOS platform. Similarly, if a WOW UX is a primary requirement, as would be the case for a consumer app, then native implementation will be an obvious choice, as the app will need to leverage all the features and functionality of the device OS to deliver the desired user experience.
Functional requirements
Understanding the core functional requirements of the app, and categorizing them into various buckets such as informational, transactional, and local device processing is another important factor that will influence the implementation choice. For example, if the core app requirement is merely information display, then a mobile-web based solution will be the obvious choice. On the other hand, if the app calls for a higher level of local processing which will be device dependent, then a native solution will be the way to go.
Multi-Device support
Whether to develop an app for a single device or platform, or target multiple platforms is an extremely critical factor that will influence the choice of technology as well as development framework. If the target user group has a diversified device profile, then you will have to consider either a Hybrid app or a mobile-web based solution. The ease of porting, reuse, and maintenance makes Hybrid app a better choice in many cases, as the app can still leverage the device features, which will not be possible with a mobile-web app.
Bandwidth limitations
In scenarios, where there could be intermittent network access, or bandwidth limitations, the app will have to run offline. This may mean that the app will have to leverage the device capabilities, and resynchronize when the bandwidth is restored. This need for making the app available offline, will also influence the technology and implementation choice.
Dev Time constraints & technology skills
Most mobile-web apps are based on standard frameworks such as Javascript and HTML, skills which are readily available in most technology companies. Developing a device specific native app or Hybrid app either calls for a higher level of technology expertise as well as retraining. If Dev time is a constraint, then a mobile-web based app is the fastest route to deployment.
Cost of ownership
The choice of technology architecture and implementation choice will have a significant impact on the total cost of developing and owning a mobile app. Mobile-web apps can be developed at a relatively affordable cost, and are for less expensive to maintain. Native apps are perhaps the most expensive to maintain, as you will have to develop and support a version separately for each platform. Hybrid apps offer the most optimal solution from a total cost of ownership perspective.
As you can see from the above cited factors, the choice of technology framework and implementation choice has multiple dimensions. A careful assessment of all relevant factors is mandatory for building an application that can meet your business goals and deliver the required functionality. The following table captures some commonly used technology choices for the various implementation scenarios:
Native | Hybrid | Mobile-Web | |
Tech Stack | iOS – Objective C, Android: Java Windows: .Net |
JavaScript, CSS3, HTML5 | JavaScript, CSS3, HTML5 |
Tools | iPhone, Android, and Windows Mobile SDKs | Cordova, PhoneGap | |
Deployment | App Store | App Store | Web based |