TMS Aurelius in your iPhone


Friday, May 10, 2013

We have just released TMS Aurelius 2.1 with XE4 support. This "small" release took a little longer, but with a good reason for that: thanks to the new iOS compiler provided in Delphi XE4, now TMS Aurelius supports iOS devices, in addition to the already supported Win32, Win64 and OS X platforms!

As you might already know, the new iOS compiler has some different concepts than the traditional Win32 compiler we are used to. Automatic reference counting for objects and zero-based strings are the main ones, and also the fact that pointers usage is discouraged now.

But for those considering using this new iOS compiler, there is good news. Personally, I was surprised, in a positive way, how backward compatible it is. Of course it depends on your code. If it has heavy pointer usage, lots of low-level hacks, etc., you might have a lot of work to do. But other than this, there is a good chance that you code will work smoothly on iOS. I can speak for Aurelius. It can be considered a very new TMS product (a little more than one year passed since 1.0 release in January, 2012) so it uses several new language features like generics, new RTTI, among other recent additions that helps the code to be very clean, well structured and with almost no pointer usage. Making most of it to compile to iOS required minimum changes, and it worked fairly well (of course, all our tests passed, in both iOS simulator and iOS device).

I said it was easy to compile "most of it" because the only exception was TAureliusDataset. Not that it was a nightmare, but without it, the other parts of TMS Aurelius would be compiling and running on iOS in a matter of minutes. But TAureliusDatset of course descends from TDataset which is a code that heavily uses pointers, internal buffers, etc.. So it required a some effort to convert.

All in all, you can have your TMS Aurelius code working on iOS, with all existing features, including TAureliusDataset and native SQLite support. And the best part is that you can use it the same way you do in Delphi: since TMS Aurelius already manages the memory in VCL/FMX applications (you usually don't have to worry about destroying objects retrieved from the database), you will have the same behavior in iOS.

Wagner R. Landgraf


This blog post has received 4 comments.

1. Saturday, May 11, 2013 at 9:36:40 PM

Delphi now have an advantage of single executable running in most of systems,

i see a great future for them if they do something like what lazarus is doing, of course, lazarus is not a complete project but i like it because one code can run everywhere.

Ryan Samiee

2. Sunday, May 12, 2013 at 8:37:36 AM

As far as I know Delphi will target new platforms by using LLVM.

iOS was first, Android will be next.

@Wagner: Thanks again for Aurelius.

Roland Kossow

3. Sunday, May 12, 2013 at 1:46:15 PM

Awesome! (there is really no need to say more :) )

Holger Flick

4. Saturday, May 18, 2013 at 9:40:02 AM

Something like this were never exists in delphi arena, a great design plus a good feedback from users, Aurelius is a wonderful product now for the ones like to use correct software engineering and DDD in their products.

Ryan Samiee

Add a new comment:
  You will receive a confirmation mail with a link to validate your comment, so please use a valid email address.
Change Image
Fill in the characters from the image above:

All fields are required.

Previous  |  Next  |  Index