I have invested some time learning a bit of Ionic and really like the framework, but I have a .net C# background and have to make the decision as to whether I should learn Xamarin instead.
I have asked a number of people for their opinions and the response has been mixed eg…
Xamarin is now free and backed by microsoft
Xamarin complies down to native code, and is therefore faster
Xamarin produces a more native app (see 2 above)
Xamarin development is slower. Every change requires a build.
Xamarin requires a UI to be developed for each platform windows, android, ios
Xamarin does not suffer from inconsistent browser implementions across devices… Crosswalk solves this for Ionic, but increases the size of the app
Basically, is the cross platform future going to be solved by products like Xamarin or is it going to be Html 5 Ionic. I would very much like to hear other opinions on this subject.
it depends what you want. I want to build fast apps with html5 and javascript, because i believe in the concept and the future. (and debugging is really easy).
If you does not care what there is at the end. you should choose xamarin or something like react native.
But i hope in the near future, nobody needs to develop native code. because everything can be done with webtechs. No need to learn ugly objective c or swift and java only to support android and ios. You need to consider everything if there are no updates. have to change many of you code from time to time.
The cordova approach is easy an simple to use and to support.
Another dream is that you do not need any Cordova-Plugins for standard purposes. Browsers should get a special mobile api to write to the filesystem, access contacts, camera and so on.
Thank you for getting back to me.
You are right about the speed of development when using Ionic. It is very easy to make a change and see the results appear immediately in the UI. But… How do you answer the question of performance when for example I want to plot or draw on a map or pan across the map. I’ve been told that this can be really slow because it is not a native solution. Is it true that Xamarin is faster in this respect?
It takes a lot of effort (for me) to learn a new technology, so I’m keen to get it right first time and not have to change direction later.
This always depends what you want to do and what are your endusers. Do they have the newest highend devices. or do you have devices like < Android 4.4.4 and so on.
I built many stuff with google maps (address search and reverse search) using pins and adding custom styled info windows. And so on.
It always depends of the amount of data you want to present.
First of all i would give ionic a try. For testing your purposes you can simple create a blank ionic app and include a map. this will take half a day to play around. After that you can decide to learn other technologies.
If you create native apps they will perform better, yet. But maybe the performance of webtechs/ionic are enough for your purposes.
I only mentioned performance bottlenecks during view transitions and scrolling long lists. But there you can add simple workarounds like --> only show the view content after the transition has finished --> hide big content when back-transitioning starts.