Mobile has swiftly risen to become the leading digital platform. What started in the consumer space has now also engulfed Enterprises. Every application within Enterprises that is being redesigned, recreated or freshly created starts with a Mobile initiative today.
While a native app provides the best user experience, developing native apps is a costly affair. It requires developing the application on each device separately and requires highly skilled developers who can code in Objective-C/Swift for iOS, and/or Java for Android devices. Many enterprises want to balance the need for great user experience with simplicity and speed of developing the application. This is where hybrid mobile apps come in. With hybrid mobile app development, businesses can create apps using a single code base that can adapt to any mobile operating system. Did you know that by 2016 more than half the mobile apps deployed will be hybrid?
Xamarin vs Cordova vs WaveMaker
Two of the most popular mobile app development frameworks are Apache Cordova and Microsoft’s Xamarin. However, both of these frameworks have their shortcomings. So, how do you choose the best framework to deliver mobile apps for your enterprise? Here we provide a detailed comparison of the Cordova, Xamarin and WaveMaker to help you choose the right platform for your mobile app delivery needs.
Development and Testing
|Need platform-specific development environments for building apps. Mac for IOS, Windows for Windows Mobile etc.||Development can be done on any platform||Browser based RAD Studio, for building apps for any platform. Cordova-based|
|SDK installation and regular maintenance upgrades need to be done for development||SDK installation is required only for building installer||No SDK installation required for development and testing|
|For testing device features, use emulator or build mobile installer for the respective platforms, Mac, Windows etc.||For testing device features, use emulator or build mobile installer for the respective platforms, Mac, Windows etc.||WaveLens app can be installed on specific device you wish to test. No need to build platform-specific mobile installer for testing|
|App’s source code is tightly coupled with the Mobile platform version e.g. Android 5.0 (lollipop) or 6.0 (Marshmallow), IOS 9 or 10||App source code is independent of the platform||Single app source to support multiple platforms|
|Xamarin Forms makes re-usability of code and components. However 30% of code still needs to be natively implemented||Need to find right frameworks around Cordova for re-usable components or build on your own||WaveMaker widget Library offers wide range of integrated UI/data components like Forms, Lists, Grid, Filter etc.|
|Native look-n-feel||Need to build for each platform||Look-n-feel for each platform taken care of by themes|
Architecture and Deployment
|Supports MVC or MVVM pattern for app development||Need to find the right framework||MVC framework|
|Separate apps need to be built for each platform with their own UI||Only one app need to be built for all platforms||Only one app need to be built for all platforms|
|Native widgets for each platform||HTML widgets only||HTML widgets, customized with native look-n-feel for each platform|
|Need to rely on Microsoft Technologies for deploying backend Services, higher TCO for development and deployment||Open source framework, no specific vendor lock-in||Open standards based code, no vendor lock-in|
|Xamarin has TestCloud to test apps||No Test Cloud platform||WaveMaker platform has single-click cloud deployment platform & UI testing capabilities using WaveLens app|
|Mobile builds on developer machine||Either build on developer machine using SDKs or use PhoneGap build service||Single-click build service for Android and integration with PhoneGap build service|
|Native performance||Performance is based on browser capabilities||Widgets are optimized for better performance on browser capabilities|
|Steep learning curve for Enterprise IT development team. Learn Xamarin codebase and platform-specific programming||Any web developer can be trained to build mobile interface using Cordova||Requires learning the RAD platform, with understanding of web development skills|
|High maintenance to keep up with platform upgrades and for each platform||Low maintenance because of cross-platform. But, plugins need to be upgraded if platform compatibility is not met||Platform takes care of upgrading the plugins, and also migration of applications to take care of backward compatibility|
|Integration with code repository for collaboration||No integrated development environment||Out-of-the-box collaboration & version control based on Git/SVN etc.|
|Extensions can be added through components & plugins||Cordova plugins||WaveMaker prefabs for building service/API integrated UI Components|