Today I started with Blackberry 10 development using Appcelerator Titanium and DominoToGo. Setup of the development environment was easy since there is a good guide in the Titanium documentation.
There are a few things to watch out for, though:
- Make sure you follow the guide to create a debug token. That’s NOT the BlackBerry ID token created in the BlackBerry Deployment Setup Wizard in the Momentics IDE! See Momentics IDE – Properties – BlackBerry – Signing to create a debug token. It will create a *.bar file which you can use in Titanium’s Studio properties.
- To access the file system of the BlackBerry simulator, use a ftp client and log into the IP that is displayed in the lower left corner of the simulator. Use “devuser” as user and passwort.
- In BlackBerry’s file system the app data is stored in /accounts/1000/appdata/<app id>.
- Do not switch off development mode in the simulator! If you ever switched that off, you need to enter a device password in order to enable development mode again. And if you did that, you cannot use the standard run command of Titanium Studio, since it doesn’t use the password you may have set in the run configuration.
There is a workaround for that, too, using CLI in terminal. But it’s annoying, so better don’t touch the development mode switch in the first place.
The most recent version of DominoToGo has issues on BlackBerry 10 because Appcelerator simply didn’t implemented some features of the Titanium SDK for BlackBerry yet. One missing functionality is a file stream, which DominoToGo uses when data downloaded from Domino is huge (multiple megabytes). So far I’m using in-memory processing instead of file streams as a workaround.
The SQLite database implementation is missing the ‘rowsAffected’ property which I’m using in some database operations. I have to find a workaround for that, too.
I’m sure there will be more issues I will come across in the next weeks. But the good news is that a lot of important functionality is working just fine on BlackBerry 10, such as HTTP connectivity, reading and writing files and most database operations.