Now Famo.us has hatched a plan to use its technology to make Adobe PhoneGap, the popular but problematic cross-platform mobile app development system, obsolete.
Earlier this week, in a phone conversation with Steve Newcomb of Famo.us, we found out what the company wants to do next with its framework. The plan is to use it as an enhancement for Apache Cordova, the open source project that also powers PhoneGap, and to work around many of the limitations that have traditionally made PhoneGap applications slower than native mobile platform apps.
"On Android," Newcomb explained, "PhoneGap has several things that drive developers batty." Chief among those annoyances is the way PhoneGap defaults to the least-common-denominator technology available in the phone for displaying HTML5.
Typically, PhoneGap defaults to using the rendering engine, or "Web view," that ships with Android. That engine is often several iterations behind the current version of Google Chrome's Blink engine and may not support the acceleration features needed to make HTML5 perform well. Worse, that built-in rendering engine is almost never updated. If it is, it's typically only changed when a new build of Android is released for that phone -- and how often does that happen?
The Famo.us workaround: Use Cordova to bundle a separate copy of the latest edition of the Blink engine with the app, deploy them together, and have the app deploy its content through that Web renderer, rather than whatever's already in the phone.
The result: HTML5 apps that benefit from the full gamut of hardware acceleration features, such as WebGL. While the Blink engine packaged with the app is typically the most recent build of Blink, the developer can always target any particular build if there's a specific need.
So far, so good -- but what happens if you have several apps created this way, all installed on the same device? Does each app have its own separately bundled edition of Chrome, all running side by side and gobbling more memory and storage?
No, Newcomb told us. Each time a Famo.us app needs a particular version of Chrome, that version is installed in such a way that other apps that need it can also use it. "The footprint for each app is as low as possible," Newcomb said. "At first, it was as large as 15MB to 20MB, but we're predicting we can get it down to around 10MB. We can also have it not be part of the download of the app, but rather an app upgrade that is added after [the app is installed]."
One example app put together by the Famo.us team is an Android clone of the Rise alarm clock app for iOS. A demo movie of the app shows it running on a KitKat-powered LG Nexus 5 with Chrome 33 as the Web engine. Newcomb also claimed to have made a clone of Facebook's Paper app, again as a technology demonstration.
Famo.us plans to offer an app build service, similar to PhoneGap itself, that uses this as-yet-unnamed product. The programmer takes their project, hosted in a GitHub repository, and points the build service at it. The code is then pulled, compiled in the cloud, and made available for download via a link. From there, the resulting app package can be submitted to the various app stores.
No pricing plans for the service have been announced yet, but Newcomb wants to have "something sensible" for the pricing as a way to get a broad swath of adoption going for the product.
Drawing people away from PhoneGap isn't likely to be the hard part, given its general unsatisfactory rating among developers. What may be tougher, if this turns out to be the big escape hatch from PhoneGap that developers have been waiting for all this time, is keeping Famo.us from being bought out by Adobe. Here's hoping that the company doesn't become a victim of its own success.
This story, "Famo.us: We're building a better PhoneGap" was originally published by InfoWorld.