12 times 12 new features in Delphi 12

RAD Studio 12 includes some great improvements for C++Builder and the launch webinar and other online content highlights it. However, it is also a fantastic release for Delphi developers. I compiled 12 lists with 12 improvements each for Delphi 12. So this is not a list of 12 improvements for Delphi 12. It's a list of 12 x 12=144 improvements, plus half a dozen for native Windows bringing the total to a whopping 150 -- excluding all the existing improvements for C++Builder, as here I want to underline the Delphi side (but most of the features below are in fact for both languages).

The first blog post had 3 x 12 VCL Enhancements in Delphi 12. This second one blog post is focused on FireMonkey and the Android platform support. The FireMonkey changes apply also to C++Builder 12, unless they are mobile specific, in which case they are for Delphi only. Stay tuned for two more blog posts.

Skia in FireMonkey

    1. Skia.pas unit offers direct access to the Skia library
    2. TSkAnimatedImage component for FireMonkey with support for Lottie, Telegram Sticker, Animated GIF and Animated WebP formats
    3. TSkLabel component for FireMonkey
    4. TSkPaintBox component for FireMonkey
    5. TSkAnimatedPaintBox component for FireMonkey
    6. TSkSvg control for FireMonkey to easily display SVG easily. 
    7. FMX.Skia.GlobalUseSkia setting to enable app rendering using Skia
    8. FMX.Types.GlobalUseVulkan setting to enable using the Vulcan driver in Skia
    9. Effects and Filters can use Skia Shading Language (SKSL) 
    10. Support for Printer on Windows
    11. Support for printing to PDF on Android and iOS
    12. Support for WebP image format

      The SkLabel Skia control at design time
      screenshot 2023 11 06 at 10 35 12 pm

Other FMX new features

    1. FireMonkey Split Screen Support in Android and iOS
    2. New TEdit property AutoSelect and CharCase 
    3. The recently added TUndoManager is shared between TEdit and TMemo. In addition, TEdit now supports Undo functionality
    4. Refactoring Virtual Keyboard for iOS
    5. New HeaderSettings property for the TColumn class
    6. Enabled FireMonkey to remove the TCanvas global lock
    7. Expanded FMX multitouch support by adding these new fields to the TTouch data type
    8. New TWinFormPositionerService to help FMX manage the screen(s) layout and positions
    9. New IFMXPlatformPropertiesService
    10. New universal TFontManager for Windows and macOS
    11. New OnFreeStyleLookup event has been added to TStyledControl
    12. New FireMonkey Windows 11 style

      Split views screen support, in this case on Android
      111 splitview

In Android platform

    1. Android target API level 33
    2. Support for the Android Scoped Storage model
    3. Updated the JManifest_permissionClass and JManifest_permission_groupClass classes 
    4. IFMXExtendedClipboardService update to allow applications to prevent sensitive content from appearing in the clipboard editor overlay introduced in Android 13
    5. Support for the new Android Splash Screen standard 
    6. Support for Android Adaptive Icon format
    7. Updated the Application - Uses Permissions options page
    8. Upgraded FireMonkey Android in-app purchases support to depend on the latest version of the Google Play Billing library (6.0.1)
    9. Implementations of the IFMXCameraService and IFMXTakenImageService platform services have been redone 
    10. The TTakePhotoFromLibraryAction and the TTakePhotoFromCameraAction have been extended leveraging  the changes above, with new OnDidFailTaking event,  new PickerPresentation property and more
    11. Added selection Point for position cursor in TMemo and TEdit.
    12. Added CaretPoint display for text-input controls for Android