What is the main difference between Xamarin and Ionic?
The idea of Xamarin
is cross-plataform
native development, that is, when generating the applications, native applications are generated for each platform, be it IOS, Android or even windows applications. The main difference is that with Xamarin
the applications are developed from .NET Framework
with C#
. Another advantage is the interface, each platform has its guidelines ( Android and IOS ) and Xamarin
will generate the interfaces respecting each one, an example is the menu, which in each platform by default stays in one place (Android on top and IOS on bottom). The disadvantage of Xamarin
is that only 75% of the "interface code" can be shared between the platforms, ie in the other 25% it is necessary to create visualizations for each platform.
The idea of Ionic
is also a multiplatform development, but only for IOS and Android, its differential is the use of Web components in development (HTML, CSS and JavaScript) and uses a WebView schema for execution.
Which of the technologies is the most performative?
In terms of performance the Xamarin
wins, but, I will complement the answer with a "provocation", more and more this difference tends to decrease as the technologies advance, depending on what you want to do, it becomes imperceptible to the user the difference in speed.
Why use Ionic? Why not use it?
Development speed, if the team already has Web knowledge, will have a giant speed gain in development, in applications that do not use many features of the mobile (when I say resources, I do not say access to "native" items because today Ionic
is already able to access 99.9% of the resources), in terms of local processing.
Simple applications that will only consume apis, or bring visualizations to the user, with little intention, there is also gain.
Lower cost than% or native% applications
Do not use when making games applications, applications that will consume some processing and memory.
Why use Xamarin? Why not use it?
If the team knows the development technologies, there is also gain in development.
Applications that will be cross-platform
Applications that will consume certain processing
Do not use when the application is not cross-platform.
Depending on the time you have, there may be a learning curve, which may be a factor in not using technology.
An addendum, according to the guidelines, if application development is for only 1 platform (IOS or Android), native development is advised on the native platform.
Recommended comparative readings (All are in English):
Reading 1 , Read 2 , Reading 3 ,
Reading 4