I've been following progress and discussions around new design tools for a while now (especially Adobe XD). I'm excited to see so much interest in creating better design tools. But they're all missing the mark for me.
Just to give you a little background to where I'm coming from, I do UI & UX design for games. Previously I was working on web and mobile apps. I also spent quite some time with VR UI.
To cut to the chase, here are a few gripes I have with the current direction of design tools.
UI is inherently stateful, artboards suck at that
If you're building a more complex application with intricate interactions, the artboard approach is very inconvenient. I don't want to duplicate an entire design to simply show a hover state, for example.
This is where Layer comps in Photoshop excel. I can show however many states I need without having to duplicate layers. It's clunky and could be improved a lot, but I find this to be the best way to design UI components. Just being able to switch to a state without having to move around the document can in a way simulate interactions (more on that later).
Screen to screen prototyping only works for simple mobile apps and web pages
UI design (and these days web design as well with single-page web apps) is more about interactions rather than page-to-page transitions.
This is why I don't believe the Adobe XD approach is the way forward. It's simply too limited, and this won't be solved by adding more interaction types and more animation presets.
Typically the stuff that you actually want to prototype are the more complex interactions. And this requires something more powerful than simply drawing lines between entire pages.
In addition, this type of prototyping is almost entirely mobile focused. There's still plenty of web and desktop design to be done, and hover effects are an important aspect of that.
Animations should be better integrated to the design process
This is something that no design tool has managed to properly capture yet (although InVision Studio shows promise). Being able to easily add animations and see the result while you're designing is I think an extremely important aspect of UI design and it should be integrated into the process better, just like changing the color of a layer.
Simply having fade-in and fade-out presets on whole screens is not enough. We need more control over animations. A full on timeline editor might be overkill, but something that still gives me the power to animate individual parts of the screen from one state to another, like in the below example, makes a whole lot of sense in my mind (imagine the states on the side being something akin to Layer comps)
A simplified timeline implementation that lets you exactly define how elements transitions from one state to another might not be too bad (not saying that's the best solution).
Also seeing the result without having to do an 'export' or press the Preview button would go a long way to make animating UI much better.
Separating all raster work from a UI tool isn't perfect, at least for me
Here's perhaps the main reason why I still use Photoshop. In the designs I usually end up working on, I have to do a lot of mixed raster and vector work. I don't want to have to change program to desaturate a thumbnail or darken some part of an image, or using perspective distortion on a layer. This is why I see much promise in Affinity Designer's approach. It lets you switch to a raster persona that has those tools that you can quickly switch to, and still have all your layers without completely changing context.
It's a must. As a tools developer you will never be able to cover every users' use case. And you shouldn't have to. Let them do it themselves. Having a nice API is always a plus too.
The perfect design tool
There is likely never going to be a perfect design tool. I also understand the point of view that it doesn't make sense to cram every possible tool into one software package. But some middle ground can be found I think.
I end up making a lot of mockups of how a given design looks in different states. So to me it makes a lot of sense to have a design tool that is based more on states than whole full pages. I think artboards still play an important role, but that shouldn't be the full story.
Using states it's then also much easier to implement more powerful animation and prototyping tools, like the example above.
TLDR: I think we need states in UI design tools. Layer comps were a good thing, just need to make them work nicer and use them for for animation and prototyping.
Also sorry for the clickbaity title. :)