PhoneGap 3.0 is to be released today. The free, open source framework is designed to make it easy to create apps using web technologies.
As recently revealed by PhoneGap's product manager Brian LeRoux, the update brings a number of improvements, including new tools, support for new platforms, new APIs and streamlined plug-in architecture.
We spoke to LeRoux (BLR) about PhoneGap, the importance of performance and the current mobile landscape.
.net: For the uninitiated, what is PhoneGap in a nutshell?
.net: What aspects of PhoneGap are you particularly proud of and how can they help people create better apps?
BLR: It's hard to beat seeing someone light up when they build their first app. I love that. It takes three short commands in PhoneGap 3.
I guess I'm probably most proud of the project’s driving philosophy of obsolescence, which is arguably my only significant contribution. Our goal is to cease to exist! It's an extreme view that acknowledges the inevitability of all technology. In this way, we want to guide the future of the web towards better API surfaces, better tooling and instrumentation, and to be a first-class citizen on operating systems.
Given the recent moves of packaged applications on Windows, Chrome, Firefox OS, Tizen, and webOS, I would venture to say this vision is starting to come true. This tension between closed systems and the open web isn't going to just end somewhere, though. We need to remain vigilant to protect one of humanity’s greatest assets, and part of protecting the web is evolving it to live up to and beyond proprietary systems.
.net: Beyond philosophical direction, though, what from PhoneGap really stands out for you?
BLR: I'm rather proud of our release cadence. We prioritise fixing defects over adding features and ship every month, regardless of the status of any work in progress. This cadence means our community can be confident each release is an improvement, and that any bugs will be addressed in a timely fashion.
Our developers don't get burned out trying to cram something into a date. We treat discovery as an expected facet of software development and code quality as priority over new features. I believe these two parts of our culture are responsible for the project’s success in adoption and the growth in [the commitment from users] we've seen these past years.
.net: How are you ensuring PhoneGap performance is strong compared to native apps?
BLR: This is a trick question! PhoneGap applications are native applications, but the user interface is rendered in a fullscreen web view. All the capabilities of a native application are available to PhoneGap, including UI widgets (although we discourage this practice because it creates apps that only target one platform with non-portable code, not to mention standard UI widgets are lame and lowest common denominator design).
So, are we talking performance between the web view and the native bits? If so, the technology we use to bridge the web view to the native code gets roughly 400 operations per second. That, in computer terms, is actually slow, but in human terms, I like to ask: do you require your geolocation 400 times a second? Can you take 400 pictures a second? Probably not!
.net: So you’d argue this isn’t a ‘real world ‘ benchmark?
BLR: Right — it’s synthetic and not at all real world. We just use it to ensure we're not making the PhoneGap plug-in FFI (Foreign Function Interface) any slower.
Ultimately, developers should be concerned with creating the best possible brand experience across platforms. Web technologies have proven themselves future-friendly to many operating systems and many screen sizes. It takes careful consideration, technical chops, a design savvy [approach] and perseverance to create great experiences. This is true for all technology. There are no shortcuts to great design but there are certainly big benefits to executing to the largest possible audience in the shortest amount of time. PhoneGap gives you that chance, but you'll have to roll up your sleeves and do the hard work.
.net: What else do people creating cross-platform apps most have to be aware of in the current mobile landscape?
BLR: The real challenge today is understanding the performance characteristics of web technologies to wring the best possible experience from the devices you are targeting. The biggest bottleneck we currently see is in the CSS people are employing and the methods of DOM manipulation being exercised.
That said, I'm part of a small team at Adobe looking to fix this issue by introducing a new CSS library called Topcoat. It’s a completely separate project but we're fighting the same battle to see the web as a first class platform. Our mantra is 'Performance First!' and we're backing it up empirically with data extracted from Chrome called Telemetry. You can see our benchmarks and get an idea of what we're going for on just the vanilla domain of http://topcoat.io.
.net: Have you any thoughts on the state of mobile platforms like Firefox OS, and how they may affect the industry?
BLR: Firefox OS represents nothing less than a ballsy group of free-thinking revolutionaries bringing about the next web evolution. I have the deepest respect for Mozilla and love its flat-out courageous attack on proprietary systems.
One year ago, there was no Firefox OS and today they have devices and an entire app ecosystem. These guys are monsters! I think the strategy of approaching emerging markets is brilliant. The whole thing aligns completely with our thinking in Apache Cordova and Adobe PhoneGap.
Mozilla isn't alone with us, though. BlackBerry WebWorks is all Apache Cordova under the hood, which is the same project that drives PhoneGap. The Chrome guys are committing more and more every day to Apache Cordova with their eye on packaged apps. Intel is working with Samsung on Tizen, which is a web based operating system, and also helping us at Apache. And you might have noticed Microsoft has fully embraced the web in Windows 8 and Windows Phone 8 with Cordova.
Those are some big names backing a very clear trend: the future is very bright for web technology and the developers that choose to specialise in it!