Sketch 3

While writing my previous post it struck me that life is too short and $80 is too little to get worked up about, so I bought Sketch 3. As usual, I broke out my texture map file from iDraw, exported as SVG, and tried it out. Importing was good but flawed in exactly the same way as with Sketch 2 (and Affinity Designer, of which the less said the better). Having bought the new version, Sketch 3 has significant workflow advantages over its predecessor that are easily worth the price of admission. The core functionality hasn’t been improved much, but it’s wrapped in a more efficient user interface.

No Application is (or should be) an Island

The above file was exported as SVG and imported into Sketch 3. Everything looks perfect except for the fonts (which are easily fixed). But a lot of the effects have been rendered using bitmaps.
The above file was exported as SVG and imported into Sketch 3. Everything looks perfect except for the fonts (which are easily fixed). But a lot of the effects have been rendered using bitmaps.
Using Sketch 3's new shared styles, the results were quickly recreated and even improved upon.
Using Sketch 3’s new shared styles, the results were quickly recreated and even improved upon.
The new file was then exported from Sketch 3 as SVG and imported into iDraw and back into Sketch 3. In both cases the results are not good.
The new file was then exported from Sketch 3 as SVG and imported into iDraw and back into Sketch 3. In both cases the results are not good.

One of Sketch 2’s worst problems was that while it was just great at importing SVGs, you couldn’t get anything out of it except bitmaps. Among other things, for the first time this lets me give iDraw’s SVG import a proper workout. The good news is that iDraw is just as good at importing SVGs from Sketch 3 as Sketch 3 is at importing its own SVGs. The bad news is that Sketch 3 isn’t nearly as good at exporting stuff not supported by SVG as SVG (iDraw does a pretty great job of rendering effects that can’t be represented as SVG styles using judiciously generated bitmaps and SVG shapes on the way out — Sketch 3 just throws up its hands.)

So, the good news is you can now get your vector geometry out of Sketch 3. The bad news is that it does not do a good job of rendering the styles in a portable manner.

Symbols

Symbols in action. Four instances of the same symbol. Symbols can be independently rotated, but not resized, and they cannot be nested.
Symbols in action. Four instances of the same symbol. Symbols can be independently rotated, but not resized, and they cannot be nested.

Symbols are my number one reason for buying Sketch 3. They promise to make Sketch 3 into the Houdini of UI design tools. (Arguably, Illustrator and Photoshop already do all this, but bear with me.) The basic idea is you make something into a symbol, and then when you duplicate it the duplicates are all references to the original. Changing one, changes all. Symbols for the most part work very well, but there are some caveats. First of all, Sketch 3 doesn’t fully support the idea of a “transform” which in practice means that you can rotate a symbol without rotating every other instance but you cannot resize a symbol without resizing every instance. Next, you cannot nest symbols.

The way styles are implemented in Sketch 3 is a welcome surprise.
The way styles are implemented in Sketch 3 is a welcome surprise.

What I wasn’t expecting was how cleverly text and object styles have been implemented in Sketch 3. In fact, these styles are probably more generally useful across the board than Symbols. Combined with Symbols, it makes the lack of nesting much less painful. In both Sketch 2 and 3 the panel above consists of a rounded rectangle and four circles with styling applied, the difference with Sketch 3 is that one style is reused for all four circles, and another is used for the panel. This file was created by painstakingly copying styles around and maintaining them when a change was needed — all of this is now trivial to automate in Sketch 3.

User Interface Refinements

Sketch 3's interface is generally very refined and nearly modeless (thanks to the popout floating thingies it uses everywhere). Note the in-context gradient editor, automatically detected colors, and just how much freaking functionality is jammed into how small a space.
Sketch 3’s interface is generally very refined and nearly modeless (thanks to the popout floating thingies it uses everywhere). Note the in-context gradient editor, automatically detected colors, and just how much freaking functionality is jammed into how small a space.

Before finally paying my $80, I looked online for a proper review of Sketch 3, and found someone whose main complaint about Sketch 3 was that its UI looked dated because — rolls drums — it wasn’t dark like Adobe CS and Apple “Pro” apps. This is doubly funny because Apple is making the “dark UI” a system level feature in Yosemite, but in any event: really?

My main complaint with Sketch 3 after nearly a day of use is the interface. Sure the interface elements have been given a slight overhaul but the overall look is more or less the same. At this point (and after using Fonts by Bohemian Coding), I expected a lot more. Sketch is supposed to be a modern interface designing app so why should it lag behind other apps when it comes to the overall look?

From Sketch 3 — A Few Thoughts

This is why some people make fun of Mac users.

Most of the reviews of Sketch 3 are (rightly) pretty much gushing with praise. (Although many of them could equally be applied to Sketch 2, at least later versions.)

In any event, Sketch 3 has made a number of welcome enhancements, not the least of which (as of 3.1) is to make the file format a true binary (vs. an OSX style “bundle”) which makes for easer version control and DropBox (et al) syncing. As someone who uses Sketch in concert with Unity this last is a welcome change (since Sketch and Unity would step on each other constantly — Unity is prone to mucking around inside Sketch files’ directory structures, convincing Sketch 2 that changes have been made which really haven’t).

Booleans have been improved (they now behave like their product rather than a weird hybrid of their constituent pieces and their product, depending on Satan’s whims)

An absolute winner in the new Sketch is streamlined exporting. If you have something selected when you click the Export button you have the option of exporting the selection — a neat feature which will work better when Sketch 3 does a better job of calculating the bounding rectangle of the object in question. This doesn’t matter so much though because you can export anything instantly by dragging it from the sidebar into Finder (or wherever). You get exactly what you expect (and the bounds are correctly evaluated, so the code is in there somewhere guys!).

Bezier Strokes: Not Quite There Yet

Vectorizing strokes has improved (the self-intersections are no longer hollow, at least) but still needs work.
Vectorizing strokes has improved (the self-intersections are no longer hollow, at least) but still needs work.
Sketch 2 suffered from refresh problems (the pointy corner in the top-middle of the shape is still showing after I changed the corner-mode to rounded).
Sketch 2 suffered from refresh problems (the pointy corner in the top-middle of the shape is still showing after I changed the corner-mode to rounded).
Sketch 3 still lacks the ability to determine how acute an angle to render when a bezier is in corner mode.
Sketch 3 still lacks the ability to determine how acute an angle to render (the “miter limit”) when a bezier is in corner mode.

One of the claimed improvements in Sketch 3 is vectorizing strokes. It just so happens I ran into this problem in Sketch 2 the other day, so this excited me. Alas, it’s improved but not fully fixed yet. Still going to need to fix inside corners by hand. Similarly, Sketch 2 had redraw problems (usually caused by incorrectly calculating bounding rectangles) and these remain in Sketch 3 (with the same workaround — scroll the affected region out of sight and back again). Similarly, Sketch doesn’t center on the selection (or the mouse position) when zooming in and out which is a little disconcerting. One or the other would be nice. Finally, Sketch still doesn’t give you control over the mitering of bezier corners, instead cutting off miters arbitrarily and miscalculating the bounds of stroked shapes with gay abandon. (This is hardly a show stopper, if you’re trying to create a precise pointy bezier object, just use stroke inside.)

More Useful Enhancements

Sketch 3 adds noise fills, offering four different noise algorithms (a custom, rather attractive, algorithm, white, black, and color noise) — this turns out to be particularly useful in combination with new blur modes — in addition to its incredibly useful blur tools (I just realized that Sketch 3 (and 2) support motion and zoom blur (as well as “background” blur which imitates the kind of thing Apple loves to do these days with layered translucent interfaces — great stuff, although where’s radial blur?).

I should mention that I’m disappointed that the pattern fill feature hasn’t be extended to support symbols as fill patterns.

Summing Up

Sketch 3’s headline new features: “shared styles”, symbols, and improved export are great and work as advertised. Its UI is even more polished and streamlined than before. On the negative side, Sketch continues to have some minor issues with the way it handles bezier curves and screen refreshes.

Is Sketch 3 worth $80? Absolutely! Is it worth $80 if you already have Sketch 2? If the new styles and symbols features sound compelling to you, if you want Sketch to play nice with version control or Unity, or if you desperately need to export some SVG geometry from Sketch 2, then yes. Finally, I haven’t played with another new headline feature: scripting. You know who you are if you need this, and chances are if you need it than Sketch 3 is totally going to be worth it. (And chances are you’re a pro and $80 is peanuts for a professional tool.) Otherwise, Sketch 3 doesn’t offer much bottom line functionality that isn’t already in Sketch 2. It’s a fantastic program, but the improvements (thus far) are mainly in terms of workflow and productivity features that won’t do much for casual users.

Postscript: Resizing and Moving

The problem with instances having to be the same size turns out to be indicative of a larger and pervasive problem with resizing objects in Sketch — something I hope gets addressed in a free update. When you resize objects text and fills don’t get scaled in sync. Similarly, styles involving gradients don’t scale the gradients. This hugely reduces the usefulness of styles and instances, and also makes resizing anything with text a major pain in the ass.

Sketch has two serious bugs when it comes to moving bunches of stuff around. Smart guides in Sketch 2.0 simple didn’t work for multiple selections. Now they work — badly. The snapping is simply inaccurate and worse, the objects drift out of relative position (I’m not sure but this may be caused by progressive snapping — e.g. to pixel boundaries — aggregating over time rather than being applied to the original offsets).