React Native is an order of magnitude better, still has a lot of issues but at least it's maintainable.
React Native is an order of magnitude better, still has a lot of issues but at least it's maintainable.
As long as they signal deprecation with enough notice (which they are very good about) then it shouldn't be any real issue.
It's annoying on a small scale, and I've been there myself (many times) so I'm sympathetic, but it's also a greater good overall.
The benefit of Ionic 2 is that there's hardly anything you have to do yourself to target the OS / device. It's all handled by Ionic.
To see several years later now that they're still trying to push forward surprises me. I know there are many apps that were built on this platform, and are likely still in maintenance phases, but is anyone starting down that route these days? If not, maybe it's time instead for the incredible journey announcement as they shift into deprecation and closure. At least on Adobe's side, as stated above, I don't know what value they have in continuing their support. Let it live on as only an Apache product if it must go on.
People keep mentioning they have problems with cordova but never state what they are. If your project is a big mess that it's no fault of the cordova platform. It's a wrapper with some well maintained plugins that don't drastically change. What about cordova is so hard for you, prepare, build, run.. whats steps are causing you to question 'hybrid' apps in the future and what are other wonderfully awesome cross platform alternatives are available that allow developers to jump right in.
Now, as to my specific issues, it's really the same as any other common anti-hybrid argument.
One, it's never write once run across platforms, it's write once and then debug across all platforms and insert various hacks for bits of slight inequality between all of them.
Two, plugins are native and consequently require knowledge of native to implement or, again, debug. If you're writing your own plugins, you can pretty easily get to a point where the js code is indeed write once for all platforms, but then you have to write the native portion for each still. This falls apart if you want to write more complex / device feature heavy apps. Given that may not be your use case, less complex apps are indeed easier to make cross platform. This isn't because "your project is a big mess," it's because you're trying to use features that aren't exposed to the browser js engine on the device.
Three, bugs in Cordova. As with any external dependency, you're at the whim of their quality and release cycle. Various bits of fun, "legacy" / backwards compat, and design decisions combine to lead to situations where things like the onload of the page in the cordova.js file is wrapped in a setTimeout intended to fix a problem on a platform a couple years ago in some way ends up taking your page nearly a second to display as it waits to gets it's turn on the js execution cycle again. Sure, one off example, but the one that I remember digging into. I logged a number of issues during my time, though.
Four, and perhaps most opinion based, the apps you're making almost never feel native. You spend all your time trying to make the app feel closer to what it would be if you wrote it natively, or look closer, or whatever, but you're again at the mercy of the js engine on the device. There are cases where it just can't compete, period.
So, what's so hard about Cordova for me? No one thing. Many little things. I didn't even touch the build process and what to do when that starts acting up. The amount of time I spent fighting Cordova (and to be fair, other hybrid frameworks) in my experience was as much as it would have been to write a nicer native app, and I would consequently never recommend anyone go that route for more than a trivial app.
As for "allowing developers to jump right in," well, I think you're a bit misguided. It's not more user friendly than any of the native app starters, and tbh is probably less so.
But that's all just my opinion, so keep writing whatever you enjoy.
I use a good amount of phonegap plugins (admob, google analytics, location, device orientation, dialogs, storage, accessibility) and they work as well I could hope with few minor hurdles. Its programming, there are always hurdles and I've had the least friction with phonegap
You native loving devs miss the entire point, phonegap and cordova exist and survive because of the nightmare of developing apps across multiple platforms. Any perceived benefit you get by going native is lost by the compounding pain of developing across multiple platforms.
I have developed my phonegap apps to the point where an average user can't tell the difference between it and native for the most part. I can deploy it across ios, android, windows and even a desktop app on my mac by running a few gulp commands. Its used by half a million people across multiple platforms and in multiple countries and it took a total of 1 person to create.
Now when I read about people saying it should be deprecated, I cant help but laugh. Phonegap has allowed me to make enough money from my work that I quit my regular job as a software dev drone in an office taking orders from some crappy boss stuck in some agile nightmare of meetings and shit talking. I am now my own boss and I can do my work anywhere I wish. Tell me, why wouldn't anyone choose that path?
Where did I say I was touching generated code, the cordova.js thing? Because I was trying to find the cause of our slow load in the app and stumbled through their init process into that issue.
The native plugins are usually good, as you mentioned, but don't cover more complex use cases. No, I'm not going to go through and talk about all of them -- this is two or three years ago now. We wrote native plugins for the features we needed that weren't available for our use cases, and it seems likely that any advanced app will end up needing to.
Your point about "compounding pain" is exactly how I feel about Cordova, because as I mentioned, it's as complex if not more in a hybrid app. You're fighting the build system, the js engine, the layout engine, etc. It's not as though you get it all for free because it's javascript.
It's great to enjoy your tools, and again, I'm glad you're able to make an independent living off it, but to claim that it's some sort of life changing tool the whole mobile world needs to take more seriously isn't realistic. And again, as far as new development, I'd love to hear people who are considering going the hybrid route chime in, but I at least don't know of anyone or any companies who are or would go that route.
The plugins are interfaces to the device APIs, what complexity did you encounter that was so far out the scope of the device APIs? I use many plugins and for many complex tasks, why are your's more complex?
You mention this was 3 years ago like somehow these platforms remained static in the time you last used them. 3 years is incredibly long time in mobile development. Phonegap/cordova community has grown, more plugins are available and js engines on mobile have improved immensely.
You are stating phonegap/cordova is not a viable alternative for the future and I say it is. That was the whole point about mentioning my work. You not liking it and 'not knowing anyone who is using it in the future' is purely anecdotal. Obviously each project has its own ambitions, costs and timeframes to consider, but limiting possible paths to a solution is not a good idea. Do your own dev, but there is no need to deprecate a framework for others because you had a bad experience once.
Because I've written the game in JavaScript and it renders to Canvas. It also works in the browser. To go native, I'd have to rewrite everything from scratch. And then I have to maintain 3 platforms.
Maybe Unity is the solution, but right now, it's not written with Unity.
Check out the Twitter PWA (https://mobile.twitter.com). Accidentally swiping back happens to me a couple times per day.
In this case, just use whichever platform is easiest and slap a webview on there. I don't even think going full native + webview is even an advantage compared to phonegap + webview
Otherwise, it's just BSD.
If Congress is unable or unwilling to act then why not take it upon ourselves to include these types of clauses in even more licenses?
Additionally they added a patent grant as long as you don't sue them for patent infringement. They could have simply remained silent on the issue and it would be worse for developers. A patent grant is only a positive thing.
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?
If you do (I have no idea if Facebook has relevant patents on React that would harm you), then consider your allowing Facebook to use your patents a fair deal with Facebook allowing you to use theirs.