All posts by Eric at Ebscer

Twinkle is featured in BlackBerry AppWorld

Twinkle has been selected to be featured in the carousel of BlackBerry AppWorld. This free application has been recently updated to version 1.1 and was named a Regional Selections Winner in the 2010 BlackBerry Super Apps Challenge.

About Twinkle

Twinkle is a simple application that allows you to set and keep track of upcoming and past events. Twinkle will tell you how far away an event is, and allow you to add it to your BlackBerry’s calendar. Twinkle gives you the ability to add and edit events, lets you keep track of how soon something is, or how long it has been.

Device support

Twinkle supports all BlackBerry devices running OS 5.0 or higher. This includes the 8330, 8520, 8530, 8900, 9000, 9100, 9105, 9300, 9330, 9500, 9520, 9530, 9550, 9630, 9650, 9670, 9700, 9780, and 9800.

Links & Information

New BlackBerry Morse Code application

New in BlackBerry AppWorld, is the Morse Code application, that can take your text, and translate it back to you in Morse Code. Any text can simply be entered, and then by pressing the “Play Morse Code” button, can be turned into an audible Morse Code signal. The application also allows you set the volume, as well as the speed of the playback in words per minute.

The Morse Code application is currently only for the BlackBerry Torch 9800, and can be downloaded from BlackBerry AppWorld.

Pixelated now has over 2,000 reviews

Pixelated, the most popular strategy game in BlackBerry AppWorld, now has over 2,000 reviews.

It has done so a less than half a year since reaching 1,000 reviews, back in June. In all of these reviews, Pixelated has maintained its solid 4 out of 5 star rating, and has spent plenty of time in the top 25, and recently even reached as high as number three.

Thank you again to everyone, for your support of Pixelated over the past year and a half.

Simpler Universal Search Demo

RIM has often made their BlackBerry sample code too complicated, and their Unified Search Demo is another such case. Implementing universal search on BlackBerry is complicated enough, and having a demo that doesn’t bring out the basics doesn’t help as much as it should. Furthermore in this case the demo is actually wrong, with two distinct issues causing the demo application to not work.

The default demo includes unnecessary GUI components, a few classes for importing data from files, and optimization tricks that obfuscate the fundamentals of the code. In response I have simplified the demo to an extreme. In the simplified demo the full GUI is removed, and even good ideas like checking for nulls, and catching exceptions is done away with. Fundamentally it highlights the process of adding Universal Search to your BlackBerry application, and does absolutely nothing else. Download the simplified source code from the link below.

Transitioning from Java to ActionScript and the BlackBerry PlayBook

As I noted earlier this week, Java is looking to be a second class language on the BlackBerry PlayBook, so most developers are going to be programing for it in ActionScript rather than in Java. This will take some adjustment, but ActionScript is not all that different. In addition to the webcasts that RIM has put together on the PlayBook, an older ActionScript for Java Developers webcast on the adobe website may be useful as well. In addition, here are a few things that have thrown me off a bit so far.

  • draw() instead of invalidate(): When updating a GUI component you call draw() where you would typically use invalidate() in Java. This is actually a bit different because the draw() method is more equivalent to Java’s paint(Graphics g) method. However, as opposed to Java where you can’t really call the paint method directly, ActionScript allows you to directly call draw() in order to refresh your components.
  • Access object variables instead of get and set methods: I’ve always been a fan of using public or protected variables instead of creating get() and set() methods for internal variables. ActionScript embraces this approach, although a little magic can be used to create get() and set() type behavior. This is even used for the default components, which can take a little getting used to.
  • Reuse variables instead of locally scoping them: Unlike Java and C#, variables are not scoped locally. So for example whenever you use for(int i=0;i<10;i++) to loop through your array in Java, in ActionScript you would use for(var i:int=0;i<10;i++) the first time it appears in the method, and then reuse the variable in the form of for(i=0;i<10;i++) for every loop after that.

Pixelated updated to version 2.4

Pixelated has now been updated to version 2.4 in BlackBerry AppWorld. This new version increases the contrast between the red and orange colours, better support for the BlackBerry Style 9670, and also includes a few small performance enhancements.

Version 2.4

One of the most requested features from version 2.3 was to add a greater amount of contrast between the red and orange colours in the classic colour scheme. Increasing this difference, is the most visible change in the upgrade to version 2.4 of Pixelated.

About Pixelated

Pixelated is currently the second most popular game in BlackBerry AppWorld, and is an addicting puzzle based strategy game that requires a mixture of skill and luck in order to accomplish.

The object of the game is to change the colour of the squares until the entire screen is a single solid colour. Starting with the square in the upper left corner you can change the colour of the blocks in order to match that of the surrounding squares. This is done repeatedly until the entire screen is a single colour.

The object of the game is to clear the screen in as few moves as possible. Under the default settings you must do so in under 21 moves in order to win.

BlackBerry Style 9670 Support

While version 2.3 was capable of supporting the new BlackBerry Style 9670, version 2.4 is better optimized for it, and all other BlackBerry 6 devices.

Pixelated requires a minimum of OS 4.6 and considering that is met, the 8330, 8350i, 8520, 8530, 8900, 8910, 9000, 9100, 9105, 9300, 9330, 9500, 9520, 9530, 9550, 9630, 9650, 9670, 9700, 9780, and 9800 are all supported.

Links & Information

Your BlackBerry Apps will not be on the PlayBook

The upcoming BlackBerry PlayBook has an operating system that is radically different from the current BlackBerry Platform. Quite simply there is not going to be any support for current BlackBerry Applications to run on the PlayBook, despite RIM’s reluctance to come out and admit it.

The BlackBerry PlayBook will support 4 main SDK’s. In order of their importance to the platform they are, Flex (Adobe Air), WebWorks (javaScript/HTML/CSS), native (C/C++), and Java. The Flex SDK is already launched, and the WebWorks will be out soon (and is mostly just an extension of WebKit). However support for the native SDK, and the Java SDK is significantly behind, with RIM unable to even confirm that they will be released before the PlayBook is available in stores. Therefore the basis of most PlayBook applications will be in Flex rather then the Java that currently runs all BlackBerry applications.

Furthermore even when the Java SDK is available on the PlayBook, most BlackBerry applications will need significant porting to bring them over to the new platform. It is possible that the PlayBook will support something closer to desktop Java, then the very special blend of J2ME that BlackBerry Java applications currently run. Even if not, in the Q and A of the last PlayBook development webcast it was revealed that the PlayBook will not have any equivalent of the current BlackBerry menu system, which will result in the underlying java being different, and the fundamental UI of many applications will need to be redesigned.

In the webcast Java developers were encouraged to wait out for the release of the Java SDK, rather then to start learning Adobe Air. However, that does not look like that option is getting the support that it needs from RIM to be viable. The fact is that the future of BlackBerry PlayBook applications is strictly in Flex and WebWorks regardless of if developers like it or not.

Pixelated Plus updated to Version 2.4

Pixelated Plus has now been updated to version 2.4 in BlackBerry AppWorld. This new version adds a new colour scheme increases the contrast between the red and orange colours, and includes a few small performance enhancements.

New Colours

Version 2.4 adds a greater contrast between the red and orange colours in the classic colour scheme, as this has been a much requested upgrade since version 2.3 was released. Additionally Pixelated Plus now has an all Green colour scheme (pictured), that is similar to the all red, and all blue colour schemes that version 2.3 recently added.

BlackBerry Style 9670 Support

While version 2.3 was capable of supporting the new Style, version 2.4 is better optimized for this new BlackBerry 6 device.

Pixelated Plus requires a minimum of OS 4.6 and considering that is met, the 8330, 8350i, 8520, 8530, 8900, 8910, 9000, 9100, 9105, 9300, 9330, 9500, 9520, 9530, 9550, 9630, 9650, 9670, 9700, 9780, and 9800 are all supported.

Links & Information

OS 5.0 adoption levels off just shy of 90%

Roughly a year since the release of OS 5.0 on the BlackBerry Storm 9530, the adoption rate appears to have leveled off. 89.8% of 9530 users have upgraded as of October, which is up only a tenth of a point from September, and remains almost completely unchanged from the upgrade rate from August.

For a look at adoption rates of OS 5.0 over the entire first year of its release on the BlackBerry Storm, check out my article over at BlackBerry Cool.

As it has before this data comes from downloads of the popular game Pixelated. This is currently the most popular strategy game in BlackBerry AppWorld giving us a large enough user base to make these observations.

Smart phone prices coming down

For a few years now, the de facto price for a smart phone has been $200 with contract. However the Motorola Droid 2, the BlackBerry Bold 9780, and the BlackBerry Style 9670 are all now selling at prices below that.

RIM helped start this trend with the release of their Curve and Pearl lines a few years ago. Now however prices are coming down on their higher end phones as well. The 9670 Style isn’t exactly RIM’s showcase phone, but as the first CDMA BlackBerry to launch with OS6, and as a carrier exclusive, it isn’t an entry level model either. Sprint is selling it for $100 with contract, which is more typically a price for an older model. The Bold 9780 is a higher end model (although the 9800 Torch is still arguably RIM’s flagship device). The new Bold is expected to release at $150 with contract which makes it the first of RIM’s Bold series, or touchscreen phones to launch with an initial price under $200. There are even rumors that some carriers will sell the 9780 for only $100. This pattern is not limited to BlackBerry either as the recently released Motorola Droid 2 is now selling at $150 as well.

Granted the argument is that most of the expense is in the contract, but having lower prices on the upfront cost of the phone helps drive sales. In addition to the fact that a number of carriers are now offering tiered data plans at lower monthly rates it has never been more affordable to buy a smartphone. Hopefully this will help to continue to expand the economy that us developers count on.

Right Justifying the time in a StandardTitleBar

From the start I’ve been placing the time in the title bar for most applications. This is because many people also use their phones as their primary time keeping device, and having the current time always on the screen makes this far more convenient. The code to do this has become much more optimized over time, but has remained being based upon placing a custom LabelField to the MainScreen setTitle() method.

However, with the release of OS6 the StandardTitleBar was added along with the Screen’s setTitleBar() method. This method is completely unrelated from MainScreen.setTitle(). In fact you can use both setTitle() and setTitleBar() on the same MainScreen without conflict (although it looks really bad). In addition to a title and the time the StandardTitleBar can also accommodate additional elements such as an icon, notifications, and signal information. The above image shows the StandardTitleBar with a title, the time, and signal information on the achievement screen of Liar’s Dice.

By default the time is actually left justified right after the title, while the signal indicators are placed on the right edge. The goal was instead to move the time to the right like I have been doing with the setTitle() method. Fortunately due to the way that the title gets truncated, a simple way to do this is to just pad out the title with enough spaces. This is not the prettiest solution but it gets the job done, as seen in the second image which shows the final version of the achievement screen in Liar’s Dice.

Screen s = new Screen();
StandardTitleBar titleBar = new StandardTitleBar();
titleBar.addTitle("Liar's Dice                  ");
titleBar.addClock();
titleBar.addSignalIndicator();
s.setTitleBar(titleBar);

BlackBerry Style 9670 support

The BlackBerry Style 9670 has just been released, and will be supported by most of our applications from the start.

The Hockey Scores application was recently upgraded to version 2.2 which includes support for the 9670. Likewise Twinkle was recently upgraded to version 1.1 which includes support for the BlackBerry Style. Both Pixelated and Pixelated Plus will also support the 9670 from day one, and will be upgraded to version 2.4 in the near future in order to help optimize the application more to the Style’s form factor.