I recently attended the Rad Studio XE2 World Tour designed to show off the virtues of the latest version of Delphi. Having used various versions of Delphi over the last 10 years I thought it would be interesting to go along and see how things have moved on.
I’m currently using Delphi 2010 for the vast majority of my development work and this currently restricts me to 32-bit Windows development. A new component added to the XE2, named FireMonkey, changes this restriction. You can now build executables from Delphi for 32-bit & 64-bit Windows along with Mac OS X and even iOS!
This post is a quick review of the main new features I learnt about at the workshop and how they may be of use.
FireMonkey is quite a leap. Not only is it now possible to build native 64-bit application you can now target the Mac, iPhone and iPad with native executables. There is talk of extending this to Android and possibly even Linux down the line so this is starting to get very interesting…
As I had a need to develop an iPhone app already I have had to dig into Objective-C and Xcode. So being able to target the Mac isn’t crucial for me but it will reduce the development required to create applications that need to run on both Windows and Mac.
One thing that I learnt from the workshop is that FireMonkey is a replacement for the VCL. The VCL is still available for 32 & 64-bit Windows development but VCL applications cannot be compiled for use on Mac or iOS. This will mean that any applications that will need to be built for the Mac will have to have, at least, the forms redesigned as there are some inherent differences between the two. The differences are supposed to be fairly minor though.
For any new development it is essential that you make the decision early on whether or not you want to use FireMonkey or VCL as there is no easy way to switch between the two.
There are a couple of other advantages to FireMonkey. The components are all vector based and so scale, up or down, very well and remain crystal clear at any resolution. Another feature is the direct use of the GPU, using native access appropriate to the operating system, allowing for very quick graphical manipulation and animations that help you easily create a much richer user interface.
One thing lacking from FireMonkey appears to be a reporting tool. FastReport is now included with Delphi alongside Rave Reports as the latter hasn’t updated their source in a while now. Neither of them currently have FireMonkey versions of their components though so reports are currently VCL only!
This is another interesting new feature. The basic premise is that any component can be linked to any piece of data. This piece of data could come from a database, a text file or another component for example. There is also a scripting ability to adjust to result before it is displayed.
In previous versions you had the choice to use DB aware components for direct use of database fields but any adjustments have to be made with events. For any non database data this would all have to be done manually with events on non data-aware components.
This all sounds like another great code saving addition. It is quite hard to get your head around though so I cannot really comment on how useful this will be until I actually give it a go…
If you use themes or skins throughout your applications then VCL styles should make this much easier. You can create a style that, once selected, gets applied to all components in the application.
The same styling facility is built into FireMonkey so cross platform development can also benefit from Styles.
There are, however, a few exceptions, like dialog boxes which use the native operating system style.
This all sounds useful but again I think it will require some hands on experience before you can really judge the benefit…
When I first saw the advertising for XE2 I saw an image for Android. This got me very excited. Unlike iOS though you cannot create native apps from within Delphi. That isn’t the end of it though. So why was the Android image shown?
Within RAD Studio XE2 there is another way to create native mobile apps for both iOS and Android. RadPHP!
RadPHP is the new name for Delphi for PHP. The old name was a bit confusing as the use of Delphi in the name kind of infers the use of the pascal language but you have to develop in PHP…
Anyway the newly branded RadPHP allows you to build web applications. The new addition is that there is now a wizard that allows you to turn a web application into a native mobile app using a wrapper known as PhoneGap.
It’s just a shame that this has to be developed using PHP instead of Delphi’s pascal that I know so well…
So am I going to buy in to the latest version? Well I’m seriously thinking about it…
I like the idea of FireMonkey and I’d like to check out the LiveBindings facility. The thing that really got my interested though is RadPHP’s ability to create Android apps.
I have already been approached about creating an Android version of the Ski Pad iPhone App. As I have used PHP in the past I am hoping that this might be a quick way to achieve this without the need learn another need language and development environment from scratch…