It is not often I purchase books these days. With so much information sitting there on the Internet, it takes a special something for me to actually reach into my pocket and make a purchase. The problem with the Internet at times, is organization. The information is without a doubt all there, its just all over the place! A book brings it altogether in a nice rounded packaged. Nothing beats going old school to learn about cutting edge technology.
The problem with learning a new technology from the Internet, you are sometimes left with a nagging doubt that you are missing a crucial piece of the jigsaw. You've maybe skipped over that one important step that will make your development infinitely easier. Or your understanding of something is based on completely the wrong assumptions and the hoops you are always jumping through to get to a particular feature set can be short cutted.
With that in mind, and now that Google's GWT is featuring more and more in my development cycle, I wanted some offline reading to fill in the background to the bits that maybe I had missed.
I had a sniff around the forums to get a recommendation on a book and while none was forthcoming, I did notice one site kept popping up in the examples of GWT source code, and that was Ryan Dewsbury book site. Off I trotted to Amazon and purchased my first ever technical book in years. Arrived the next day. How exciting!
I instantly opened the book up, sat down with a mug of steaming coffee and starting to digest it. I was instantly comforted at its general style and layout. The book took you through the reasons why GWT exists in the first place and of course how you acquire it and get it up and running on your machine. Nothing earth shattering yet.
Ryan (forgive me for being familiar with the authors name, i do not know him personally) instantly starts off with a simple example so you can see the full development life cycle seeing where all the pieces fit together and how the Google GWT compiler operates. Again all good stuff, and reaffirming my continued notion that I was indeed building the applications correctly.
He then continues with a good explanation of all the moving pieces in the API, including all the widgets and how they relate to one another. His detail is much deeper than the quick overview on the Google website, and there was some connections I had initially missed. Another area that I haven't yet used in any real anger is the server integration. Ryan explains this beautifully with full examples illustrating all the moving parts and how you can easily get to grips with this.
What I love about this book, is its teach by example approach. The vast majority of the book is made up of chapters that build complete fully rich web apps. Everything from a blog editor, an instant messenger, database application to even a full blown, drag'n'drop desktop app. After reading this chapter the mystery of how you can build your own iGoogle page is lifted.
Ryan is careful to illustrate the strong relationship your Java application has with CSS, detailing how you should separate as much as possible the visual paint away from the inner workings, and puts forward a technique or two for adhering to this.
I have to confess that I knew the vast majority of what this book taught me, but it confirmed that my knowledge of GWT was sound and I wasn't missing a big piece. That said, he did teach me a lot, and took me into new areas of the GWT API I wouldn't have normally gone near. So with that, the book has already paid for itself.
I find myself reaching for it every so often, just to see how certain things are laid out, but again, thats more for a comfort level to convince myself that I am indeed on the right track.
While the book only covers the 1.4 API (the additions to the GWT 1.5 are minor enough that this book will not date for a long time yet), I would still definitely recommend this book to anyone starting out in the world of GWT. It is a great primer and is not scared to go into some real advanced techniques very quickly without making the reader feel stupid.