- Core Competency of Current Team – would developers be able to adapt to the framework/tool easily?
- Compatibility – is it compatible with most 3rd-party/external SDKs?
- Developer Community Ecosystem – is it connected enough?
We at WASP Mobile have worked extensively with one such cross-platform tool which reasonably satisfies all 3 points mentioned above – Xamarin.
Purely from a development perspective, here are some points in favor of Xamarin…
Easy XML Parsing:
Most often, developers (on both iOS and Android Platforms) are faced with the task of parsing XML – either from an XML-SOAP based web service or an RSS Feed. Although there exists enough pre-defined parser components that can be used for the task, the ease of .Net Library Dataset Component or LINQ is far more. Searching Tags, Condition-Based Retrieving of Data and Sorting can be done in a much easier manner, combined with usage of Regular Expressions.
Use of XML as an alternative to SQLite or PList:
For app database, SQLite or PList are typical choices for a developer. SQLite needs knowledge on the legacy SQL commands, and PList has obvious problems with parsing. Here again. XML can be used as Database, embedding it within the project resources. Once designed, CRUD operations can be easily done either with Dataset or LINQ, which are included in overall package of Xamarin platform.
One set of classes across iOS, Android, Windows Phone, Desktop & Web applications:
Yes, this is possible. Plus, the added advantage of easy-to-code language like C#, and the world of .Net classes, add immensely to overall value of Xamarin – as native cross-platform app development tool.
With all its advantages, there are a few points where Xamain falls short of traditional development approach – Objective C and Android Java.
Developer Community Strength:
Obviously, compared to geeks on traditional side, number of developers on Xamarin doesn’t quite match up. What does it mean: When dealing with a very specific issue, if you’re looking for an equally specific answer, there’s a good chance the search could be frustrating & futile; only because of not enough developers (support) in the community.
Not quite all C#:
Although the complete code is written in C#, in order to achieve best results in cross-platform performance consistency, one often needs to read, learn & understand quite a bit of Objective C (for iOS) and Java (for Android) code and standards.
Application Size Overhead:
Apps developed with Xamarin are much larger in size, when compared to standard approach. This may not be acceptable to some clients, especially since it also means greater download time for end-users.