See CuttingReleases for *estimated* Release Schedule
1.5 Feb
- weinre nodeup 1.5
- cordovaview ios
1.6 March
- cordovajs on ios, android, blackberry
- cordova name migration complete
- getting started guides updated
1.7 April
- cordovajs on wp7
- cordovaview on android
- documentation improvement project
- bada 2 (wac) support with cordovajs
1.8 May
- tooling for plugin package generation, validation, installation, and removal (lunny prototyping)
- cli tooling
1.9 June
- refactor of (possibly) coho to allow for composing a release of particular plugins
- hardening
2.0.0rc July
- hardening
- iOS: removal of iOS 3.x support, minimum 4.2
- iOS: make Cordova support ARC (Automatic Reference Counting) only
- iOS: removal of Xcode template (CLI tooling only for creating a new project)
Unscheduled Feature Req (post 2.x)
device capabilities api (see https://issues.apache.org/jira/browse/CB-753)
- notifications api
- automate plugin discovery ala npm/cpan/rubygems/pypi/etc
- remove plugins to discreet repos and use discovery mechanism to compose different releases
- bridge performance
- test automation
- plugin authoring guide
- security best practices guide
- security: child browser investigation / oauth support
- performance: first benchmark(s) / resource profiling hooks / capacity tests (maybe identify flagship devices!)
- native contact picker
- review media (use html5 audio and/or normalize apis)
orientationchange event http://dev.w3.org/geo/api/spec-source-orientation.html
Web notifications API (http://dev.w3.org/2006/webapi/WebNotifications/publish/Notifications.html)
- audit video/audio
- websockets (SocketIO / NodeJS / Twisted)
- Menu api to build menus for all platforms (discussion on Planning: Menu API) mainline
- enhance internationalization (i18n) / globalization plugin mainline
- Device.exitApp() as device independent way of closing application (exists in android / ios makes no sense)
App invocation w/ data/args (like intents or protocol handlers) https://github.com/PaulKinlan/WebIntents
Platform Work
Windows Phone
- Touch events
- Back button support fix
Bada
- 2.x update
Cordova JS
A single canonical JavaScript file providing the baseline PhoneGap API. As PhoneGap grew, and new platforms were added, each platform implemented its own JavaScript file. This can cause confusion in cross platform projects. This file is generated but our userbase often accidentally checks it into thier revision control system.
In 1.5.0 this dropped into the Android implementation. In 1.6.0rc1 this made its way into the iOS implementation.
Other integration work is currently under way in the form of branches on GitHub. The final integration will include a CommonJS patterned codebase that is built using NodeJS. Compiles to AMD friendly src.
The canonical repository is located on GitHub here: http://github.com/apache/incubator-cordova-js
Command Line Interface Tooling
Command Line Interface (CLI) provides a foundation for more sophisticated tooling avenues with while maintaining functionality capability across target development operating system environments. Currently the project provides some tooling of this nature but it is currently not consistent. This project aims to bring a unified nomenclature for common development practices dramatically reduces developer ramp up and context switching.
Common tasks in PhoneGap app development include:
- create
- update
- log
- debug
- release
- test
- benchmark
- autotest
Once these scripts are in place for the major platform operating systems a PhoneGap developer can jump into a project of any sort (be it iOS or Android or anthing) and be immediately productive. Additionally this opens the door for more sophisticated tooling within an Integrated Development Environment (IDE).
Technology
- Bash
- NodeJS
- npm
Proposed Work
- Complete CLI for major target platforms.
Wrap CLI for a universal CLI that calls out to installed PhoneGap platforms.
Continuous Integration Server
Building the most recent PhoneGap project commits against the major devices for every commit, running the unit test suite and benchmark suite to measure code quality and performance over time. The most effective way for us to measure improvement over time will be an automated test suite. We’ll be able to intercept degradation in performance sooner and with tighter feedback cycles avoid regressions in bugs.
Proposed Work
- open source the project code
deploy http://ci.phonegap.com
- investigate working w/ sauce team on better mobile testing patterns (see mobile testing platform stuff)
- pretty reports
- benchmarking init over time
- benchmarking footprint of base assets (phonegap.js and binary over time)
- release packaging
- notifications
Embeddable Webview
The ability to embed PhoneGap into a native application. This is a defensive initiative with examples of large technology companies trending to this technique creating hybrid webview/native code implementations using a technique similar to PhoneGap.
Companies utilizing this technique include:
- Netflix
- ESPN
Technology
- PhoneGap/Android
- PhoneGap/iOS
- PhoneGap/WP7
(BlackBerry does not seem feasible at this time.)
==== Proposed Work =====
Investigate feasibility of creating custom UI components on target platforms. Implement embeddable PhoneGap Webview on platforms that can support custom UI components.
Mobile Testing Lab
In conjunction with our friends at Sauce Labs.
- targets all mobile operating systems and devices; phones and tablets
- simulators/emulators and real devices
- installed Apps and Mobile Web. (Mobile Web testing is easy -- it's just a URL... But installed apps is the tricky bit -- getting binaries up to the test lab and distributed to testing machines. Especially tricky with Apple's rules for iOS.)
- manual testing (remote VNC access) *and* automated testing (API access)
- oh, and lots of robots. Made of bitbeam, naturally.
- open source hardware setup. Folks can see how the device lap was setup and build their own if they wanted to.
PhoneGap Plugin Project
PhoneGap/Plugins are wildly popular and the past year we've spent a tonne of time getting the native api simplified and consistent. This project is dependant on the phonegap-js project completion to inform the architecture.
==== Goals =====
- phonegap project directory structure (needed so we can install phonegap plugins)
- plugin packaging format
- plugin cli tooling for: create, validate, install, remove, find
- plugin only architecture / ship phonegap with no prebuilt APIs
weinre nodeup
Web Inspector Remote originally authored by Patrick Mueller of IBM joined the PhoneGap suite of projects in 2011. It takes chrome dev tools and adds remoting capability via a script embed to enable remote debugging. Weinre is the only way to remotely inspect and debug the contents of a webview hosted on a device. It is a daily use tool for PhoneGap developers.
Technology
- Java based server
CoffeeScript based client communication protocol
Client code from HTML, CSS and JavaScript
Proposed Work
- Port server to NodeJS to improve speed and portability. (Imagine: npm install weinre)
- Benchmark and refine communication protocol to improve latency. Use sockets where available.
- Additional error trapping faculty (only 5 exceptions supported). Substack reported possibility to use Uglyfy to instrument/rewrite method signatures w/ try/catch to capture all errors.
Add JavaScript step debugging capability via the open source Aardwolf project.
Notifications API
With the addition of Notification Center in iOS 5 we have the opportunity to do richer notifications across platforms. http://www.w3.org/TR/notifications/