Expert Delphi - Second Edition: Robust and fast cross-platform application development
M**.
A Handsome Return on Your Time Investment
This book is all about building mobile applications, cross-platform applications, since that is what FireMonkey implies.Delphi allows you to develop applications for the two major mobile platforms: iOS and Android, as well as desktop apps for both Mac and Windows, from the same code base. As well you can build the backend for the mobile apps, offering REST access to your own services.Sounds pretty amazing, doesn't It?The book is for developers who know the foundations of programming and can write code in at least one programming language. According to the Preface, Delphi is not a prerequisite, but in my opinion the reader inexperienced with some form of the Pascal programming language, preferably Delphi, will struggle with some of the more difficult concepts. The main focus of the book is on mobile application development.At the time of this review, I have only thoroughly examined the first 6 chapters of the book. This is not a novel or a romantic comedy; it is a fairly technical discussion of some programming principles and practices that will take the inexperienced reader some practice to fully grasp and effectively implement. It is true, that there are extensive examples available for download to accompany the examples in the text, but in my opinion little is gained by downloading somebody else's code and pushing the Execute button of the IDE. You'll learn a great deal more if you actually code and understand each line of the examples rather than just blindly following point and click instructions.**Part I** of the book, *Building Blocks,* is something of a light-weight presentation of some basic Delphi and Pascal language concepts. In reality, most of it would apply to VCL development as well as FireMonkey. It contains the obligatory "download and installation," the "Hello, World!" app, and a brief look at application deployment to Android and iOS devices. It's not quite as easy as the book claims, depending on your working configuration. I work on a Hyper-V instance of Windows on my workstation. Connecting your Android device to your development instance can be daunting if you don't know the ins and outs of getting the instance to recognize the device. The book moves on to presenting some fairly basic stuff about the Delphi language; it's something of a refresher, although I confess to having an aha moment about helper classes and type aliases that never occurred to be before.Then, on to meatier stuff: Files, XML, and JSON. Given the importance of data transfer in today's environments, I would have liked to see a little more depth in this discussion. What the book presents is accurate, but a little more exploration of use cases and techniques would be a welcome addition to the text.The final chapter of this section briefly examines some asynchronous programming topics at a rather high level. If you're unfamiliar with things like the Parallel Programming Library or synchronization this is a good starting point but you'll probably want to consult other, more advanced, resources when your use case becomes more complex.**Part II** Gets us started with mobile development, and for me a more interesting and useful part of the text. Chapter 5 develops the "Game of Memory" app. It was at this point that I started to become more interested in the book's instructional value, since developing this app involves some unique qualities of FireMonkey such as object parenting, shapes, animations, touch, gestures as well as some engaging use of bitmap images. Besides being fun, it was, for me, instructional because of the new territory it covered.Next we move from 2D to 3D, and things get even more interesting. 3D is not an easy world to conceptualize, so I had to spend some time just wrapping my head around some of the concepts. Consider that fine artists did not begin using perspective in their flat canvas renderings until the 15th century, and it becomes obvious that this is not an immediately obvious way of presenting images. So Chapter 6, **Firemonkey in 3D** really pays homage to a watershed development in the way mankind visualizes reality. (Thank the Italian Renaissance artists for this trend!) The chapter provides some details about technical implementations and then illustrates basic drawing concepts using a couple of simple geometric solids. More complex examples follow eventually finishing up with a discussion of mixing both 2D and 3D technologies on the same form.This is where I must stop dwelling on details and comment solely based on the remaining table of contents, as I have not had the time needed to fully attend to learning what the rest of the book has to offer. But a quick glance at the TOC, and the realization that the first two sections have moved from rather elementary to more advanced concepts, it's reasonable to think that the remaining sections will likewise both inform and educate; they should provide ample opportunity for examples and practice. Those are the kinds of things I'm expecting to see as I move through the remainder of the book. My remaining journey consists of FireMonkey Styles, Mobile Operating Systems and unique mobile requirements and capabilities including app deployment and a fair amount of discussion of data, both embedded and so-called "back-ends" accessed using Internet connectivity. It should be an interesting and productive ride. I'll try to post a lengthier review about what I discover when I make the journey.All of that being said, my present conclusion is that this book will provide a valuable experience to those who read carefully, who work the examples and practice problems independently rather than just downloading the answers from GitHub, and above all those who realize that you will get out this kind of book just as much as you invest in reading and understanding it. All of the cheat sheets and all of the influencers who copy and paste on LinkedIn will not provide what plain diligence, perseverance and this book will provide when it comes to cross-platform development using Delphi and FireMonkey.Enjoy the journey!Note: I received a review copy of this book from the publisher. The review itself is my own opinion and original writing.
D**H
Excellent Work
Marco did a great job of updating this exhaustive work of which, sadly, the original author is no longer with us. A must have for all Delphi developers!