Android applications, what are the advantages and disadvantages of the tools? [closed]

2

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

Considering the following items:

  • Performace
  • Application design
  • Maintaining the application
  • Accessing Device Features
asked by anonymous 19.01.2016 / 14:23

2 answers

5

Jedaias, I will answer based on my knowledge and what I have 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 fulfilled by those starting out and in some cases can lead you to make a wrong choice.

First what you want to know is very relative.

Each technology or development method you have mentioned has its advantages, disadvantages and specific applications, that is, it depends a lot on what you want to do so I can tell you if this or that is better.

What will guide you best is to know exactly what you want to do in your application, first of all ask yourself:

  • Will your application run locally or on the cloud?
  • Does your application require a lot of device features?
  • Is your application cross-platform (Android, WP, and IOs)?
  • I particularly do not like either Phonegap or Xamarin (or Mono, or anything like that), this is an opinion and does not mean that I am right, but I always believed that nothing surpasses native development, even which is more laborious and more expensive to maintain, native development is much safer than using source code interpretation and intermediation tools.

    Now an idea about each option:

    Native Development:

    • It is more laborious and expensive, since 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, it will certainly perform above average;
    • You will have access to all device features.

    Phonegap, HTML, CSS, Cordova, etc.

    • Package Web applications in a package that can be installed on the devices;

    • Good for web applications that do not require a lot of features on the device;

    • Provides support for some native device functionality;

    • Performance is not the strength of this approach, but you can develop a lot of legal stuff;

    Xamarin, Mono

    • 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, development is multiplatform, plus some parts that are specific to each platform;

    • Because of the above-mentioned feature, in addition to being an approach that enables multiplatform development, it has greater access to the native resources of each operating system;

    • When compiled, it performs closer to the performance of a native application.

    That's basically it, and I believe this could be an initial basis for you to choose what's best for you. So based on what I reviewed and the questions I asked at the beginning, I give you my idea below:

  • My application is not multiplatform and I need maximum performance and access to all device features: 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 a lot of features on the device or it will run on a cloud: Phonegap, Cordova, HTML, CSS, etc.
  • I hope I have helped. Joining this with the link that DiegoFelipe has reviewed, I believe it will be very useful.

        
    19.01.2016 / 15:05
    2

    Well come on. First of all, forget mono, it's paid for and very expensive, lots of headache for development on various platforms and documentation is very little. Get native and hybrid considering the items you want:

    • Performace: Better in native
    • Application design: Best in hybrid
    • Application maintenance: Best in hybrid
    • Access to device features: Better in native

    In the hybrid base it is much more productive and fast to do anything but it loses a lot in performace, in case you need something fast and low cost and the performace is not a crucial factor it is the best choice without doubt, now you have plenty of time and money to spare and the performace is something fundamental the best is native. Many people to launch the app quickly choose hybrid and then when it grows enough in number of users migrate to the native.

        
    19.01.2016 / 16:07