Ok, so I might be a little behind the times when it comes to mobile phones and SmartPhones. It was a big advance for me when I got one with a color display and MIDI ringtones two years ago. Well, my contract was ending and I’ve been doing some mobile development recently, so I got curious. If I want a SmartPhone, what should I get and why?
To start with I want a phone naturally. Because of that it’s important for it to have a good address and phone book. Secondly I want email. I’m picky about email, so I run my own mail server using IMAP over SSL and I want it to work with that. Next, I would like to get maps and directions. I like to look up how to get places, even when I’m already on the go. I also want to get on the web once in a while. I’m not planning on doing most of my browsing, but when someone asks me “What 5 countries border the Caspian Sea?” (You know who you are), I want to get online and check it out. Of course there are some other random applications that I might run since this thing will be more powerful than the computers that put a man on the moon. Finally it has to work with Mac OS X.
- Windows Mobile 5
Blackberry came onto the scene as the first service to provide a push technology for mobile messaging (as far as I know). You didn’t have to constantly check an email box to see if something had arrived, but instead you would be notified when you had a new message. This of course was a hit with the dot com bubble set. Now Microsoft and its Windows Mobile platform offer the same functionality, so it’s no longer a differentiator. As a software geek all that is well and good, but more important is how can I write my own apps?
Blackberry’s latest offerings are built on top of a Java platform. MIDP and JavaME for some phones is very limiting. My last phone had a JVM, but it could not access any of the phone’s functions or the address book for example. That made it good for one thing basically, playing games. A mobile phone is not exactly what I’d call a platform for playing games. The Blackberry implementation is fully integrated into the phone. They offer a full SDK to do everything from manage address book entries, access the file system to respond to call events. Blackberry has the Blackberry JDE which is an OK environment. You can also integrate the JDE with Netbeans for mobile development.
PalmOS started life as the PDA operating system.
The primary PalmOS development languages are C and C++. They do have a Java development platform (as well as Pascal, Forth and SmallTalk). The C based tools are built on top of the Eclipse platform which is nice. Palm has started using both their own PalmOS as well as Windows Mobile. That worries me a little bit that they might be ready to abandon their own OS development and just become a hardware manufacturer?
Symbian is the most popular SmartPhone OS in the world with something like 75% of the market. In the US though, it’s almost impossible to find one. They basically only want to support GSM, the standard of everyone in the world but the US (don’t get me started on that rant). Symbian OS uses a C development environment for writing applications. I honestly didn’t look into it much be cause there are only a couple of available devices in the US.
Windows Mobile is another popular handheld OS. Being an Operating System from Microsoft, it uses the same development tools as the Windows OS, namely Visual Studio. Windows Mobile has both C APIs and .NET APIs for you to use. Windows Mobile is a popular platform and there are a wide variety of devices for it as well.
I like Java. I know C#. I’ve done C++, but I really don’t want to ramp up with C++ for what would be once-in-a-while development of personal apps. If I want to do Java or C# that basically put me in the Blackberry or Windows Mobile camps. PalmOS was definitely tempting, but I wanted to use the main development environment and not an also ran.
I decided to go with the Blackberry. Specifically, I chose the Blackberry Pearl. First and foremost, it’s a phone. It’s not too big, it’s the size and shape of a phone. It’s got buttons that you can use while you’re on the phone (unlike the kinds where you slide the keyboard out).
The first thing you should download are all of the Google Mobile Tools. They offer a great application for Google Maps that includes lots of goodies like searching for local businesses and a traffic overlay for highways. It’s a great mapping solution. They also have a GMail app that gives you a nice interface to GMail. Of course you can set up GMail as one of your email accounts and just use the built in editing features. But if you want to get at your mail for searching and archival, then check out the GMail application.
Opera Mini is ok as well. I’ve been trying it a bit, but mostly I’ve been using the built in Blackberry Browser. Opera Mini feels a little bit less integrated (as might be expected) because things like the menu system does not feel native to me. Either one works though. Most sites are not optimized for mobile of course (this one is a perfect example, which I hope to fix) so your mileage my vary.
The mail system works great with my setup. All of my messages are forwarded to my phone. If I read them on the phone, then they show as read in my Mail inbox. I can also delete them on both at once. This of course works with my own personal IMAP over SSL server.
Blackberry supplies PocketMac for syncing your Blackberry. It’s not the best application in the world and it’s a little buggy. But generally it gets the job done and lets you sync your phone with AddressBook, iCal, etc. Hopefully we’ll get native support for iSync at some point. There’s no native Mac OS X support for Windows Mobile either, so you have to use Missing Sync. I haven’t tried it, but maybe they could get on board?
Did I make the right decision? Should I have gone with PalmOS? What are your experiences being a geek who wants more than a random business person with your SmartPhone?
Coming soon, hopefully some more info on developing for Blackberry.
Getting Started with Blackberry Pearl on Mac OS X
Use Netbeans for Blackberry Development