The Sample to End All Samples


Some of the most valuable resources we developers have at our disposal are sample apps and we have many of them. Perhaps too many. I have been pondering several ways to optimize our vast BB10-Webworks-Samples repo for a little while now and have a plan.

Currently we maintain, in this one repository, about 35 separate samples. At first glance, this appears awesome, but, from a developer’s perspective, this is not a practical approach. To test out the sample apps right now, you need to setup and package each individual app then load each app on your device. That is a lot of technical debt just to try something out.

Introducing: The Cordova Kitchen Sink Sample

I am in the process of creating one sample to rule them all. This new app will allow you to quickly test out all of our APIs in one place. In addition to make it easier to reference and reuse code, all features are organized into separate modules.

Let us take a closer look at what is included when you download the ‘Sample to end all Samples’:

  • Built with Ionic Framework
  • Powered by AngularJS, Underscore
  • Targeting Cordova 5.0, WebWorks 3.8
  • Demonstrates current best practices for BlackBerry 10
  • * Gulp build system for code-linting, obfuscating, and compressing
  • More to come…

Current features (as of today)

  • Integrating with Apps (Invocation)
  • Pull-to-Refresh
  • In App Browser (Child Browser)
  • Notifications
  • Sharing Media

* Stay tuned for another blog post on using Gulp (or other build systems) in your projects.

As you can see, there is a lot of work to be done to get all of our samples ported, but over time more and more features will be added.

Head over to GitHub to check-out the sample for yourself!

Is there something missing that you would like to see? Is something not working as expected? Is my code awful and you have constructive criticism? Get in touch with me on Twitter (@chadtatro) or file an issue here.

Chad Tetreault

About Chad Tetreault

A developer at heart, I’ve been coding in some shape or form since the age of 13. Nowadays I focus on building awesome cross-platform (Android, iOS, BlackBerry) mobile web applications powered by Cordova, JavaScript, and AngularJS.