Android apps, what are the advantages and disadvantages of the tools?

Asked

Viewed 652 times

2

Between creating native apps, using HTML, CSS and Javascript together with Phonegap, or C# with the help of Mono, what are the advantages and disadvantages and which context best applies?

Considering the following items:

  • Performace
  • Application design
  • Application maintenance
  • Access to device resources
  • 2

    @bigown if it was an issue between "native apps x apps Webs" would reduce the right scope?

  • 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.

  • 2

    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/

  • Thanks @Diegofelipe this link is very useful!

2 answers

5


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:

  1. Your application will run locally or in the cloud?
  2. Your application needs many device resources?
  3. 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:

  1. My application is not cross-platform and needs maximum performance and access to all device resources: Native development;
  2. I need a cross-platform application to run locally, with database, etc...: Xamarin, Mono, or natively if I need excellent performance.
  3. 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.

  • "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;" Huuuum?!?!?!

  • In fact, I don’t even know if this word applies to the concept, but it was what came to mind, because in reality Xamarin, Mono, take what you write in C# or Delphi and convert to the native language of the operating system. It’s what I understood, but if someone has a better definition, pass me there I put in the answer.

2

All right, here we go. First of all, forget mono, it is something paid and very expensive, from a lot of headache to development on various platforms and the documentation is very little. Between native and hybrid considering the items you want:

  • Performace: Best in native
  • Application Design: Better in hybrid
  • Application Maintenance: Better in hybrid
  • Access to device resources: Better in native

On the hybrid basis it’s much more productive and fast to do anything but lose a lot in performance, in case you need something fast and low cost and performace is not a crucial factor it is the best choice without a doubt, Now if you have plenty of time and money to spare and performance is something fundamental the best is native. A lot of people to launch quickly the app picks hybrid and then when it grows enough in number of users migrates to the native.

  • Corrected, thank you very much

Browser other questions tagged

You are not signed in. Login or sign up in order to post.