Free Passes to BlackBerry Jam

Next week, the annual BlackBerry developer conference starts in San Jose.

I will be giving an introduction to the Native SDK on Tuesday, going through the basics of C++, Cascades and NME development. That same morning, Thorstein Heins, Alec Saunders and more of the leadership team will be unveiling more details about BlackBerry 10.

I have been given a limited number of free passes to the event, worth $599 each, plus a free Dev Alpha device if you’re a developer. If you’re in the area, come on out for the first day, or stay longer for the full event. There’s going to be a hackathon on Monday, then sessions go through Tuesday and Wednesday, and Thursday is an “unconference” day where attendees can deliver their own sessions on various topics. I am excited, and if you come, I would love to meet you (or see you again, for those familiar faces 🙂 )

The comp code is CBJA43, and you can register here.

Also, if you live near San Diego or Los Angeles, you can join the bus and skip the airfare.

Adding the BlackBerry C/C++ Native Target in 48 Hours

I am one of the lead developers for NME, a cross-platform, open-source framework.

If you have not heard of NME, it targets Windows, Mac, Linux, iOS, Android, BlackBerry, webOS, Flash and HTML5 from a single codebase. It does not require a virtual machine, and does not use a scripting language like Lua or Javascript, other than the HTML5 target. It reliably supports each platform using native C++ and OpenGL, SWF bytecode or Javascript, thanks to the incredible Haxe programming language.

The BlackBerry target is the newest platform we support. It took me less than two days to add. Continue reading Adding the BlackBerry C/C++ Native Target in 48 Hours

Submitting Applications to Google Play, App World and the App Catalog

Pirate Pig (the NME sample version) is available in Google Play, BlackBerry App World and the webOS App Catalog.

Making a game is the hardest part, especially one that has a lot of polish. Details count. There are a dozen ways Pirate Pig could be a better game, and have more replay value.

The original Pirate Pig sample, written in Javascript, was created to show that Enyo JS could be used, not only for applications, but also for games. While I was still part of the webOS Developer Relations team, I decided to create a new version of Pirate Pig to illustrate the same game might be created using NME. Personally, I like my version better, but that is okay. Enyo excels at applications which would be more difficult to create using NME right now. Being a native framework, NME has obvious advantages in performance when applied to games.

It took me a day to create the sample. I wanted to create another example you could use to help create your own projects.

If there is anything I have learned by submitting Pirate Pig to Google Play, the App Catalog and App World, it is that, in the scheme of things, the process is trivial. NME makes it very simple to target iOS, Android, BlackBerry and webOS. The “heavy lifting” of cross-platform compatibility and preparedness for submission for these catalogs is done for you. Making your game or application is the real challenge. Continue reading Submitting Applications to Google Play, App World and the App Catalog

How to Create a Keystore for BlackBerry

If you’d like to publish an application on BlackBerry App World, you’ll need a keystore to sign your application.

This process will also create a debug token, which you can use to install and run on a QNX-based BlackBerry device (like the PlayBook) without having to release sign.

Step 1

We’ll start by requesting a code-signing key at

Enter your name, company, email, country and a 6-10 digit “PIN.” You’ll want to remember the PIN you use, since we will need it later. Continue reading How to Create a Keystore for BlackBerry

How to Create an NME Extension

One of the things that I love about NME is that it is easy to extend. Unfortunately, there is not much documentation on the subject, so I want to take a few minutes to help describe what you can do with an NME extension, and how to create one. Trust me, it is not difficult.


Beginning with NME 3.2, all you need to make an extension is add a file called “include.nmml.” This file is processed just like an ordinary NMML project file, with the exception that paths are relative to where your extension is located.

For example, in the “Test” extension I have created, this is my “include.nmml” file:

<?xml version="1.0" encoding="utf-8"?>
	<ndll name="test" />
	<java path="project/android" />

You could include assets, defines, haxelib dependencies, NDLL references, Java code… practically anything you can define from an ordinary NMML project file for NME, you can define using your extension. Continue reading How to Create an NME Extension

Introducing the BlackBerry Target for NME

At 12:20 PM on Tuesday (two days ago), a BlackBerry PlayBook arrived on my door step.

I bought it with the suspicion that it would not be too difficult to target BlackBerry’s new QNX-based platform. At 11:16 this morning, I was glad to announce that NME was running (albeit in software), and at 6:45 this evening, I was glad to announce two happy but simple words:

“It works!”

Some features remain to be supported, such as the accelerometer, or checking the screen DPI, but otherwise NME is alive and running on RIM’s platform. Fonts, animation, bitmaps, sound, filters, hardware acceleration — the “Pirate Pig” sample works flawlessly.

Some of you may feel that adding another target is investing time in something which is not as valuable as perfecting the targets which already exist, and which arguably have larger market share. I was recently told that BlackBerry App World grosses #2 in the world for mobile markets. There may be a lot of Android devices, but that does not necessarily mean that developers are reaping large profits. I was also told that only 1% of iOS developers make more than $1000 a year. If you take into account the cost of becoming a developer or purchasing Apple hardware, that becomes even less, so App World might be even more profitable for you than the App Store.

In my mind, one of the greatest strengths of NME is having options. I don’t want your business to be limited by your technology. Opening the doors to native applications on the BlackBerry platform opens doors for you to have more options when you decide how to market and sell your applications. Since the target uses SDL, just like webOS, Windows, Mac and Linux, it only helps to make NME more flexible, and does not pull our time into creating a lot of unique code for only one platform.