It’s been a while since I’ve posted anything, so I thought I’d write an article about some highlights of what’s been happening lately.


Kastri is a popular library for Delphi that’s mostly for cross-platform work, although there’s actually a couple of VCL oriented units in there!

It is constantly receiving updates for bug fixes, as well as support for the ever-changing world of mobile development, and additions to support existing frameworks/libraries. Some of the most recent additions have been:

App Review

This is support for invoking app reviews right from within your own app. On iOS it uses the StoreKit framework (the methods have not been added to Embarcadero’s import of StoreKit, so I’ve added one, which is up to date with the iOS 16 SDK). On Android, it uses the Play Core library, which Kastri already had an import for, however is now using the ReviewManager class to kick off the review process.

App Update

For in-app updating of your Android apps. (iOS does not really have an official method for this)

FCM Rebooted

A “re-imagining” of FCM support in Kastri. This is a kind of hybrid of the EMBTFCM project, and the original FCM demo/feature, however since Embarcadero now have (close to) full support for both Android and iOS, it’s mostly sugar coating and a couple of tweaks to fill in the gaps, and make it super easy to use.


If you weren’t already aware, there’s another repository at Delphi Worlds on Github called Playground. This is a kind of R&D area for code I am working on, including features/demos that may end up in Kastri, as well as other code, some of which I am just seeking help with, or looking for feedback for.


In Kastri, there is a demo called VKVertScrollBox, which helps move controls so that they’re not obscured by the Virtual Keyboard. Now, in Playground, there is a demo/feature called VKObserver, which is intended to supply the same outcome, however it’s not restricted to using a vertical scrollbox, fixes an issue with later versions of Android, and will hopefully be more reliable.


The idea behind this code is like a number of apps that have it – you have a “gallery” of some kind where one of the items is presented on its own, and you can swipe left, or right, to go to the “previous” or “next” item (Tinder might be one example of this). In this implementation, there’s physically only 3 items – one on the left, one in the middle, and one on the right. The principle is that when swiping one way or another, the one in the middle is just moved to the left or right space, and depending on whether there are any more, a new item is moved into the “vacant” space.

As per the readme for this project, I started this code years ago, and was intended for a mobile app that is yet to make it anywhere. During one of my “I should resurrect that” phases I decided to start work on it again, and I’m much happier where this version is going.

There’s a bunch of other stuff in Playground – if any of it interests you, please provide feedback!


In some of the little spare time I have, I’ve been preparing to make the source available for Codex. This has involved removing a dependency on JCL/JVCL and other 3rd party code, and a substantial revamp of the code because it had become very messy, with too much code in places where it really shouldn’t be.

The plan is to release the source to Codex late this year, possibly around August/September, when the version number will be bumped to 2.0.0, due to the major refactoring and a bunch of new features!

Other stuff I’m working on

The bulk of my work at the moment is consulting for a client here in Adelaide. I am also working on projects for a client in Los Angeles, and doing some “bits and pieces” for a very faithful supporter in eastern South America.

Most of what time I have left over is dedicated to supporting all the things you see on the repositories at Delphi Worlds, as well as answering questions on Stack Overflow, Delphi Praxis, Telegram, Facebook groups and my own Slack workspace. How I find time to write articles like this, or sleep, is a mystery.

I hope to be able to make this a regular thing, i.e. write an article about stuff I’m working on, however if you think it might have been too long between articles, come and say hi in Slack or Telegram 🙂