For my ECL500 class we were given an open ended project of creating an application using one of the technologies we learned throughout the semester (OSGi, RCP, Blackberry, and Android). My groups original idea was to use processing.js on the blackberry and create a simple painting program. From an ignorant student's standpoint this seemed like it would be easy. Just create an application that would call a local html file that housed our processing.js code and run it in the browser. Sounds simple right? Being a naive 22 year old, I failed to do proper research before embarking on this project. After creating a simple interface and menu, I got to a point where it was time to call our html page. After a few minutes of research I quickly found that most blackberrys don't support and HTML5 browser (making all of our group members blackberries obsolete, as well as the one provided by the school). No problem, well just run it in the simulator and that will be fine. Right? Wrong! I then realized that blackberries do not allow its user to execute locally stored html files, making our current idea null and void. Crap. Well since I can't use processing.js, I may as well use processing. Knowing that processing was written in java, and all my blackberry development being done in Java on Eclipse this should be a piece of cake. I then imported the processing jar file (core.jar) into my project and made my drawing class extend PApplet in order to use all of the processing methods. The problem that this now caused was that mobile devices such as blackberry don't support Applet's, java.awt, or java.swing methods (which processing is littered with). This is when my hopes and dreams of putting processing or processing.js on the blackberry were shattered. If I wanted to do this I would have to rewrite all of the incompatible method calls to use the blackberry equivelants. As much as I wanted to do this, it wasn't feasable right now as I am busy with 5 other courses and don't have the time to do this.
Since I still had this idea of creating a painting program using processing/processing.js I wasn't about to give up. Even tho no one in my group own's an Android device, it was the next best thing (or better?). Processing already has been ported over to be used in processing, so all of the "Heavy Lifting" has been done for us. This is great and really allows us to focus on our application and really fine tune it and make it nice and polished.
After downloading the Android SDK for eclipse I began screwing around with the emulator and created a quick Hello world application. As I went to build it, I realised that it was incredibly SLOW. This came as a suprise to me as I figured anything developed by Google would have the shit optimized out of it (I expected it to blow the blackberry emulator build times out of the water TBH). My first build took nearly 1.5 hours. Hardly exceptable. After asking around if anyone had a device I could use, my brother finally gave in and was courteous enough to lend me his phone for the next 2 weeks. He has an old Motorola i1, but a Android none the less! According to the internet, adding your app directly to the phone is much, much faster then using the emulator.
The only problem that has now arised is that my brothers phone is only capable of running the Android 1.5 OS, which apparently is not compatable with processing for the Android (GOD DAMNIT!). Processing for the android's minimum required os is 2.2 (although this isn't going to stop me from trying to get it to work!). It turns out im going to be forced to build off the emulator for the time being, unless I can McGyver a way to make processing.js work on the Android (which has apparently been done, so I'm keeping my hopes up).
Come summer time I want to get back to porting processing over to the blackberry as I think it would be a great experience, and I really, really want to be able to use processing on my blackberry. So that is my summer goal as of now. To say the least, this whole experience thus far has been exhausting, but as they say, rome wasn't built in a day.