Jedaias, I will respond based on my knowledge and what I have already developed with each technology.
I believe that more people in the community can contribute to this question. I see that this question is very much answered by those who are starting and in some cases may lead you to make a wrong choice.
First of all is very relative what you want to know.
Each technology or development method cited by you has its specific advantages, disadvantages and applications, that is, it depends a lot on what you want to do so that I can tell you if this or that is better.
What will direct you better is to know exactly what you want to do in your application, first of all ask yourself:
- Your application will run locally or in the cloud?
- Your application needs many device resources?
- Its application is cross-platform (Android, WP and Ios)?
I don’t particularly like either Phonegap or Xamarin (or Mono, or anything like that), that’s an opinion and doesn’t mean I’m right, but I’ve always believed that nothing beats native development, even if it is more laborious and maintenance is more expensive, native development is much safer than the use of source code interpretation and intermediation tools.
Now an idea about each option:
Native Development:
- It is more laborious and expensive, because if your application will be
multiplatform, you will have to learn each language and acquire the necessary tools for each platform;
- If the development is done using good practices and taking advantage of the best of each language, you will surely have a performance above average;
- You’ll have access to all device features.
Phonegap, HTML, CSS, Cordova, etc...
Packages web applications in a package that can be installed on the equipment;
It’s a good one for web applications that don’t need a lot of equipment resources;
Provides support there are some native features of the equipment;
Enables cross-platform development as you write only one code and generate binary files for multiple platforms;
The performance is not the strong of this approach, but it is possible to develop a lot of legal;
Xamarin, Mono
They are code interpreters that convert what you encode into C#, Delphi, etc... so that it can be interpreted as native language of the desired platform;
In a project using this approach, you have an area that is shared (Shared) between all platforms and a specific part for each platform, that is, the development is cross-platform, more has some parts that are specific to each platform;
Due to the above mentioned item, in addition to being an approach that enables cross-platform development, it has greater access to the native resources of each operating system;
When compiled has a performance closer to the performance of a native application.
That’s basically it, and I believe it can be an initial basis for you to choose what’s best for you. So based on what I passed on and the questions I asked at the beginning, below I give you my idea:
- My application is not cross-platform and needs maximum performance and access to all device resources: Native development;
- I need a cross-platform application to run locally, with database, etc...: Xamarin, Mono, or natively if I need excellent performance.
- My application does not use many device features or will run in a cloud: Phonegap, Cordova, HTML, CSS, etc...
I hope I helped. Joining this with the link that Diegofelipe passed on, I believe it will be very useful.
@bigown if it was an issue between "native apps x apps Webs" would reduce the right scope?
– user28595
I agree with you @bigown reli my question and asked for opinions on chat, it was very complex even. With the edition I would like to buy the native app, Phonegap and Xamarin.
– Jedaias Rodrigues
I’m not good at writing complex and explanatory responses kkk but look how nice it is here on this site: http://www.luisaambros.com/blog/differca-entre-applicationsnativeapplications-hybrids-mobile-web-apps/
– user28595
Thanks @Diegofelipe this link is very useful!
– Jedaias Rodrigues