Skip to content

Instantly share code, notes, and snippets.

@timwindsor
Created November 27, 2013 22:01
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 1 You must be signed in to fork a gist
  • Save timwindsor/7683968 to your computer and use it in GitHub Desktop.
Save timwindsor/7683968 to your computer and use it in GitHub Desktop.
BlackBerry WebWorks Plugins Project

BlackBerry 10 WebWorks Plugins

BlackBerry WebWorks is an Apache Cordova based SDK for building applications on BlackBerry 10. It provides an industry leading environment for HTML5 application development with native capabilities. All our WebWorks development is done in open source under the Apache 2.0 license, and we accept contributions from our developer community to make the tools and APIs better. Apache Cordova and WebWorks enable C/C++ code use in HTML5 applications through plugins. In this project students will work with our community of contributors to develop and port additional plugins to the BlackBerry 10 platform. These plugins will work on the BlackBerry 10 platform and be usable by WebWorks, Cordova, and PhoneGap developers.

Plugin Overview

Plugins provide a JavaScript interface to application developers, through which they can access lower level features that are not contained in the standard HTML5 specification. Primarily this is used to access native platform capabilities like hardware features and platform specific APIs. As a result, there are two major components to a plugin: a JavaScript API that is called by an application developer, and a native component that receives calls from JavaScript and calls native system methods. The Native portion of a BlackBerry 10 plugin is C, C++, or Qt native code. An example Template is available to show how various types of communication can be accomplished.

Objectives

The goal of this project is to provide additional plugins to the BlackBerry 10 developer community. The plugins are released under the Apache 2.0 License, and can be used in many applications on BlackBerry World and by our Enterprise developer community. Our community of developers helps define what the most critical plugins are and those are the ones that we prioritize for development in this project. Students will contribute at least one plugin during their time in the project. Also due to the nature of plugin development, it is essential that students use a real device for most of their development. BlackBerry will provide students with a developer test device for their development.

Some likely plugin candidates for the upcoming term include the following:

  • NFC
  • External Screen
  • Audio Encode

Requirements

Students should be strong coders in either JavaScript or C++. While the plugins require both elements, it is effective to work in pairs to develop these plugins, where students are more comfortable with one language. It's not expected that students would have familiarity with the BlackBerry 10 platform or tools, or Apache Cordova, though it's certainly very useful.

All the development, code publishing, and review will use GitHub, so students should be familiar with that and with the Git version control system. Students don't need to be experts, but should be able to add and push to different remotes, and work with branches.

The Apache Cordova tools and BlackBerry 10 NDK work on Mac, Linux, and Windows so platform is not a concern.

Evaluation

Students will be evaluated on a few specific elements of their contribution over the term:

  • Their communication and group work through weekly status meetings and during the sprint
  • The quality and usefulness of a Blog post written at some point during the term. This post will be published on the BlackBerry Developer's blog
  • Their contribution of a plugin to the BlackBerry community repository
  • An original application released on BlackBerry World. The application can be using any of our available SDKs, and does not have to be open source.

Past Contributions

Students in the past terms have created some very important plugins for the platform, from simple APIs to expose hardware features like the LED, or Vibration controls, to a much more complicated Barcode Scanner API. In all cases these plugins are used by many different BlackBerry developers in their applications. Students have been able to make a real impact on other developer's applications.

Project Contact

twindsor at blackberry.com

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment