
Moving forward at PhoneGap - rmason
https://blog.phonegap.com/moving-forward-6b583dcd007
======
seibelj
I feel bad for any poor soul who has to maintain a professional high-quality
phonegap / cordova / ionic app.  Such a buggy, unperformant, brittle ecosystem. 
Then to top it off you need tons of if / else everywhere for each platform,
negating a lot of the benefits. 

React Native is an order of magnitude better, still has a lot of issues but at
least it's maintainable. 

~~~
jordache
isn't FB's license very restrictive for many enterprise use cases? 

~~~
rosser
The apparently controversial part of the React license simply says that if you
sue Facebook for anything patent-related, your license to the patents
underlying React is automatically revoked. 

Otherwise, it's just BSD. 

~~~
lvillani
Wouldn't it make more sense to revoke the patents only if you sue them over
React patents specifically? 

IANAL Hypothetically, there _may_ be good reasons to sue Facebook over patents
unrelated to React, especially if they happen to break a patent you or your
company owns. 

However, that would mean loosing access to React if I happen to develop
applications that use that. 

Wouldn't such a blanket statement skew the power balance excessively in
Facebook's favor? 

~~~
rosser
Yes it would.  Deliberately so, I'd say. 

------
mschuster91
There are a couple of unique advantages of Cordova/Phonegap/Ionic over "plain
web apps":

\- it can be forced to ignore cross-origin policies, which means you can build
a backendless Twitter client using only HTML5 (api.twitter.com by default
denies CORS requests)

\- you get native access to camera livestreams - you can either use
Canvas+video elements but lose the ability to focus/flash or you can use the
File dialog which is clunky, disruptive and can't do video

\- you get real filesystem access

\- you can do the "full" app experience (no browser chrome, fullscreen without
status bar, customize status bar color)

\- proper push notifications even when browser is closed or not started

\- code sharing between your webapp and "hybrid app"

\- you don't have to use React (as with React Native) but can use any kind of
JS framework - even no framework at all (plain JS or just jquery works fine
too), or you can use and enhance already existing web apps.  This alone is a
massive advantage over any other solution: you don't have to code in a
framework that expires / breaks in a year, rework entire apps or hire native
app developers. 

And for those people who complain "webapps are lower performance than native
apps": drop that behemoth of Angular and your performance will skyrocket.  The
only things that do require a fully native app are full-blown 3D games or apps
that deal with DRMd video.  Even security with TouchID works fine with Cordova
and it's easy to code up bridge plugins if there's anything native that you
need. 

------
samcheng
I wish them the best of luck, but it definitely looks like PhoneGap is losing
to React Native.  At least, everyone I know who wants to build a mobile app but
doesn't want to invest heavily in Android and iOS expertise is building a
React Native app. 

The decline seemed to start with the Cordova mess, as the article notes. 

Is anyone starting new PhoneGap apps these days? 

~~~
mastazi
Can we try to make a list of solutions similar to React Native but without the
React Part?  I think it could be useful for people who need that kind of
architectural solution without being accustomed to React. 

e.g.: Weex, which uses Vue.js syntax -
[https://weex.apache.org/](https://weex.apache.org/)

I'm sure there are more. 

~~~
swsieber
I would love to see something Haxe based that worked across platforms,
including the various desktops.  It's pretty much there for games, there's just
not good native widget support :(

~~~
mastazi
Oh, nice, I hadn't heard of Haxe, I'm now reading more here
[https://haxe.org/](https://haxe.org/)

~~~
swsieber
It doesn't have a good native gui story, but it does have a pretty good native
graphics story - so it's a great fit for games. 

It has the potential to be great for native guis if someone were to take the
time to write the various bindings required, and probably a tool for building
out the targets like the ones that exist for game/graphic oriented apps. 

------
tuxidomasx
I've found Cordova/PhoneGap extremely useful for developing mobile app MVPs. 
Using it on my most recent project has saved a lot of development time (which
my client appreciates), while allowing us to iterate and add new features very
quickly.  Of course, part of that could just be my well-honed development
skills; as my girlfriend often reminds me, "it's not what you do, it's how you
do it." 

Once we find our groove and get to a stable point in terms of features, there
will probably be a refactor to another hybrid framework (flutter looks cool
right now).  But until then, Cordova definitely gets the job done, and I'm glad
to see the platform is maturing even further instead of stagnating. 

~~~
LeoNatan25
Ah yes, the so called "MVP"; quick win by lazy developers at the expense of
the user experience.  Cordova is one of the worst offender here, making you
even lazier than people using things like Xamarin Forms and React Native.  I'm
sure your users truly enjoy using your product. 

~~~
jbob2000
Super ignorant comment.  I just wrapped up an app for a client.  They only had
$10k to spend on it and it HAD to be cross-platform.  I'm not writing two
native mobile apps and a backend for $10k, that's at least $50k of work. 

So I explained to them that we could use Cordova, and that it would probably
suck, but that's all they can afford for $10k.  And they were happy with the
delivered product. 

Cordova has its place.  You probably wouldn't use it on a team with many
developers or at an enterprise level.  But if you do client work and your
clients don't have money to spend on native, then this is the best solution. 

~~~
LeoNatan25
How did this post show ignorance on my part?  If anything, it proved what I
said before.  Client is either cheap or not funded well enough to produce a
good software, so they compromise on a terrible result for the user.  I will
take an educated guess that their software project will not change the world,
"disrupt", <insert any other "hip" startup bullshit promise>. 

I am not ignorant of these cases; I just don't want them.  The software world
is teeming in mediocrity and below.  I just rather small startups that can't do
better to not do anything, rather than churn garbage software just to survive
for a few more months then die out anyway (or be bought for unknown reasons -
but result is still the same, garbage software is still abandoned). 

This is not limited to mobile apps, of course, but seems like that's where
most of the churn is these days.  Desktop has its own fair share of that with
the Electron nonsense, but mobile seems to get it worst. 

Don't confuse ignorance with intolerance.  I understand this place is startup
oriented, but anyone who is willing to compromise on software quality for the
sake of payday need to look at the big picture.  Spoiler: it's not about your
potential payday. 

------
inlined
It takes an immense amount of professional maturity for a team to embark on a
project that intends to work itself out of business.  For that alone I applaud
the team's effort.  Still I think the biggest PWA gap is still that they don't
have a native experience in iOS afaik. 

------
a_imho
I still don't understand the fascination with webapps packaged as mobile apps. 

Why jumping through the hoops of setting up an account to install from an
appstore, granting all kinds of access to god knows who to your private stuff. 
Instead of using the most uptodate version from a browser directly. 

~~~
ntaso
Offline-first, local database, calls to native API, using device hardware,
impossible to "swipe back" (like in Twitter's PWA)

------
mandeepj
I thought PhoneGap is going to talk about their competitive offering to the
likes of React Native\Xamarin but nope.  Ecosystem have changed so unless they
offer anything at par.... I am not sure how they are going to survive.