3 ms·
They most definitely should NOT sunset this project. Your issues are in no way a reflection of the majority of the cordova development community and projects do
by calsy 9y ago
They most definitely should NOT sunset this project. Your issues are in no way a reflection of the majority of the cordova development community and projects don't need to be deprecated because you had some problems.
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.
- shortstuffsushi 9y agoIt shouldn't be deprecated because of my issues, no. It should be because it's not something a new project is likely to start with like I was saying. If someone was starting a new project, it's unlikely they would pick Cordova as a platform, imo or from what I've seen. PhoneGap, owned by Adobe, in particular is a big question mark on top of that to me. 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.
- calsy 9y agowhy are you touching the generated native code? 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?
- shortstuffsushi 9y agoI gave you a clear set of reasons I dislike and will not use Cordova, but I feel like you're just using it as a shield. I mean seriously, Cordova is the reason you're not a "drone in an office?" Give me a break. How about all the people who are using Cordova in their Agile drone office? It's great that you've been able to get into your own thing, but plenty of, for instance, native mobile devs have done the same. Or non mobile devs. Or full stack. Heck, I too have written, by myself, native Android and iOS apps, and their backends. I don't think that's saying a whole lot. 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.