The Dude Does Not Abide (Long-standing Bugs)
We're all people. I acknowledge that. Nobody likes getting yelled at. So I apologize in advance for what I'm about to do. I don't mean to hurt anyone's feelings, but if nobody speaks up, we can never expect change.
I used to think that my personal Hell was getting stuck head-first in a small space and not being able to squeeze back out (claustrophobia like woah)... Today I'm officially changing my personal Hell to long-standing bugs that affect a significant number of people and get little-to-no response, resolution, or worst of all, communication on what's taking so long.
I'm looking at you, Phonegap Build.
I would rather get stuck in a tiny space than continue to put up with your bugs and lack of communication on their resolution status.
The worst part is that I fucking LOVE Phonegap Build. Independent manual builds for multiple platforms suuuuuuuuuuucks, so this service was begging to be built from day 1. The often-buggy or for-some-reason-offline debugger (weinre) is pretty sweet, too... when it works. If you were to start charging for the service, my company would be first in line with our checkbook open, fervently clicking our pen over and over until you named a price and told us to whom we should make the check payable.
But for fuck's sake, it's been nearly a year since it was reported that you're building android apps with the wrong icon in place for XHDPI (highest-resolution, aka best-screen) devices, and it's just a matter of copying the correct file into a folder before you compile the damn APK. It's so rudimentary that I've managed to write a tool that completely automates the fix including repackaging, re-signing, and re-zipaligning. If it's just a matter of copying the correct file into a folder, why hasn't it been fixed? And if the issue is not that simple, why aren't you communicating that to us? The icon is a pretty damn important part of an app, Android has the highest market share, and XHDPI devices are getting more and more popular every day.
It was 9 months ago (August 2012) the last time Adobe commented at all on the issue, and that comment claimed that the bug should be fixed. The slew of comments since then says otherwise. What... the... actual... fuck?
Moving on...
I've reported over and over that linking to external sites in a way that opens the device's native browser, rather than taking over the Phonegap Webview, does not work as documented, or at all, for that matter. I first reported the issue on April 5th, 2012 -- more than a year ago.
I've got an app that I just upgraded from Phonegap version 1.5 to version 2.5, recompiled by Phonegap Build, and here's how external links work:
- iOS
- do abso-fucking-lutely nothing
- Android
- open the link in the Phonegap Webview
And yes, I've tried every possible permutation of white-listing the domains (search for "<access", since they don't expose any deep-linkable ID's... fail, fail, fail, fail...). There's also this user-proposed "navigator.app.loadURL" solution, but for some god-forsaken reason, Phonegap doesn't support the "navigator.app" object (at all!) on iOS -- it's Android only, by design. (Way to provide a consistent API across devices there, guys...)
Considering the number of links that modern apps generally want to open, this is a big fucking deal.
There's good news for this issue, too, though. According to the Phonegap 2.7 documentation (note that at the time of writing, the latest Phonegap version supported by Phonegap Build is 2.5.0), a new syntax will be available for opening links using the ChildBrowser plugin and the device-native browser:
window.open('http://google.com', '_blank'); //childBrowser plugin
window.open('http://google.com', '_system'); //device-native browser
That's great and all, but we don't have 2.7 support on Build yet. On a whim, I tried both syntaxes on my Phonegap 2.5-based app built with Phonegap Build -- and it works... mostly.
window.open('http://google.com', '_blank'); //childBrowser
This syntax should open the childBrowser plugin, and as far as I can tell it seems like that might be what it's doing, but the top of it is getting cut off -- I can only see a few pixels along the bottom of the url bar and buttons, so it's kind of a guess. Whether or not it's trying to load the childBrowser plugin for this, it's not working properly.
window.open('http://google.com', '_system'); //device-native browser
Almost as if by magic, this seems to work. I couldn't believe my eyes. I took a closer look at the Phonegap 2.5 documentation and wouldn't you know it? It's documented.
Why haven't they been communicating this to us in the bug reports? I never saw it before today because I had been trying to avoid the ChildBrowser if possible. Only by giving up did I find the answer. Fail, fail, fail, fail, fail.
I can live with bugs. I have plenty in my own projects. I do not accept bugs + a year without resolution + no communication. This is stupid, and not in a good way.

Again, I don't want to hurt anyone's feelings. I'm not trying to get anyone fired. What I am trying to do is get you (Adobe) to communicate more effectively. Reply on bug reports (more than once a year, please), and if fixes are not what we expect then let us know it's going to take some time. When you shrink away into the shadows, it makes us feel neglected and abandoned, and that does nobody any good.
Published 2013-05-09 @ 10:14 in No Responses Yet
Hat tip to



This November I'm running a marathon to raise money for Children's Miracle Network. But instead of running a marathon I'll be playing an epic 24 hour video game marathon.