A photo of a book with a plain cover that says its title and nothing else. The title is MY SECRET PLAN TO RULE THE WORLD.

Shifting Plans

In September last year, I wrote about how I had created a plugin for Adobe XD and I shared my thinking at the time. In particular, I wasn’t interested in developing more plugins for XD. I was more interested in developing plugins for Adobe Illustrator or maybe Photoshop.

In October, Adobe had their annual Adobe Max conference, where they made a number of announcements, including Adobe Illustrator for the iPad. The announcement of most interest to me was that Adobe plugin developers can now use Adobe’s new, modern way of developing plugins—named UXP—to develop plugins for Adobe Photoshop.

I was quite enthusiastic about that, because Photoshop is a widely-used app, and there’s already an Adobe-managed marketplace (Adobe Exchange) where developers can sell plugins for it. (That is not the case for Adobe XD.) Moreover, users can create and edit vector graphics with Photoshop. I don’t know when UXP will come to Illustrator.

I dove in and started learning how to develop Photoshop plugins with UXP. The developer experience is quite nice, or at least it was at first…

I soon learned that if you want to make a Photoshop UXP plugin that does anything with graphics / images, then you are in for a world of pain. That’s because the Photoshop UXP application programming interfaces (APIs) for doing stuff with graphics are undocumented and crummy. If you want to find out how to do something with graphics, you have to use a third-party tool (!) to eavesdrop on internal Photoshop messages as you do that thing in Photoshop. Then to do that thing with your plugin, you basically have to play that message to Photoshop’s internal messaging system at the correct time. I gather that friendlier graphics APIs (i.e. more like those already in Adobe XD) will be coming to Photoshop UXP developers in the future. I’m not holding my breath though: Adobe Photoshop can do a zillion things with graphics, and creating an API to hook into all those things will take a long time.

I get the feeling that the people developing the Photoshop UXP APIs were probably not feeling like they were ready at the time of Adobe Max, but the Adobe marketing people said they were going to announce UXP for Photoshop anyway. As a developer, that’s a familiar dynamic, so I can understand and I have no hard feelings.

However, I decided not to waste my time using the current APIs to develop UXP plugins for Photoshop. I have better things to do than torture myself writing code that will all have to be replaced in the near future (if I want it to be maintainable).

That decision left me in an uncomfortable position. What to do for now?

I looked at several options, and my current thinking is to develop a web app that does many of the same things that my plugins would do (or maybe will do in the future). Developing a modern web app is a lot more complicated than developing a plugin, and it’s not the sort of thing that a single person can do easily, but I’ve found some platforms and tools that will do a lot of the grunt work for me, so I can focus on my core code. That’s going well, but I can’t predict a launch date, at least not yet.

A friendly human.