If you follow the Codex repo, you would have noticed that version 1.3 was actually uploaded a couple of days ago. This article describes a what’s new and changed in Codex, and things I’m working on for Kastri.


Editor Tabs On Left

With the release of Delphi 10.4 Sydney came some changes to the IDE, which includes the StatusBar at the bottom of the code editor windows. Those changes in particular broke the “Editor Tabs On Left” feature of Codex. I struggled for a while to make them work again, however the best I could do so far is to have them appear on the left only if the macro toolbar that appears in the extreme left is hidden, and even then when the desktop changes (such as when debugging) it would all fall apart again, so I have shelved that feature in 10.4 for now.

ADB Connect

Codex 1.3 has a new feature: ADB Connect. This allows you to connect to an Android device over a network, as long as your machine can “see” the other address. The option is available via Tools|Codex|ADB Connect, or via the new Codex toolbar that you can enable by right-clicking the Delphi main toolbar and checking the Codex item:

In order to connect to a device via IP, first the device needs to be connected to a machine via a USB cable, then at a command prompt, run this command:

[path_to_adb]\adb tcpip 5555

Where [path_to_adb] is the path to the adb command on the machine, which means it will need to have at least the Android SDK tools installed (i.e not necessarily the whole SDK). This is all made simple via DeviceLens, which can help with installing the Android SDK tools, and actually run the command required to put the device into TCPIP mode:

Once the device is in TCPIP mode, you can use the ADB Connect feature to connect to the device:

The “configure for TCPIP” part could appear in a future version of Codex. ADB Connect was developed in response to being able to debug/monitor a device over a VPN, so the device may not even be in the same country as the machine that has Codex on it.

Total Clean

A menu item has been added to the Project Manager context menu called Total Clean:

This option will remove all files in the projects output folders for every platform as well as the folders themselves (if it can), so please use it when you’re absolutely sure that’s what you want to do.

In the works for Kastri

As per the last article, there are a number of things planned for Kastri. Becoming a Github Sponsor will help make these a reality. I’m currently working on:

Apple Signin support

As per Apple’s guidelines, if you offer login via any of the major social media providers, you must also offer login via Apple Signin (this has applied since April 2020). I have an implementation in testing phase, so if you’re interested in helping out, please join my Slack team and go to the #kastri channel.

Camera for Mobile

A while ago I published this project, which implements the device camera using the newer Camera2 API on Android. I had plans to add iOS support when I started it, and actually had a private project that did implement it on iOS, however I shelved all of it due to time constraints. When joining Github Sponsors, I figured I should include features that would help encourage developers to sign up for sponsorship, so I have resurrected the camera project to be part of Kastri.

Some of the work has been done, including having the camera preview take advantage of the native view implementation included in Delphi so that it has z-order support, e.g. you can have the preview on a tab of a tab control, and switch tabs without having to turn off the preview. Also, because it uses native classes for the preview, performance is way above that of the built-in camera component in Delphi

Other items in the works

These items are planned:

  • Photos library that makes use of the Photos framework on iOS, and has implementation for Android
  • Universal Links support on iOS
  • Background Task management for iOS
  • Background Fetch for iOS (improved version)
  • Sensors (using the OS APIs)

All items currently in the works or planned have a much better chance of becoming a reality and potentially sooner with sponsorship, so please consider becoming a sponsor today!