What is the main difference between Xamarin and Ionic?
The idea of Xamarin
is the development cross-plataform
native, ie when generating the applications, native applications are generated for each platform, whether IOS, Android or even windows applications. The main difference is that with the Xamarin
applications are developed from .NET Framework
with C#
. Another advantage is the interface, each platform has its own guidelines(Android and IOS) and the Xamarin
will generate interfaces respecting each of them, an example is the menu, which in each platform, by default is in one place (Android on top and IOS on the bottom). The disadvantage of Xamarin
is that only 75% of the "interface code" can be shared between platforms, ie in the other 25% it is necessary to create views for each platform.
The idea of Ionic
is also a cross-platform development, only aimed only at 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 Xamarin
wins, only, I will complement the response with a "provocation", increasingly this difference tends to decrease as technologies advance, depending on what you want to do, it becomes imperceptible to the user the speed difference.
Why Use Ionic ? Why Not Use?
Development speed, if the team already has Web knowledge, will have a giant speed gain in development, in applications that do not use many mobile resources (when I say resources, I do not say access to "native" items because today the Ionic
can already access 99.9% of the resources) in terms of local processing.
Simple apps that will only consume Aces, or bring views to the user, with little intention, there is also gain.
Cost less than apps on Xamarin
or natives
Do not use when making game apps, apps that will consume some processing and memory.
Why use Xamarin? Why not use ?
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 the technology
An addendum, according to the guidelines, if the application development is for only 1 platform (IOS or Android) is advised native development on the native platform.
Recommended Comparative Readings(All are in English):
Reading 1, Reading 2, Reading 3,
Reading 4
Related or duplicate: https://answall.com/q/236145/101
– Maniero