Adobe Creative Cloud And Document Cloud User Interface Choices when developing extensions and plugins
Adobe Systems either merged with other companies to acquire most of its products or has been developing them for a significant period of time. As a result the interfaces and software interface vary considerably. However, Adobe has attempted to try and standardize across the Creative Cloud range of products with its CEP interface for user interface.
There are multiple methods for producing extensions and plugins for most of Adobe’s products, including various approaches for developing graphical user interfaces.
Let’s take a brief look at products that offer interfaces for Adobe Creative Cloud Extensions and Adobe Document Cloud Extensions.
Adobe Illustrator User Interfaces
For example, Adobe Illustrator requires HTML and JavaScript for its user interfaces. Adobe Acrobat supports native user interfaces on both Windows and Mac platforms, though it used its own user interface technology called ADM (Adobe Dialog Manager) until recent versions. Adobe Illustrator also used the same technology, but it has been phased out in the last few versions of the products (although surprisingly still available in its developer interfaces and documentation with the interface name “sweatpea”) but is basically defunct and should not be used.
Adobe Acrobat available User Interfaces
For Adobe Acrobat there is an example plug-in using wxWidgets (https://www.wxwidgets.org/) an open source library which can be used across both Windows and Mac platforms but unfortunately this just means having to educate developers on yet another user interface technology. Mapsoft used it in its Engage Designer product as we needed a user interface that would be available across Windows and Mac platforms. Most of our work for Adobe Acrobat is for the Windows platform so for decades we have used the Microsoft MFC C++ classes which is a thin C++ layer over the top of the standard Windows interface. MFC is fast with very little baggage and is ideal for the types of interface that are required in plug-ins.
Adobe InDesign choice of User Interface
Adobe InDesign probably provides most options in supporting its own resource format that is compatible across Mac and Windows platforms and also HTML5/JavaScript in the form of CEP and more recently UXP.
Adobe Creative Cloud
Adobe’s Creative Cloud products can also receive supply as hybrid extensions and plug-ins, incorporating HTML, JavaScript, and native plug-ins within the same package and product. The presence of various technologies has not been simplified by Adobe’s history of introducing technologies only to phase them out later. For instance, most Creative Suite products (the precursor to the Creative Cloud) once supported user interfaces based on Flash before Adobe discontinued this approach in favor of HTML 5, CSS 3, and JavaScript, known as the Adobe Common Extensibility Platform (CEP). Adobe Acrobat, belonging to both the Document Cloud and the Creative Cloud, follows a distinct development path by not adopting this technology.
Location of Adobe's current software developer kits and CEP
Adobes SDKs (software development kits) are available from various links, but the most up-to-date set are available from Adobe.io for the latest iterations of Adobe products.
Beyond the GUI
Of course is a lot more to a plug-in or extension product then the user interface but generally this is the main element aiding or constraining cross-platform software development and of course the main part of a product that the user interacts with.
CEP
CEP in conjunction with ExtendScript to provide the application specific functionality is advertised as a platform for those not wanting to use C++. For many products this is certainly the case that there are definitely constraints where a decision has to made if enough of the developer interface has been exposed to produce the product that is required. This will vary from product to product.
C++ SDK Interfaces
For interaction, speed, multi-threading and extensive task handling using the software developer kits natively is often the only option (i.e. using the C++ interface). An example of this is our integration of SMART boards and Adobe Illustrator where the CEP technology just wasn’t sufficient. However CEP does have support for Node.js as this will bring in an extensive number of JavaScript libraries. However most of these applications are client based and so this is generally only useful in a client server type environment and the plug-in interfaces are nearly all C++ for which there is also a very extensive (probably more extensive) set of libraries that can be used.
UXP
The new entrant on the block. Adobe UXP is the modern JavaScript Framework that claims to be able to replace all of the other interfaces and the connections between core code (c++, ExtendScript) and the existing user interfaces discussed above. It is gradually being introduced to various applications. Unfortunately the first was Adobe XD which is about to be discontinued after the failed Adobe/Figma merger. Adobe concentrated on getting UXP matured for Adobe Photoshop plugin development and has more recently been introduced to the latest version of Adobe InDesign. Apart from Spectrum, Adobes native interface, UXP is able to support a number of HTML/JavaScript user interface libraries such as React and Vue. React JS is actually used by Adobe in a number of its developments using UXP. Unlike CEP, UXP is not a fully fledged web browser and can not be guaranteed to be compatible with all JavaScript libraries.
Contact info:
Michael Peters
mpeters@mapsoft.com
https://www.linkedin.com/in/mpmapsoft/
https://www.mapsoft.com
Associated Links:
- Adobe InDesign Software Development
- Adobe Photoshop Software Development
- UXP Extensions in Adobe InDesign: Enhancing Your Workflow with Code Example
- Illustrator Software Developer Kit SDK
- Combination Of Illustrator Extension Technologies
- ExtendScript
- Common Extensibility Platform (CEP)
- PDF Related Software Development