Over time, I've been building a ToolsAPI library that exposes functionality to making writing RAD Studio plug-ins even easier, since my first plug-in, the Productivity Experts, which I developed over 15 years ago (for those of you unaware: a few months before I joined Borland, the pre-cursor to Embarcadero).
The ToolsAPI library, which I call the PluginCommonRTL, is heavily used by a group of plug-ins I've developed.
These plug-ins are:
In this image, you can see the following:
Android Log Viewer: Notice that the log viewer automatically docks into the IDE (when the IDE is in docked layout). The source for a similar demo is on my Github repo.
In 2017, with the release of Delphi 10.2 Tokyo, Embarcadero introduced a specialized implementation of the Observer pattern into the System.Classes unit. While it has been in the wild for 9 years, it remains a "hidden" architecture for many, primarily because it serves as the invisible engine behind LiveBindings. Other than live bindings, you can also use the Observer pattern as a way to update component settings to the Windows registry, an .ini file, or persist it elsewhere.
System.Classes