RIM picked Santa Clara for its first developer conference right in the back yard of new rival Apple. RIM brought a few friends with them and some pretty darn impressive new phones. There’s the “Flip” their first ‘Star Trek communicator” style phone, the “Bold” ultra-powerful smartphone, and the Storm their iPhone “killer”. I was there for the developer conference and had a great time hanging out in the developer labs and for the most part had a great time blowing off the fluffy speeches for dedicated coding work.
I hung our for all three days. What follows is a relatively unedited diary of my time out there in Santa Clara.
Day 1: It was a rough first day out here in Death Valley…um uh I mean Silicon Valley (the empty Nortel and quiet Yahoo buildings make me think of the plains of Eriador or Gorgoroth or Death Valley). Well anyway… you can tell this is RIM’s 1st conference…strange food options, no coffee, and duh the wireless network was completely down on the first day. To top it off their own developer site went down under the strain of all the downloads of new developer tools. Another “duh” since you’d think they would just give everyone a CD or a USB stick.
The presentations are ok so far. I hope there’s more technical stuff to come. Well I did take the red-eye out so perhaps tomorrow will be better. Most of the material is free of the usual bunk and more focused on reality.
Day 2: Well today is a new day and I’ll have to give RIM kudos for working to fix everything. The WiFi is up, the developer download site is up, I have a USB stick with all the software so I don’t need the site anymore, and Starbucks has arrived with “emergency service”. I’m also seeing stacks of Red Bull. All right! That’s more like it.
I’m in an all day training class learning all about their new Eclipse based tools. They have 4 new sets of tools that include a complete revamp of the Eclipse RCP interface that was in beta 1 and will replace their proprietary tools. This version promises a true “eclipse” experience rather than the original port over of the JDE tools. Also new in this release are the APIs and support for 3 new b-berries that have been announced: Bold, Flip, and Storm. What’s with those names? Lame-o very much…Teleri, Sindar, and Noldor. There! Much better. Anyway…
After getting a clean Eclipse 3.4SR1 installed it was a simple process of extraction and installation of the plugins using the Software Update functions with a local site on my machine. RIM will have an update site for this by the time you read this…installation was flawless on my Win XP machine.
For the training RIM has prepared an entire workspace of examples and tutorials. These are all built into the plugins that you can download from their site. There are about 18 examples that show just about anything you could possibly want to do. What’s really nice is that they all actually seem to work. How many times is that actually the case for books and classes. Another really nice thing is that RIM brought all their code jockeys down there and they were available. Try as we all did, we could not stump these guys 🙂
JDE for Elcipse Beta 2
The new developer tools are really nice. The developer’s experience is completely reworked so that you can do everything, including running on simulators, from within the environment. There’s float over JavaDocs integration – all you do is float over a class name and it will show you the API docs; click on the box and you can see the entire JavaDocs page. The docs are also all available in the Help Contents area. What’s even better is that if you are switching between the different releases of the APIs/OS (to support different models of phones) the JavaDocs are aware of this and will changed based on the target software release. That’s very cool. I’ve never seen that in Eclipse before.
The IDE inlcudes complete code, build, deploy, and test to a simulator of your choice. You can use many different simulators if you like. There’s complete debugging support too. These are all available from menu choices in the IDE.
f you need the signature tool working for code signing you will need to manually copy over the signature files. The two files are sigtool.csk and sigtool.db. If you installed JDE into the default spot these will be under:
C:Program FilesResearch In MotionBlackBerry JDE 4.6.0bin
Copy them to :
“your eclipse dir” pluginsnet.rim.eide.componentpack4.6.0_18.104.22.168componentsbin
and you will be good to go.
If you are new to RIM development, the code signing tool allows you to use APIs that RIM deems “sensitive”. These are normally things that will access the hardware or system services. All you need to do is register and spend $20 and you can get a signing key for as many apps as you like.
The Labs gives you all the sample code, templates, and the completed examples. The course work is all contained in “cheat sheets” that are available off a menu item under help. That is also extremely cool and makes learning things very easy.
Day 3: I spent the majority of my time at the Labs. My goal is to walk away being self-sufficient with building my own apps for RIM devices. I spent about 6 hours in the labs plus a few hours before and after on my own. The tools work well – and during the day I could hear the RIM guys taking notes from questions that are going into changes and new features. That’s really nice to see such direct feedback taken immediately and seriously. What a great idea. A number of people were really impressed at the level of direct interaction, including me.
Latest Generation Tools from RIM
MDS is another tool from RIM. This tool can run in either Visual Studio or in Eclipse. What it does is reverse engineer applications from a web service interface. So if you have a web service exposed, the tool will suck in the WSDL and pump out a J2ME application and all the screens to manipulate the functions. This includes read-write functions. I have not tried this yet, but it sounds pretty interesting. You can download it from their developer site.
There’s a completely new and much more features complete browser experience.HTML 4, CSS 2.1, DOM L2, JS 1.5, XHR/AJAX. These are all in the new browser today. Next Up: SVG-Tiny 1.2, CSS 3, HTML 5
CSS3 support will include media queries. These allow you to change styles based on the target device’s properties.
HTML5: Will support web forms 2.0 and the strong typed fields that are included in there. For example an email field type for input field. The browser would then handle validation of the entry as a valid email. There’s a new canvas type too. This is specifically for graphics creation on the fly. Perhaps that would be good for graphing and charting?
Flash? No support for Flash right now and it sounds like they are no where near for adding it. No real comment on why, but it is obvious that there is a conflict with their Plazmic studio tools.
More on Labs
There’s a lot more to a BB than it seems. Their networking and comms tools are the most feature complete of any phone I’ve seen. WiFi, Bluetooth, Cell, SMS, push and pull models. The Java API covers all this plus SVG, content handlers, GPS, PIM functions, and all other obvious RIM stuff like email, calendars, etc.
Some of the things I’ve noticed about all the labs applications:
- They are all CLDC style applications. I talked with a few of their developers about this. The reason is really that the b-berry is very different from a regular phone. If you stuck with the straight MIDlets and their GUI components you would lost a ton of functionality. Consequently they do not have a ton of MIDlet stuff. Its possible to use them and it is possible to use the LWUIT (by compiling that into a cod and including it with your app download), but they do not see many people doing this.
- All the samples seem to be architected into one big class with all supporting classes included as inner classes. This is done to make the samples easier to read thru, but it is also done to make the scope easier to deal with from a coding perspective. You do not have to architect things this way and there is not a lot of “optimization” that would be lost by using the more traditional one-class-per-file type thing that is more familiar with Java coders. The advantage of one-class-per-file is that you can then reuse code and classes and also to some extent make maintenance easier.
- The simulators are very cool. You can get any model phone you want and they have simulators for each carrier too. They are very complete and include testing of bluetooth, gps, and other networking functions. I tried cross compiling my labs apps to a couple of different simulators. It seemed to work pretty well.
Other things I learned:
- You can delete apps off your RIM using the loader program that came with the SDK. Be careful when you do this because you can actually delete everything from the phone with one command.
- Google Gears support will be included in RIM and can be combined with the DB stuff.
Things I didn’t learn:
- How to deploy apps to a specific folder on a RIM. D’oh! I’m sure there’s a way to do this.
- Why HTML5 includes a bunch of database functions and logic. Why on earth would people want that?
So what about the phone?
OK – I said something about phones…I did get a phone. They gave every attendee a phone. You had a choice. The Storm is a Verizon phone only right now so that’s a non-starter for me. I grabbed the Bold. You can check this phone’s specs on the RIM site. I’ve had a RIM for about 8 years. I’ve always been a little luke-warm on them. Not this one however. This phone is super cool! Its the first “smartphone” that I can say I really like.
What makes it cool:
- Fantastic screen – wow its a great screen.
- Wfi + Bluetooth + 3G-Edge: speed is excellent and it works very easily
- Form factor: its compact, nice looking, and yet it feels like it can take a beating.
- UI: Very easy to navigate and find stuff. There’s a new browser that rocks and there’s a new desktop-ish screen that helps to control chaos. There are also a lot of nice icons for status and stuff.
- I-tunes: you can integrate this with your iTunes libraries. That’s fantastic!
- Importing: An import that works! Wow. Switch out the SIM; re-activate the BES; done! It just does not get any smoother than that.
That’s about it. I’m learning everything I can about J2ME development so I’ll post more a bit later on the developer tools. All in all a great conference for a coder type like me. I hope I can go again next year.