
The last 6 months were extremely busy for me. A lot had happened in both private and professional aspects. Having that in mind I'm quite happy I manged to deal with completely new experience - being a technical reviewer of "Liferay User Interface Development" - a new book published recently by Packt Publishing. Despite the lack of spare time I was somehow able to read and comment on drafts of 10 chapters covering things like theme development, layout templates, velocity templates, tag libraries, AlloyUI, and much more. Hopefully my comments and opinions ware useful for the authors and help them improve the book.
I still don't have the published book (I'm about to receive my copy soon) but based on what I have read in the drafts I can say it's worth recommendation. The book puts together most of the peaces related to UI development in Liferay. Of course it does not cover all the details (no book can do this) but it often goes beyond the basics. In fact one of the chapters I found very informative and well organized is freely available on-line (http://www.packtpub.com/sites/default/files/2626OS-Chapter-5-Advanced-Theme.pdf) so you can check for yourself. There is also quite good chapter about AlloyUI - especially useful if you have to move form Liferay 5.2 to Liferay 6.0 and replace JQuery with AlloyUI. The migration and upgrade process is also one of the subjects in the final chapter "User Interface in Production" which among others covers things like workflows, social UI and friendly URLs.
Of course, there are too many options when it comes to UI development (JSF, Struts & Tiles, Vaadin, JQuery, AlloyUI, Liferay UI taglib, Velocity, Freemarker to mention just a few) and it's not possible to describe them all in details. This book concentrates on Liferay's approach to UI development which (in version 6) is a powerful mix of Velocity templates, tag libraries and AlloyUI. And yes, if you use Vaadin or JSF or Freemarker for your day to day work, it may not be a book for you as all you'll find in it about this technologies is references to online recourses. But going back back to "standard" UI approach, the authors really try to teach the reader by providing many examples, mini tutorials and references to portal's and portlet's source code.
One thing I was pointing out while reviewing the book was the lack of good reference documentation in two areas: tag libraries and Velocity variables and macros . One may argue whether such a book is the best place to provide such documentation. Maybe not, I'm not sure. On the other hand comparing the number of questions posted on Liferay's forums about what tags are available and what their parameters mean with briefness of documentation available at http://docs.liferay.com/portal/6.0/taglibs, makes me thing that more in depth information on the subject would make this book more attractive for wider group of Liferay users. Same thing about Velocity macros and variables. Event the most advanced reference about velocity variables in Liferay I know about - http://www.myoffice24x7.com/web/manual/howto/explore-velocity-variables/-/velocity-explorer/journal - seems to be incomplete and sometimes inaccurate. I don't know if my suggestions were taken into account. Honestly, I doubt the authors had enough time and room to be able to dig deeply into those subjects. But hopefully at least those tags, variables and macros used in the examples and better described.
But please don't get me wrong. The fact that I will always point out something that in my opinion can be done better does not mean the book is bad. Assuming one don't need to get deeply into Liferay's internals and do not worry too much about what exactly any particular line in the sample code does, this book provides complete information about Liferay UI development. I personally learned a lot of new things although I've been using Liferay for a few years. The bottom line is: whether you have been mastering Liferay portal for a while or just entering the world of Liferay, this book will help you understand how to develop complex and user friendly user interfaces in Liferay Portal 6.0
Liferay plug-ins adapted to work with Liferay 6.0.5
As soon as Liferay 6.0.5 was released I decided to adapt my plug-ins to the newest framework version. But as we all know, being determined to do something is not the same as having the time to do it. The good news is, a few days ago I finally quit saying myself "never mind, you'll do it tomorrow" and started getting things done. And now I'm happy to announce that Custom Global Markup, Tailgate and Liferay-UI Taglib Demo are already upgraded to work with Liferay 6.0.5.
Liferay GWT portlet - how to make it "instanceable" and use GWT RPC
Every once in a while somebody asks about writing Liferay portlets in GWT. It seems a lot of people are successfully using GWT with Liferay but surprisingly I couldn't find any complete tutorial on the subject. There are a of course tutorials explaining the basics but what they concentrate on, is how to build single-instance and client-side-only portlets. This is good enough to get you started but chances are sooner or later you'll need to place two instances of the same GWT portlet on the same page and/or implement GWT RPC to make use of the Liferay services.