The choice for the technology framework has never been easy, specifically, when the things are continuously changing to make programming easier and preferably redundant. There are a number of vendors competing with each other and then you have the amazing open source community spicing up the offering. It becomes imperative to decide the right technology, which exactly meets your mid-term as well as long-term goals and of course, helps you save the significant amount of time and money.
At WalkingTree, we primarily use Ext JS, Angular JS and Xamarin to cater to the UX need of our customers. In this article, I will be comparing two commercially supported framework. Of course, I have made certain assumptions and this comparison holds good in that context only.
Assumption
- The business need is to look for an effective solution which will enable them to create enterprise level mobile applications with
- significant lifetime
- major code reusability
- low support and maintenance
- easily available development support
- Native Application Development using iOS, Android or Windows phone specific SDKs are not being considered
- The choice is between Xamarin (closer to Native) and Sencha Ext JS 6 (based on HTML 5)
Comparison
The following section shows the comparison between Ext JS and Xamarin by considering various factors relevant for deciding about the framework. The comparison where content has been highlighted (in bold) shall be considered as an advantage for that specific platform.
Licensing and Costs
Feature | Ext JS (modern) | Xamarin |
Licensing | GPLv3
Paid |
Paid |
Licensing Bundle | Minimum 5-user | Per developer per device |
Cost | 1.5K+ USD per developer for the premium subscription
895 USD for the standard subscription |
999 USD per developer |
Exists Since | 2007 | 2011 |
Further Relevance | Sencha Touch was added in 2010 and Ext JS 6 enables mobile application development as well | Mono open source project was launched in 2001 |
Support
Feature | Ext JS (modern) | Xamarin |
Forum | Yes | Yes |
Tickets | Yes | Yes |
Feature Requests | Done over a dedicated forum | Yes
Feature requests can be submitted here |
Professional Services | Yes | Yes |
Professional Services Partner | Around 20 across the world | More than 200 consulting partners |
Features
Feature | Ext JS (modern) | Xamarin |
Architecture | MVC
MVVM |
.Net architectural patterns |
Designed for mobile apps | Yes | Yes |
Device feature integration | Using Apache Cordova | Native API bindings are provided |
Different From-factor support | Yes | Yes |
Widgets | Yes. However, they are not platform specific. Using the platform specific theme, you may give them a native look-n-feel |
Yes Xamarin.forms controls and they are mapped to native controls at runtime |
Working with data | Rich and exhaustive data package covering all aspects of data handling | Yes |
Charts | Sencha Charts package is used | Various charts Components are available from Xamarin and its partners |
3rd party integration | Not great so far. Sencha Market may have some of these extensions. However, the extensions published there are not maintained and certified by Sencha. Also, finding support for those extensions could be a challenge. |
Rich Xamarin Component Store and via Nuget. Third Party vendors like Telerik have a component suite as well |
Platforms support | Android
iOS Windows Phone Blackberry Tizen Modern browsers |
Android
iOS Windows Phone Mac Apple Watch |
Design & Prototyping Tools | Sencha Architect | Designer for iOS, Android, and Apple Watch |
Coding
Feature | Ext JS (modern) | Xamarin |
Code | JavaScript, HTML5, CSS | C# & F# |
Code portability across platforms | Any browser that supports JavaScript, HTML5, and CSS | iOS
Android Windows Phone Apple Watch |
Code Reuse | Almost 100% Using configurations, control responsiveness, and look-n-feel across different platform and different devices |
About 20% to 30% code need to be duplicated depending on whether or not Xamarin Forms is used.
Xamarin.iOS and Xamarin.Android allow greater flexibility in UI design at the cost of adding redundant code. |
Unit Testing | Jasmine – free
Siesta – commercial |
Xamarin Studio
Xamarin.UITest, NUnit. Visual Studio Unit tests |
Run time code generation | Yes | Limited.
Not available on iOS due to platform restrictions |
Development Tools | JetBrains IDE
Sencha Cmd Sencha AppInspector |
Xamarin Studio
MS Visual Studio, Visual Code, Omnisharp |
Compilation | Interpreted Code | Ahead of time compiled to ARM, x86, x86_64 platforms on iOS. JIT on Android Better performance! |
Build and Packaging
Feature | Ext JS (modern) | Xamarin |
Build tools | Yes Sencha Cmd |
Yes Xamarin Studio, Visual Studio, MSBuild |
Native packaging | Yes Sencha Cmd + Cordova |
Yes Xamarin Studio/Visual Studio |
Testing
Feature | Ext JS (modern) | Xamarin |
E2E and functional testing | Yes
Jasmine – free Siesta – commercial |
Yes
Xamarin Test Cloud |
Automation testing | Yes Can use Selenium or any Web application testing framework |
Yes Xamarin.UITest |
Integration with CI tools | Yes The test scripts can run in headless mode with Hudson, Jenkins, Travis, and other CI tools |
Yes Xamarin Test Cloud works with Jenkins, Team City, Team Foundation Server, and Visual Studio Online |
Cloud based testing | No default integration available. However, cloud platform like Perfecto can be used for testing |
Yes Xamarin Test Cloud |
Trace and debug, analyze | No | Yes Xamarin InsightsProfilerInspector |
Deployment options | No The built package needs to be published to the App stores, manually |
Can be published to stores from their IDE |
Application Management & Monitoring | Sencha Web Application Manager | Xamarin Insights |
Resources
Feature | Ext JS (modern) | Xamarin |
Documentation | API Docs is very good | API docs is very good |
Demo, Examples | Exhaustive demos and examples available, online | Tonnes of practical and complete samples/apps available online |
Articles, Blogs | Yes | Yes |
Videos | Yes | Yes |
Other Learning Resources | SenchaTutorials,
Sencha Training Courses – online & onsite |
Xamarin University has an exhaustive list of courses |
Learning curve | Steep Proper training is required |
Easier Steep for non C# developers. Existing Android and iOS developers will find interpreting code easy. |
Conclusion
Xamarin and Ext JS are excellent options for development when there is significant work involved (several months of effort) in an application and the application is supposed to be maintained for a longer period.
Xamarin is a great choice if
- We don’t have to create the web application with same/similar functionalities
- There is a lot of logic involved in a front end and the presentation layer is relatively thinner
- The performance of the native APIs is critical for the success of the application. While it is not purely as native as ObjectiveC, it is better than Phonegap / Cordova based access of device APIs.
Ext JS is an excellent choice for developing web / mobile applications if
- The web application is equally important as the mobile application. Specifically, if the web application already uses Ext JS
- You want to develop a mobile application based on HTML5 capabilities
Summary
I hope this article helps you in deciding which framework will be suitable for you in your next mobile application development. Walking Tree is Xamarin partner as well as Sencha Partner and we know that these two frameworks exist for two different kinds of audiences. Also, they don’t claim to compete with each other. Hence, you do need to understand your requirement clearly and you must assess your available resources/constraints and mention them clearly while deciding on these frameworks. Both frameworks are going through continuous changes. These comparisons may keep changing. Hence, it is advised that you shall seek professional help to reach the final conclusion.
If you need any support in identifying the right technology or implementing the solution then do contact us. We help you build end-to-end solution/product.
Excellent Post Alok..!!, with in-depth analysis of technologies, it really helps to take decision on technology selection based on the business need
awesome!
Wow, this is very interesting! Your thoughts have brought the topic to limelight. Thank you for sharing it. You might want to read this also: https://goo.gl/dUR6Zr I look forward to more articles based on this topic. Thank you again.