Need advice about which tool to choose?Ask the StackShare community!

PhoneGap

584
685
+ 1
94
Xamarin

1.3K
1.5K
+ 1
785
Add tool

PhoneGap vs Xamarin: What are the differences?

Developers describe PhoneGap as "Easilily create mobile apps using HTML, CSS, and JavaScript". PhoneGap is a web platform that exposes native mobile device apis and data to JavaScript. PhoneGap is a distribution of Apache Cordova. PhoneGap allows you to use standard web technologies such as HTML5, CSS3, and JavaScript for cross-platform development, avoiding each mobile platforms' native development language. Applications execute within wrappers targeted to each platform, and rely on standards-compliant API bindings to access each device's sensors, data, and network status. On the other hand, Xamarin is detailed as "Create iOS, Android and Mac apps in C#". Xamarin’s Mono-based products enable .NET developers to use their existing code, libraries and tools (including Visual Studio*), as well as skills in .NET and the C# programming language, to create mobile applications for the industry’s most widely-used mobile devices, including Android-based smartphones and tablets, iPhone, iPad and iPod Touch.

PhoneGap and Xamarin can be categorized as "Cross-Platform Mobile Development" tools.

Some of the features offered by PhoneGap are:

  • Android
  • Blackberry
  • iOS

On the other hand, Xamarin provides the following key features:

  • Cross-platform development- Thinking about supporting iOS, Android, Mac and Windows? Xamarin allows you to write it all in C#.
  • Reuse existing code- Use your favorite .NET libraries in Xamarin apps. Easily use third-party native libraries and frameworks.
  • Discover as you type- Explore APIs as you type with code autocompletion.

"Javascript" is the top reason why over 44 developers like PhoneGap, while over 111 developers mention "Power of c# on mobile devices" as the leading cause for choosing Xamarin.

PhoneGap is an open source tool with 4.15K GitHub stars and 974 GitHub forks. Here's a link to PhoneGap's open source repository on GitHub.

Rdio, Olo, and Rumble are some of the popular companies that use Xamarin, whereas PhoneGap is used by Infoshare, Binary.com, and StreetHub. Xamarin has a broader approval, being mentioned in 74 company stacks & 65 developers stacks; compared to PhoneGap, which is listed in 86 company stacks and 34 developer stacks.

Advice on PhoneGap and Xamarin
Bhupendra Madhu
Web Developer at Ecombooks · | 8 upvotes · 710.8K views
Needs advice
on
FlutterFlutterReact NativeReact Native
and
XamarinXamarin

I want to learn cross-platform application frameworks like React Native, Flutter, Xamarin, or Ionic, and I'm a web developer. I can learn other programming languages as well. But I'm confused about what to learn, which framework is best, and which framework will last long as the application grows further into complexity.

See more
Replies (3)
Myo Win
CTO at Myanmar Web Designer (MWD) Co., Ltd. · | 5 upvotes · 37.9K views
Recommends

Flutter is the best one. If you are a new comer in mobile app development, choose Flutter.

But if you have strong experience in JavaScript and you have a lot of JS websites that you want to develop into mobile apps, choose React Native.

Ionic also has its strong points such as a lot of prebuilt components for different platforms and minimal dev environment requirement (you only need a browser).

See more
Recommends

React Native has a very rich ecosystem and if you're already a web developer, the skills that you already possess will transfer over very well. React is the second most popular web framework according to Stack Overlow's 2022 Developer Survey. No one framework is the 'best' as they all serve different purposes and have different use cases. If you're looking to pick up something popular, I would recommend React Native.

See more
Kubilay Cagri Yildirim
Senior System Architect at Profelis Bilisim ve Danismanlik · | 1 upvotes · 5.4K views
Recommends

The easiest and fastest for you right now is React Native. I dont know about the Xamarin but I dont like microsoft.

See more
Needs advice
on
IonicIonicPhoneGapPhoneGap
and
React NativeReact Native

Looking for some advice: we are planning to create a hybrid app for both iOS and Android; this app will consume a REST API. We are looking for a tool for this development with the following attributes:

  • Shallow learning curve; easiness to adopt (all team is new into mobile development, with diverse backgrounds: Java, Python & AngularJS),

  • Easiness to test (we discarded Angular-based tools already: creating a unit test in Angular we considered time-consuming and low value. At this point of the project, we cannot afford UI testing with Selenium/Appium based tools).

  • So far, we are not considering any specific capability of the device. Still, in the mid/long term, we would require the usage of GPS (geolocalization) and accelerometer (not sure if it's possible to use it from a hybrid app). Suggest any other tool if you wish.

See more
Replies (4)
Alcides Costa
CEO, Co-founder at inPlace · | 6 upvotes · 63.8K views
Recommends
on
KivyKivy

If your team has a strong background in Python and you want to release some prototype soon, you could try Python and Kivy. Kivy is an open-source, cross-platform Python framework for rapid development of mobile GUIs. It supports both iOS and Android. I have passed a similar situation recently: to start a mobile app with no background in mobile development. Kivy saved me a lot of time. I could develop a prototype and release it faster than I thoght.

See more
Frederico Bezerra
Recommends
on
ExpoExpoReact NativeReact Native

To be honest , You need to think these points :

  • Developer Experience

  • Tooling

  • Maintainability

My vote for now is going with React Native with Expo , using Typescript...

With this stack You could follow some patterns and principle that the Java and python programmers are familiar with.

Typescript is a javascript Superset that you can follow Procedural , Functional and OOP approaches and an easy learning curve.

With Expo you need to concern only with the shared layer (Typescript) and the Native ones will be expo responsibility.

Please check Expo.com and try to get started using typescript.

Good performance and with EAS (paid plan) you can create a full CI CD pipeline for your app connected to the stores(Apple and Android).

See more
Recommends
on
CapacitorCapacitorIonicIonic

If you already know how to build web apps, give Capacitor a try. You can think of it like "electron for mobile" in that you can build a web app but access native functionality. Pair it with Ionic if you want a UI kit that is optimized for mobile, or build your own UI from scratch.

A bonus to Capacitor is your app will run without modification on the web as a PWA, iOS, Android, and more.

See more
Recommends
on
React NativeReact Native

Other tools have very slow performance. They are usually selected because someone on the team likes Angular, but your customers won't care what framework you're using. They'll just know the app is slow.

See more
William Miller
CEO at Stealth Startup · | 7 upvotes · 452K views
Needs advice
on
PyQtPyQtReact NativeReact Native
and
XamarinXamarin

We are developing an AWS IoT app for large boats. The IoT devices have sensors all over the boat for engine oil pressure, position, water depth, fuel level, crew location, etc. When the boat has internet, we interact with AWS cloud using lambda and Amazon DynamoDB. When the boat is offshore, the captain and crew still need normal and emergency alerts and real-time sensor information. The crew might have an Android or IoS phone or a Windows or macOS PC to receive alerts and interact with sensors. We may use the AWS GreenGrasss edge computing solution and either MQTT or HTML for that function.

Question: We want to develop a cross-platform client to run on Windows, Mac, Android, IOS, and possibly Linux. We are primarily Python programmers, so PyQt or Kivy are options for us, but we have heard good things about React Native, Flutter, Xamarin, and others. We think an AWS Greengrass core on an RPI4 could communicate to the client with MQTT or a local webserver with a client web interface.

Any thoughts would be much appreciated.

See more
Replies (2)
Recommends
on
React NativeReact Native

I don't know much about Xamarin but I know about PyQt and React Native.

However, I don't recommend PyQt because the apps made using PyQt are not that suitable for mobile apps. If you take a look at the PyQt interface, you will be able to see that the features are more of a desktop apps kind.

React Native uses JavaScript. React Native is immensely flexible in upgrading your apps because it allows you to formulate your app code into independent blocks.

In Xamarin, you have to write the code in .NET . The best thing about Xamarin is, that it extends the.NET developer platform with tools and libraries specifically for building apps for Android, iOS, tvOS, watchOS, macOS, and Windows

While the best choice for you depends on various factors but React Native app development is a promising overall choice. In today’s scenario, React Native has steady growth, flawless code structure, and brilliant and large community support. We suggest you go for React Native for your next project owing to its outstanding support from developers, easy availability, and cost-effectiveness.

See more
Saamer Mansoor
Founder at The First Prototype · | 4 upvotes · 51.1K views

It seems like your app is not really using any native functionality on the phone. I have experience with cross platform iOS & Android development. They are all really good tools! Xamarin (all the project on the website portfolio I attached) is awesome for accessing native functionality (NFC, Sensors, Bluetooth, etc), and I have built apps that have millions of downloads, some that hit Top 5 on Utilities, another that hit Top 50 in Finances. You just have to look at what your application intent is, it seems like it's just to read and post data. For that they are all pretty good, but you should also look into Ionic which may serve the same purpose

See more
Decisions about PhoneGap and Xamarin
James Bender
Lead Application Architect at TekPartners · | 5 upvotes · 58.5K views

I've yet to see a non-native application that I felt performed as well and/or provided the same user experience with Cordova/PhoneGap/Xamarin. Frankly, at best they all seemed like underpowered web applications deployed to a sandbox that ran on a phone. They didn't feel "slick" or "mobile-first" and in some cases the performance was unacceptable. At previous companies, we built a few of these apps at the client's insistence, and in every case, they re-engaged us about 18 months later to re-write the app(s) natively.

We are doing some research on React Native and Flutter, but I am not yet convinced that they can provide the same level of experience and performance as native, though I am trying to keep an open mind.

See more
Aleksandr Filatov
Contract Software Engineer - Microsoft · | 2 upvotes · 113.6K views
What is Proguard?

ProGuard is the most popular optimizer for Java bytecode. It makes your Java and Android applications up to 90% smaller and up to 20% faster. ProGuard also provides minimal protection against reverse engineering by obfuscating the names of classes, fields and methods.

How to use it in Cordova app?

I didn't find any plugins for it. So I've implemented it by myself and shared it on GitHub.

Feel free to use!

See more
Manage your open source components, licenses, and vulnerabilities
Learn More
Pros of PhoneGap
Pros of Xamarin
  • 46
    Javascript
  • 13
    Backed by Adobe
  • 11
    Free
  • 9
    Easy and developer friendly
  • 6
    Support more platforms
  • 3
    It's javascript, html, and css
  • 2
    Common code base across all mobile platform
  • 1
    Not bound to specific framework
  • 1
    Powerful Framework
  • 1
    Runs on mobile browser
  • 1
    Similar UI across all platform
  • 0
    Free easy fast and not buggy in my experience
  • 121
    Power of c# on mobile devices
  • 81
    Native performance
  • 79
    Native apps with native ui controls
  • 73
    No javascript - truely compiled code
  • 67
    Sharing more than 90% of code over all platforms
  • 45
    Ability to leverage visual studio
  • 44
    Mvvm pattern
  • 44
    Many great c# libraries
  • 36
    Amazing support
  • 34
    Powerful platform for .net developers
  • 19
    GUI Native look and Feel
  • 16
    Nuget package manager
  • 12
    Free
  • 9
    Backed by Microsoft
  • 9
    Enables code reuse on server
  • 8
    Faster Development
  • 7
    Use of third-party .NET libraries
  • 7
    It's free since Apr 2016
  • 7
    Best performance than other cross-platform
  • 7
    Easy Debug and Trace
  • 7
    Open Source
  • 6
    Mac IDE (Xamarin Studio)
  • 6
    Xamarin.forms is the best, it's amazing
  • 5
    That just work for every scenario
  • 5
    C# mult paradigm language
  • 5
    Power of C#, no javascript, visual studio
  • 4
    Great docs
  • 4
    Compatible to develop Hybrid apps
  • 4
    Microsoft stack
  • 4
    Microsoft backed
  • 3
    Well Designed
  • 3
    Small learning curve for Mobile developers
  • 2
    Ionic
  • 2
    Ability to leverage legacy C and C++

Sign up to add or upvote prosMake informed product decisions

Cons of PhoneGap
Cons of Xamarin
  • 2
    Never as good as a native app
  • 1
    Created for web pages, not for complex Apps
  • 1
    Poor user experience
  • 1
    Not build for high performance
  • 1
    Hard to see
  • 9
    Build times
  • 5
    Visual Studio
  • 4
    Price
  • 3
    Complexity
  • 3
    Scalability
  • 2
    Nuget
  • 2
    Maturity
  • 2
    Build Tools
  • 2
    Support
  • 0
    Maturidade
  • 0
    Performance

Sign up to add or upvote consMake informed product decisions

- No public GitHub repository available -

What is PhoneGap?

PhoneGap is a web platform that exposes native mobile device apis and data to JavaScript. PhoneGap is a distribution of Apache Cordova. PhoneGap allows you to use standard web technologies such as HTML5, CSS3, and JavaScript for cross-platform development, avoiding each mobile platforms' native development language. Applications execute within wrappers targeted to each platform, and rely on standards-compliant API bindings to access each device's sensors, data, and network status.

What is Xamarin?

Xamarin’s Mono-based products enable .NET developers to use their existing code, libraries and tools (including Visual Studio*), as well as skills in .NET and the C# programming language, to create mobile applications for the industry’s most widely-used mobile devices, including Android-based smartphones and tablets, iPhone, iPad and iPod Touch.

Need advice about which tool to choose?Ask the StackShare community!

What companies use PhoneGap?
What companies use Xamarin?
Manage your open source components, licenses, and vulnerabilities
Learn More

Sign up to get full access to all the companiesMake informed product decisions

What tools integrate with PhoneGap?
What tools integrate with Xamarin?

Sign up to get full access to all the tool integrationsMake informed product decisions

What are some alternatives to PhoneGap and Xamarin?
Ionic
Free and open source, Ionic offers a library of mobile and desktop-optimized HTML, CSS and JS components for building highly interactive apps. Use with Angular, React, Vue, or plain JavaScript.
Apache Cordova
Apache Cordova is a set of device APIs that allow a mobile app developer to access native device function such as the camera or accelerometer from JavaScript. Combined with a UI framework such as jQuery Mobile or Dojo Mobile or Sencha Touch, this allows a smartphone app to be developed with just HTML, CSS, and JavaScript.
PWA
Building a high-quality Progressive Web App has incredible benefits, making it easy to delight your users, grow engagement and increase conversions.It is intended to work on any platform that uses a standards-compliant browser.
Sencha Touch
Sencha Touch 2, a high-performance HTML5 mobile application framework, is the cornerstone of the Sencha HTML5 platform. Built for enabling world-class user experiences, Sencha Touch 2 is the only framework that enables developers to build fast and impressive apps that work on iOS, Android, BlackBerry, Kindle Fire, and more.
React Native
React Native enables you to build world-class application experiences on native platforms using a consistent developer experience based on JavaScript and React. The focus of React Native is on developer efficiency across all the platforms you care about - learn once, write anywhere. Facebook uses React Native in multiple production apps and will continue investing in React Native.
See all alternatives