GMail on Your BlackBerry: Latest Client Offers Significant Featur

A few days ago I upgraded to version 1.5.1.1090 of the GMail client for my BlackBerry 8130. (This is a native, stand-alone, J2ME client application. In other words, it does not require a Web browser.) Previously, and for the past few months, I’ve been using version 1.1.x of this same client. 

The download and installation went very smoothly. One surprise, however, was the need for a reboot of the BlackBerry to complete the installation of the client. I don’t recall that need with previous releases. I can only suppose that this requirement is necessary to enable the deeper integration of the GMail client with the BlackBerry platform.
And that’s a good segue … What’s new? Well: 
  • Contact manager – This is the most significant feature/functionality enhancement. On opening the contact manager, a display of those with whom you interact with the most is presented. There’s also a search functionality that allows you to rapidly retrieve any of your contacts in the familiar way. And of course, should you wish, you can list all of your contacts. Once you’ve selected a contact from the “Most Contacted” list or via search, your contact’s details are presented. Just below the contact details is a link that allows you to display recent conversations with the identified contact. Very powerful. Very Google. Very nice! All of this means that you can initiate a new conversation or pick up on an existing one from the contact manager.  
  • Notification – The notification capability is also a significant enhancement in my estimation. What this means is that an icon resembling a bottle cap appears over top of the GMail client icon to indicate the arrival of new mail. This capability is integrated with your BlackBerry profile so you can associate in and out-of-holster behaviors to signal the arrival of new mail. The only thing missing now is the summary icon that is displayed by other applications in the upper-right corner of the BlackBerry’s screen. This capability is enabled via a new setting; select “More”, then “Settings” before placing a check mark against the notification option. There are a few more settings that are new to me – one allows for larger fonts, while the other allows for the “Sent from my mobile device” tag line. 
  • Finish Later – In the event that you are unable to finish composing a message, this version allows you to finish composition later. Note however, that only one draft can be saved. This is a welcome addition that I found myself pining for in previous releases.
As far as I can tell, that summarizes the features that I found new in this release. Based on a few days’ worth of experience, the implementation appears solid and performs well, making the upgrade highly worthwhile.
You can grab the GMail client for your mobile device by pointing the device’s Web browser at gmail.com/app. See Google Mobile GMail  for the details.
If you’re using Google Apps for Your Domain (GAFYD), point your mobile device’s Web browser at http://m.google.com/a. See the Google Apps page for more.
If you want to see what I’ve written previously about the GMail client for the BlackBerry click here.

 

Book Review: Google Web Toolkit

Automagically convert Java to JavaScript. 

Thus begins the seemingly curious proposition of the Google Web Toolkit (GWT). 
Of course, it’s about a lot more than that. 
For one thing, GWT addresses a key gap in the rapid delivery of the Asynchronous JavaScript and XML (AJAX) based applications that are driving eyeballs and mindshare to Google’s Web site.
By the time you’ve read Prabhakar Chaganti’s book on the GWT, you’ll be significantly wiser on at least two fronts. You’ll know that:
  1. There’s a broad-and-deep software engineering ecosystem around the GWT that is fueling progress and delivering highly significant results. 
  2. Chaganti is an excellent guide with the ability to negotiate this ecosystem and drive you towards tangible outcomes.

Using a task-oriented approach, the book proceeds as follows:

  • Chapter 1 rapidly places the GWT in context, and gets you started by downloading, installing and working with the samples provided. Available for Apple Mac OS X, Linux and Microsoft Windows, the GWT only requires the Java SDK as an installation prerequisite. The GWT is made available via the Apache Open Source license; this allows for the development of commercial and Open Source applications. 
  • With the Java SDK, the GWT and the Eclipse IDE, the developer has a well-integrated and powerful platform on which to develop applications. After illustrating the development of the obligatory “Hello World!” application at the outset of Chapter 2, attention shifts rapidly to use of Eclipse. Google’s Web-wired DNA is evident in everything they do, and the GWT is no exception. The GWT leverages the Java SDK and Eclipse to the fullest, while closing the gaps in developing AJAX-based applications in a very organized way. By the end of this Chapter, the reader knows how to develop a simple application with both client and server-side components and execute the same in both hosted (i.e., non-deployed) and Web hosted (i.e., executing within a Web-hosted Tomcat servlet container). Made explicit in this latter deployment is GWT’s ability to support a variety of Web browsers – i.e., Apple Safari, Microsoft Internet Explorer, Mozilla Firefox and Opera.
  • The creation of services is the focus of Chapter 3. To quote from this Chapter, and in the GWT context, service “… refers to the code that the client invokes on the server side in order to access the functionality provided by the server.” The author is quick to point out that this is a separate and distinct notion from that used in the context of Web services. True to its billing, this Chapter works the reader through the creation of a service definition interface (a client/server contract that defines the service’s functionality and establishes rules of usage) and service implementation. Particularly important in this Chapter is the creation of an asynchronous service definition interface, as this facilitates remote calls in the background to the server, and capitalizes on the AJAX support in the GWT. With definition and implementation taken care of, the remainder of the chapter focuses on use (i.e., consumption of the service by a client). Conceptual illustrations compliment screenshots to effectively convey this content. 
  • Whereas the previous chapter delivered a prime number service, Chapter 4 introduces no less than six services that really showcase the capabilities of this application paradigm. With ample explanation and illustration live searches, password strength checks, auto form fills, sorting tables, dynamically generated lists and Flickr-style editable labels are each considered. Not only does one recognize these as design patterns that are already in everyday use (e.g., Flickr, Google Docs, Maps and Search, etc.), one also realizes their potential for re-use in one’s own projects. 
  • Chapter 5 introduces five interfaces that are more complex than those presented in the previous chapter. These interfaces are pageable tables, editable tree nodes, log spy (the GWT spin on the UNIX tail utility), sticky notes and jigsaw puzzle. To reiterate, one recognizes these as design patterns already in everyday use, and the potential for re-usability.
  • Browser effects are the subject of Chapter 6. Here the author introduces the JavaScript Native Interface (JSNI) as a vehicle that allows JavaScript libraries (e.g., Moo.Fx and Rico) to be accessed directly from Java classes. A wrapper-based approach, independent of JSNI, is also introduced to leverage the Script.aculo.us effects. Although compelling effects can be achieved, cautionary words are included in this Chapter, as the impact may be diminished by browser-level incompatibilities.
  • By the end of Chapter 7, impressive calendar and weather widgets have been created, and readied for re-use. 
  • In Chapter 8, JUnit is introduced in the context of unit testing. Standalone tests plus test suites are given consideration; this includes tests involving asynchronous services.  
  • Although this is only the second book I’ve ever seen from Packt Publishing (the first I’ve reviewed elsewhere), I’ve become accustomed to expecting bonus content towards the end of the book. Chapter 9, which addresses internationalization and XML support, falls into this bonus category. Of course, it’s no surprise that Google expertise on internationalizations ranks high, and this is evident in GWT support for the same. The author provides an hors d’oeuvre of the possibilities. XML support is of particular personal interest, so I was delighted by the degree of support for creating and parsing XML documents. I share the author’s sentiments with respect to XML support wholeheartedly: I too hope that future releases of the GWT will provide broader and deeper support for XML.  
  • In the final chapter (Chapter 10), attention is given to increasingly automated methods for deploying GWT-based applications. Starting with a manual deployment in Tomcat, then an automated deployment with Ant, and finally an Ant-based deployment from within Eclipse. 
  • A single appendix details how to access and execute the examples provided throughout the book.
With the possible exception of a concluding chapter, page, paragraph or even sentence(!), to provide some sense of closure to the book, I am at a loss to report any omissions, oversights or errors of any consequence. And although it will have to wait for a follow-on contribution of some kind, additional discussion might be given to topics such as Google Gears or even Google Android.
Even though the book I reviewed was a complimentary copy provided by the publisher, I would happily pay for my own copy, and heartily recommend this book to others having interests in the GWT. 
By the way, Packt has an articulated scheme when it comes to Open Source projects:

Packt Open Source Project Royalty Scheme Packt believes in Open Source. When we sell a book written on an Open Source project, we pay a royalty directly to that project. As a result of purchasing one of our Open Source books, Packt will have given some of the money received to the Open Source project.In the long term, we see ourselves and yourselves, as customers and readers of our books, as part of the Open Source ecosystem, providing sustainable revenue for the projects we publish on. Our aim at Packt is to establish publishing royalties as an essential part of the service and support business model that sustains Open Source. 

I cannot suggest that Packt is unique in this approach. Regardless, their approach is certainly welcome.

My Next-Gen Mobile Platform: A Plain Old Cell Phone Plus Jott Plus flipMail?

In April, I stated that my next-gen mobile platform could just be a Plain Old Cell Phone (POCP) with Jott’s solution for “Mobile Note Taking and Hands-Free Messaging”.

In so suggesting, I thumbed my nose at the BlackBerry (my existing mobile platform) and the highly anticipated iPhone.

I’m not down on the BlackBerry or the iPhone, I’m just impressed by the Lowest Common Denominator (LCD) effect of the POCP when combined with Jott. (Please see the Aside below for more on this LCD effect.)

Even though it’s only been a few months, my next-gen mobile platform has just improved significantly – and I haven’t lifted a finger or spent a $!

Enter flipMail from TeleFlip:

The Teleflip beta story At Teleflip, we love creating exciting and innovative services for our customers. Three years ago we introduced our original service that allowed you to send an email to a cell phone as a text message. That service is now called flipOut. Since we first introduced the service, millions of flipOuts have been sent.

We’re very excited to launch our new service called flipMail beta. flipMail allows you to get your email on your cell phone for free.* No new software, no downloads, no new phone necessary. It’s that simple. Because we’re in beta, we invite you to share your ideas, suggestions, and feedback about how we can make this new service even better.

* SMS charges may apply – this, of course, depends on your plan.

This means I have email on my POCP. It could even be a Jott-generated email!

Because this is an SMS-based offering on the POCP, SMS-based limitations do apply:

What is a fliplette?A fliplette is a text version of your email that we flip to your phone. fliplettes are limited to 120 characters each. When an email is longer than 120 characters, you receive a series of fliplettes.

On my BlackBerry, I have the native BlackBerry email client. In my case, this client is integrated with The University’s enterprise messaging platform (IBM LotusNotes). I also have a native client for GMail on my BlackBerry.

So, even on my BlackBerry, I can see the value in making use of flipMail for email services that are not available natively for the BlackBerry.

Aside on the LCD Effect

Nicholas Negroponte’s USD 100 laptop is an excellent example of an attempt to raise the bar of the LCD in developing countries.

Whereas this laptop is intended to “… revolutionize how we educate the world’s children …”, the POCP plus Jott and flipMail embraces and extends the connectivity possibilities for those that already have cell phones:

The international implications for the service are even more impactful, as Teleflip solves a significant issue by providing e-mail access to millions of cell phone users in emerging e-mail-developing countries. As many as 70 percent of the world’s current 2.5+ billion mobile phone users do not have access to the Internet or e-mail. By establishing a flipMail account through Teleflip, this large population will now have instant access to send and receive worldwide e-mails on their regular cell phones, and again, without any new software downloads, special mobile Internet plans, or any new hardware or devices. So their existing cell phone number will be their onramp to the worldwide e-mail network.

While such a platform could have an impact in developing nations, where cell-phone usage often eclipses land-line usage, the POCP++ platform may have a broader global impact.

And although the USD 100 laptop has WiFi (including wireless mesh) capabilities, it may also benefit from cellular-based connectivity. Such a possibility could be enabled by, for example, adding a Bluetooth capability to the laptop’s already impressive array of technical specifications. In other words, with Bluetooth on both the laptop and cell phone, there exists an alternate vehicle for minimizing the connectivity gap.

Negroponte’s vision for the USD 100 laptop is compelling.

POCP++ could be a part of it – or some other humanitarian effort.

Wanted: J2ME Version of Google Calendar

The fine folks at Google recently announced:

You can now access your Google Calendar account from your mobile phone! Just visit mobile.google.com/calendar/ with your phone’s web browser and once you’re logged in, you’ll see your list of upcoming events with date and time information in an easy-to-browse format.

This is great!

However, what’d I’d really appreciate for my BlackBerry is a J2ME version of Google Calendar.

Since Google already delivers a J2ME version of GMail for my BlackBerry, I hope that the J2ME version of Google Calendar isn’t too far away …

The Top Ten Reasons You’ll Want GMail on Your Blackberry

I’ve blogged a lot about the GMail client for the Blackberry over the past few weeks.

There’s been enough interest to warrant a Top Ten list – something along the lines of “The Top Ten Reasons You’ll Want GMail on Your Blackberry”.

Before I release my Top Ten, I thought I’d consult the collective wisdom of those who happen by my blog.

Please share a comment to this post, or drop me an email (ian DOT lumb AT gmail DOT com), and let me know what you think should be on this Top Ten list.

I’ll summarize and share in about a week.

With thanks in advance.

Google Office for the Blackberry: Coming Soon?

In a recent post, I blogged:

Now picture this: A J2ME client application for Google Docs & Spreadsheets.

This is interesting on a number of levels:

  • It’s feasible! Google Docs & Spreadsheets is likely written in
    some variant of Java (J2*E) already, so paring it down to J2ME is (in
    principle) possible.

Alas, Google Docs & Spreadsheets (GD&S) isn’t based on some variant of J2*E.

It’s based on JavaScript. To see this, open a document or spreadsheet in GD&S and then look at the document source (“View \ Page Source” in Firefox) and/or the DOM (“Tools DOM Inspector” in Firefox). Or, try to open a document or spreadsheet in GD&S on your Blackberry. You’ll soon find out about the dependence on JavaScript.

More precisely, GD&S is based on AJAX (Asynchronous JavaScript + XML). AJAX is behind the wonderful user experience afforded by most of Google’s offerings. (There’s an outstanding explanation of how AJAX achieves this experience available from Adaptive Path president and founder J. J. Garrett .) AJAX is a multi-tier platform or framework for developing and delivering Web-centric applications. (And many refer to it in the same breath as Web Services.)

In striking contrast, the GMail client for the Blackberry is a stand-alone Java application that executes within a J2ME container under the Blackberry operating environment.

gmail_berry.png

Clearly AJAX and J2ME are completely different environments/platforms.

Thus it would seem that Google has the options summarized by a two-dimensional platform versus motivity grid.

platform_motivity.png

On the vertical axis, platform ranges from self-contained to service-oriented.

Motivity is a bona fide word that is synonymous with locomotion (the power or ability to move). I intend here to coin a slightly different meaning, a juxtaposition of mobility and connectivity. More precisely, I propose to use motivity as a semi-quantitative measure of the degree of mobility relative to the degree of connectivity. As mobility increases, connectivity decreases, and motivity therefore increases. This is illustrated by the horizontal axis of the two-dimensional grid. It is also important to note that connectivity is itself a proxy for bandwidth and latency. More precisely, high connectivity is taken to imply high bandwidth, low latency connectivity.

Thus the options in taking GD&S to the Blackberry are:

  • Port GD&S to the Blackberry operating environment (i.e., develop a native J2ME client version of GD&S) – the lower-right quadrant of the 2D-grid

or

  • Port the client-side aspects of AJAX to the Blackberry operating environment (JavaScript and the AJAX engine) and interface this in real time with the server-side components – the upper-right quadrant of the 2D-grid

There is one other possibility that originates in the lower-left quadrant. GD&S could be written as a Java application. A pared down version could be relatively easily be made available for the J2ME-based Blackberry operating environment. (This was my naive suggestion that’s been revisited in this post.) In parallel, through use of the Google Web Toolkit (GWT), the same Java version of GD&S could be converted to AJAX as “… the GWT compiler converts your Java classes to browser-compliant JavaScript and HTML.”

Thus a revised two-dimensional grid of the possibilities is shown below.

platform_motivity_gwt.png

Either way, it may be some time before Google Docs & Spreadsheets makes it to the Blackberry.

GMail on My Blackberry Revisited (Again)

Three new discoveries. One good, one bad, and one inbetween.

First the good one. You can follow a link. Suppose you’re reading a message, and there’s a link in the message. You can use the thumbwheel to highlight the link, and then depress the thumbwheel to open the link via “Get link”. When you close the link, via the ESC button (below the thumbwheel), you’re returned to your GMail session. Nice!

Now the bad one. The GMail client for the Blackberry doesn’t understand GMail Groups. (This is a collection of individual GMail contacts.) It’d be nice to have this functionality in a future version.

And finally, the inbetween one. Your contacts are only as current as your last log in. I had to log out of the GMail client on my Blackberry, and then log in again, so that I could see contacts that I’d added. I suppose this is what’s required to repopulate the contacts cached on the Blackberry. Selecting “Refresh” did not have the effect of repopulating the contacts cache. It’d be nice to have an option that addresses this in a future version …

This is one of several posts regarding the GMail client for the Blackberry. The others are: