“Mobile Application Development Platform” when searched on google.com lists Molecular Mobile Application Development Platform (MMADP) in top 50. As one of the pioneering “relyshore” technology vendors the Innovative Development Team at Webline Group endeavors to share technical shortfalls of different platforms available in the Enterprise Mobility Vertical (EMV).
Generic Stack of Technological difficulties across different platforms are as under:
More Device/Platform/Browser feature Fragmentation:
- Many devices especially Android devices need adjustments from developers with the various sizes, shapes, and screen resolutions available for each platform.
- Native apps require learning platform-specific skills and languages.
- To use prefixes, to implement some of the APIs differently, to handle certain situations in non standard ways are few challenges developers have to face.
- It is little difficult to handle the combination of multiple devices and browsers.
- Execution speed and low performance due to fragmentation is one of the main problems in HTML5 cross-platform app.
Development & Back-end Integration Systems Approach:
- There are variety of ways to make the apps such as Native Apps, Web Apps and Hybrid Apps.
- Developers need to create accounts, understand the packaging details on each platform, and have knowledge about installation and usage methods of the tools provided.
- Challenge to use agile development processes, supporting user’s choice, coding one time to run on many devices, including a variety of on-board sensors.
- Each platform such as Android, iOS and Windows has its own tools and languages so developing applications become challenging.
- Limited codebase management and customization to each specific device while creating a multi-platform application.
- Enterprise apps require integration with the company’s back-end systems, which unfortunately requires a lot of coding.
- Endorse transparency and consistent access to various back-end systems with single sign on. Maintain interfaces even when systems change. Integrate external services that enable mobile functionality. Traverse the firewall without comprising security.
- Develop apps according to user needs, optimize apps, and minimize data entry.
- It’s tough for app developers to test applications on a wide range of devices.
- Test engineers need to test the app continuously to ensure the proper functionality on various mobile devices.
- Project delays happen sometimes in cross-platform apps, when a clear bug on one platform is fixed, only to cause another issue on a different platform or device needing Regression Testing.
- Hybrid apps offer less flexibility.
Security of an application or data:
- Developing a secured accessible solution that restricts device manipulation is a challenge.
- Control and removing corporate data from the device while still maintaining user’s personal data on the same device.
- Deciding distribution model, defining requirements, enabling automatic updates, managing licenses taking care of application distribution management.
- Provide quick time to value. Enable low total cost of ownership.
- Native applications are expensive as they require platform-specific development expertise.
- Enterprise mobile apps for multiple devices increase development costs as they need expertise for different operating systems and technologies.
- Web’s limited access to platform-specific features.
- It is expensive to develop native apps and maintain many versions of the same app for different devices and OSes.
Let’s go through the Challenges of Kony, Xamarin, Titanium, and PhoneGap development platforms:
|Back-end connectivity||Not good during design and development||Limited to share||Used as a single stack or consumed only the MBaaS layer||Robust||Quora|
|Documentation||Extensive||Incomplete, poor documentation & the long learning curve||Both, incomplete and out of date||Not very detailed documentation||Drdobbs|
|Extensibility||Not extensible tool||Extensible tool for weaving .net assemblies||Extensible tool for creating only native apps||Less extensible||Github|
|Unit Testing||Generated artifacts are not unit testable.||A few tests fail (eg. ApplicationResourceExtensionFixture) during unit testing||Big projects unable to be completed without automatic testing||Using Selenium/WebDriver with PhoneGap/Cordova Android is currently not possible.||Stackoverflow|
|Development Time||Shorter development time||UI development: time-consuming. Code developed in the Xamarin environment cannot be reused for native applications (e.g. iOS, Android)||More time to develop an application as titanium is more complex and needs a JS SDK||Longer development time||Skelia|
|Platform Support||Supports iOS, Google Android, HTML5, Windows and Blackberry. Blackberry 10, Windows 8||iOS,Android and Windows||Android, iOS and Blackberry||Supports iOS, Android, webOS, Windows Mobile, Symbian OS and BlackBerry, Windows Phone 7 Mango||Cygnet-infotech|
|User Experience/Performance||Rich UX||Pretty good performance, faster than PhoneGap||Smooth, fast and comfortable user experience possible only with apps developed with a native development environment||Slow application performance due to lots of graphics elements in the mobile app||Enricoangelini, Glenntaylor|
|Business Logic||Develop complex business logic using the Event Editor||Limited to share the Business Logic||All business logic sharable||Complex business logic||Books.google|
|GUI Maintenance||A single code base for GUI||Tiresome job||No polished GUI screen editor||Not so clear information and directions for user-interface||Safaribooksonline, Indianappdevelopers|
|Coding||Need to write 50% fewer lines of code with drag-and-drop, reusable widgets||If you are coding in C# then this code has to be translated into objective-C or Java, and that translation depends on the Xamarin SDK||Not easy managing large code, also there is component rendering issue||Dreary & no proper guideline of coding a great user-interface|
|Graphics||Simple Graphics||Creating a font with custom icons requires a bit more time and special software||Titanium is good for apps requiring a native look and simple functionality with not many pages and without complex graphics||Apps should be built natively when they use advanced graphics which can only be accessed using third-party libraries||Xforms-kickstarter, Softjourn|
|Debugging||Available only for android and iOS devices and at a time you can debug only one application||Challenging debugging. Broken connection to the IDE and not capable of debugging anymore. Xamarin adds another layer of potential bugs besides the native platforms.||No proper debugging tools/methods so you have to rely on alert() and Ti.API.debug() calls to print debug statements to the console||Horrendously difficult to debug (no JS console)||Learnkony.wordpress, Quora, Marshallplan, m.blog.csdn,|
|3rd Party Framework Integration||Provides libraries/APIs to include OS-specific properties, and the option to integrate third party APIs||You will need to write platform specific code for different API across every platform, or create a common facade layer, etc. Xamarin 3 does not fundamentally change this issue.||Usage of 3rd party frameworks not allowed for UI development||Poor performance, esp if your app is graphically intense, i.e. a game||Stackoverflow,|
|Access of advanced native functionality||Some loss of native functionality||Library does not cover certain native functionality||Titanium actually compiles the HTML/JS/CSS to native byte code. Titanium is a Cloud-based service, which means that all compilation is done on Appcelerator’s servers.||A number of native APIs are not yet supported by PhoneGap’s APIs.||Timenolthof, Infoq, Sharepointpromag|
|Support for using third party libraries||Provides channel specific API to leverage device/ OS specific properties, including options to integrate third party libraries using a capability called Foreign Function Interface (FFI)||You can search a repository of more than 37,000 libraries right from the IDE. Sadly, it’s not possible to use them directly.||No support for third-party libraries. Third party libraries such as Flurry analytics cannot be integrated inside a Titanium App.||PhoneGap does have a community of plugins which interface with third-party libraries, but if you are using a library no one has written a plugin for then you will have to write your own.||Blog.trifork,|
|Toolkit difficulty||Being a closed tool, only forum help is available which is not open to search engines.||You can use the Xamarin toolkit to create the code for a specific platform. So the services and repositories are shared within the PCL but everything else isn’t. Also you have to write quiet a lot of code.||Titanium Eclipse offers a very poor IDE experience. Titanium Studio experience weird glitches, stop printing console messages. Also, the build process starts to ignore changes.||No Source Available||Robertalmalak.wordpress|
|Flexibility||Flexible||Xamarin Forms end up rendering native UI elements, but since they are abstracted from the native objects, they lose some of the configurability and flexibility of the native UI elements.||Face strange bugs and limitations. As project complexity increases, the saved time in fixing and workaround is lost.||Flexible||Applicoinc, Storify|
|Complexity||No Source Available||Complex system to the app toolchain comes with problems and bugs that do not exist in native apps.||Increased development complexities and cost-rise is proportional to increased complexity of application. Technical issues and efforts increase greatly with the complexity of your application.||Server side API becomes more complex||Whitneyland, Enricoangelini, Blah.winsmarts|
|Development Support||No Source Available||There is limited support for the coding outside of Xamarin. Code developed in Xamarin will not transfer and cannot be reused for native or HTML5 applications for iOS or Android.||No Source Available||Background service has a limitation to stop after 10 mins||Oodlestechnologies|
|Speed||No Source Available||A lot of operational software overhead due to the linking of codes and referencing between .NET frameworks and the target operating systems increases download and startup times of an application||Animations are generally slow and apps are not responsive when return from the background. Parsing JSON is very slow. This is mostly being mentioned whenever making Android apps with Titanium.||No Source Available|
|Cost||Free Trial for 90 days||$25 / month. Cost of Xamarin license is not cheap ($1000 per platform / per dev).||$39/month||Free plan is available||Quora|
Sources Referred: Quora; Drdobbs; Github; Stackoverflow; Skelia; Cygnet-infotech; Enricoangelini; Glenntaylor; Books.google; Safaribooksonline; Indianappdevelopers; Linkedin; Xforms-kickstarter; Softjourn; Developer; Techcrunch; Rapidprogramming; Learnkony.wordpress; Marshallplan; m.blog.csdn; Timenolthof; Infoq; Sharepointpromag; Blog.trifork; Robertalmalak.wordpress; Applicoinc; Storify; Whitneyland; Blah.winsmarts; Oodlestechnologies; Developer.xamarin; Appcelerator; Selinosblog
Would you like to know more about molecular mobile application development platform, feel free to contact us.