Why I’m Doing PhoneGap

I’ve started to see some general questions and fielded a few emails from people asking about why the big push around PhoneGap on the Adobe side. In general, everyone knows the basic answer: we acquired Nitobi (the company behind PhoneGap), so now as Adobe evangelists, it makes a lot of sense for us to know it and be able to talk about it. And I think we’ve done a pretty good job of that. Christophe has a demo app (with source code) up, Greg has a couple of really good posts on it (especially this one that talks about how PhoneGap affects Flex evangelism). So at a general level, it shouldn’t be a huge surprise, but for me it’s quite a bit deeper than that and I wanted to provide a bit of context.

My desire to learn PhoneGap (and by extension get a lot better at HTML/JS) comes from two places. One, if you aren’t learning new technology, you’re not adapting as a developer. Two, as I’ve been looking around and trying to get my head around PhoneGap/HTML, I’ve found some rougher edges. Since I work at a tools company, I want to know where those edges are so that as Adobe builds out tools for this technology stack, I can provide good feedback to the product teams.

New Technology

I’ll say this a thousand times: I think AIR and Flex are the best way to build cross-platform mobile applications. I think they’re arguably the best way to build mobile apps in general for specific types of apps. And with AIR 3.0, AIR has never been more powerful. Stage3D is coming, we have native extensions and captive runtime so as a developer you can really blur the line between your AIR app and native functionality. But as great as I think native extensions are for our developer community, I’m not personally that excited by spending a lot of time writing them. I love the web. What got me so excited about RIAs back in the day was that you could build desktop-like apps with web technologies. I fully believe that Flash is part of the web, and I always will. Java and Objective C are decidedly not web technologies. And I’m not really that interested in spending a bunch of time learning Java/Objective C code. I don’t think that many AIR developers will have to roll their own native extensions, but it is one of the cool new parts of the platform, so a lot of the Adobe evangelists will be spending time getting up to speed on how to build them. That just doesn’t get me excited. Same goes for Stage3D. The stuff you can do with 3D in Flash Player is mind-blowing. I’m just not a 3D developer or a game developer. Luckily the Flash Platform is evolving beyond that as well. The stuff coming up with concurrency and potential enhancements to ActionScript both fall into what I’d call the “web world” and I’m excited to dive into those and get to know them as they get closer.

But, while I’m waiting, it turns out we now have a pretty cool HTML/JS mobile story with PhoneGap. I’ve been dabbling for a little while in jQuery mobile and HTML/JS and I’d consider myself an average JS developer. But you’ve always got to be learning, and if you love the web, you can’t not be good at JavaScript. I’m kind of ashamed that I’m not better, but this is a great opening for me to dive in, dedicate a ton of time and energy to getting better, and coming out a more holistic web developer. One of the things I love about the HTML/JS community is just how varied it is. There are JS developers of all stripes creating their own frameworks, own solutions to architecture problems, their own server solutions, and hell, even their own languages that eventually end up as JavaScript. The raw creativity of the web ecosystem is on full display when it comes to HTML/JS. And there is a certain zen to the chaos that I find intoxicating. I desperately want to be a part of that and the fact that I’m behind the curve is kind of depressing.

Helping Adobe

Which brings me to the second reason I’m planning to dedicate a ton of time to the PhoneGap stack. There are quite a few areas where the workflow is downright broken. My recent foray into on-device debugging is one example. Some of that is just that I don’t know enough, but there are also some real gaps in tooling, services, etc. We’ve got some smart people at Adobe who know the JS/HTML world pretty well. But we can always have more and if we want to provide value to developers in the space, that’s going to require knowing where the gaps are, knowing where to spend our time, and what kind of solutions will be helpful. I want to be able to provide that feedback and the best way to do that is to really know it. The hope is that I’ll be able to contribute in a small way to what Adobe will contribute to the open web ecosystem for developers.

Viva Flash!

So for me this particular foray goes beyond just learning PhoneGap to get up to speed. I think it’s a really cool time to be an Adobe evangelist and I came away from MAX a lot more invigorated than I’ve felt in a long time. Part of that is the Flash side (this session on the roadmap was excellent). But a big part of that was definitely that I think Adobe is going to make a positive impact in the HTML/JS space. The Nitobi guys are all insanely talented and I think that with them we’ve got a vision for mobile apps rooted in web technologies. I’m ready to contribute to that vision.

Update: And Ray pointed out he’s got a ton of stuff up as well.

  • http://www.coldfusionjedi.com Raymond Camden

    I’ve got a few posts up as well – 2 from today: 
    http://www.coldfusionjedi.com/search.cfm/phonegap

  • http://blog.digitalbackcountry.com Ryan Stewart

    Yeah, but isn’t that kind of like saying that John Gruber has a few posts up about Apple? ;) You’re the jQuery/PhoneGap/HTML guy!

  • http://www.coldfusionjedi.com Raymond Camden

    Wow – I’ve been compared to Gruber. Now that’s something I didn’t expect. :)

  • http://www.squidoo.com/presonus-audiobox-review Michael Burgess

    If phonegap is as widely distributable as we are lead to believe,  

  • http://twitter.com/polyGeek polyGeek

    That’s it. I’m cutting you out of my will. Now you don’t get all those plushy pink kitten dolls I’ve collected over the years. :-)

  • http://blog.digitalbackcountry.com Ryan Stewart

    Just wait till you come around. The pink kitten dolls are mine!

  • http://www.topcadouri.ro/ Catalin Botezatu

    telle me, this tehnology still depends on browser compatibility with javascript or is fully separate?

  • http://www.topcadouri.ro/ Catalin Botezatu

    telle me, this tehnology still depends on browser compatibility with javascript or is fully separate?

  • http://www.topcadouri.ro/ Catalin Botezatu

    telle me, this tehnology still depends on browser compatibility with javascript or is fully separate?

  • http://www.topcadouri.ro/ Catalin Botezatu

    telle me, this tehnology still depends on browser compatibility with javascript or is fully separate?

  • Din3sh

    bc g@ mara 

  • Tufik Chediak

    Why use Starling for get a best performance and don’t implement all direct characteristic with the native code as3, native MovieClips, native Sprites, native Shape, native Events with GPU Acelerator, similar how Starling is working in this moment with the configuration “direct render”, but without external frameworks.
    Would be very good and very exciting create full business aplication for our clients, games and all with native code and don’t begin to leave the native code in the cabinet by using frameworks like Starling.
    Starling is a very good framework, but i would like work with all this functionality with the navite code and don’t neglect this.
    you do not believe, AS3 has the best  and professional UI call Flash Professional for create good interface and the job is very simple and quickly, if you want you can export all to swc and work with developers IDE. But lately things like MovieClips, Sprite, native events, etc, are increasingly far. Now we should use Starling, Away, Flare, Feathers, all less native classes for get a best result.
    Another thing, Adobe should think in get support to all Android devices. This is the most big problem of Adobe Air and prevents that Adobe Air be imposed, because in my case, i can’t offer this to my clients because don’t have support for all devices and the most important for do a professional aplication for a enterprise is support to everyone with android devices. The problem is that Adobe don’t know the real power of this tecnology and the all community working with this (developing app and not game).