Determining the right mobile app strategy
Determining the right mobile app strategy for an organization would depend on the answers to the following questions:
- What is your target mobile application user base and user segmentation based on device OS?
- Do you have issues maintaining more than one code base for an app (each targeted for a specific flavour of runtime)?
- How much of native features or components does your app need to use
- What is the app performance you expect to achieve?
- What is your app distribution modality?
- What is the skill set of your developers?
- Do you require a greater app reach (distribution) opposed to greater user engagement?
- Do you require offline or network resilient operations?
- Is there an evolution path for your selected framework?
- Is your app UI intensive and thus requiring greater UI performance?
These are some of the determiners that would help one decide on the mobile app architecture that is best suited for their requirement. However, Mobile app development platforms such as IBM Mobile Foundation Platform supports frameworks for mobile application development across the spectrum of mobile app development modes.
The mobile application development frameworks spread across the spectrum of being fully native to apps that are primarily developed for Web and Mobile Web.
Read the post A deeply detailed but never definitive guide to mobile development architecture.
The image below shows the different mobile app development tiers and the frameworks for each of the tiers, which is supported by IBM MobileFirst Foundation v8.0 (Mobile Foundation Devcenter).
Let us take a look at when to choose each of the application development tier/framework as each one of them has their own benefits and shortcomings.
Native apps
IBM Mobile Foundation Platform (MFP) supports native app development for Android, iOS and Windows (8 and 10). Native applications have the following characteristics:
- Best performing
- Access to all native APIs and native components
- Same apps written for each of the desired native platform needs to be maintained as separate code bases
- Available on app stores
In IBM Mobile Foundation Platform v8.0(MFP):
- iOS app development is supported using Objective C and Swift
- Android app development is supported using Java
- Windows app development is supported using C#
Web apps
Web apps are usually developed for a user outreach not limiting to the mobile device. HTML, CSS and JavaScript are used to develop web apps. Web apps have the following characteristics:
- Rendered on a browser (mobile or desktop)
- Does not have access to native platform components
- Web app distribution and access is large compared to native mobile apps
- User engagement with web apps is considerably less compared to mobile apps
- Performance is low
- Not available on app stores
IBM Mobile Foundation Platform v8.0 (MFP) supports:
- Web app development using HTML, CSS and JavaScript
- Web app development using Angular 6
PWA
Progressive Web Apps (PWA) are an improvement over Web apps. PWA attempts to provide reliability and speed with browser based web apps. PWA aims at increasing the user engagement level by working in an offline mode or when the connectivity is poor. PWA locally caches the necessary data. PWA has the following characteristics:
- Not available on app stores
- Not supported on all browsers
- Provides better native experience than Web apps
- Has better reliability and network resiliency due to the data caching mechanism
- Can “Add to Home” the web app and can access the PWA like a mobile app
- Supports some of the mobile app like features of Push Notifications, Geolocation etc.
IBM Mobile Foundation Platform v8.0 (MFP):
- Supports the development and running of PWA
- Supports “Add to Home” of PWA on a mobile device
Hybrid apps
Hybrid app development frameworks like Cordova, Ionic, Onsenui, Framwork7 etc., has the tools required to convert Web apps, developed in HTML, CSS and JavaScript, to mobile apps for platforms such as Android, iOS or Windows. Hybrid apps has the following characteristics:
- Hybrid apps are available in app stores
- Frameworks for hybrid apps provide the plugins required to access native components
- Single codebase for an app
- UI components are rendered on top of WebView and WKWebView components
- Performance and memory issues are a concern
In IBM Mobile Foundation Platform v8.0 (MFP):
- Hybrid app frameworks such as Cordova and Ionic are supported
- Ionic version 4 is supported
- Cordova versions supported are: cordova-ios: >= 4.1.1 and < 6.0, cordova-android >= 6.1.2 and < 9.0, cordova-windows >= 4.3.2 and < 7.0
Cross-platform apps
Using cross-platform frameworks like RubyMotion or Xamarin, applications can be developed using either Ruby in RubyMotion or C# in Xamarin and can be compiled to run in either Android or iOS. The characteristics of cross-platform apps are:
- Performance almost matches that of native apps
- Single code base
- Better UI performance
IBM Mobile Foundation Platform v8.0 (MFP):
- Supports Xamarin as the cross-platform framework for app development
- Xamarin apps are developed in C#
Web Native apps
Web Native app frameworks enable app developers to develop Web apps using native components. Web View is not required to render the UI components . Appcelerator Titanium, React Native, NativeScript are some of the Web Native frameworks. The characteristics of web native apps are:
- Apps have better UI performance
- Single code base
- No WebView required
IBM Mobile Foundation Platform v8.0 (MFP):
- Supports app development using React Native
- React Native SDK for Push Notifications is available
- React Native SDK for JSONStore (Offline storage) is available
Mobile Backend
Mobile backend capabilities is another important aspect to consider when developing mobile apps with complex business functionality requiring integration with enterprise backend systems. IBM Mobile Foundation Platform provides the MobileFirst server component and adapters that provide the runtime and connectivity required to run your mobile backend piece and integrate with enterprise systems. Additionally, MobileFirst server provides the necessary logging, security and administration for your mobile apps. IBM Mobile Foundation Platform also provides MobileFirst Analytics component that can provide operational analytics on the app activities, logs, user sessions, crashes etc.
You can also build AI apps that leverage the cognitive capabilities provided by IBM Watson services on IBM Cloud using the OOTB adapters provided by IBM Mobile Foundation Platform.
IBM Digital App Builder provides the speed necessary to build mobile applications targeted for Android, iOS, PWA or Web. With Digital App Builder even a semi-skilled development team or a citizen developer can build great apps quickly.
Summary
A snapshot view of the suitable mobile app development tier for some of the mobile app architecture determiners is shown below: