Tuesday, October 27, 2020

Sketch on Native Mac Apps

Sketch (Hacker News):

Native apps bring so many benefits — from personalization and performance to familiarity and flexibility. And while we’re always working hard to make Cloud an amazing space to collaborate, we still believe the Mac is the perfect place to let your ideas and imagination flourish.


This is something we pride ourselves on — over the years we’ve taken design cues from Apple, working hard to make your experience feel consistent and natural whenever you switch from our Mac app to apps like Pages or Keynote. We support UI changes, such as Dark Mode, as they launch. And right now we’re putting the finishing touches to a major UI update so that our Mac app will still look perfectly at home when macOS Big Sur releases later this Fall.

I love native apps, Sketch is my design app of choice, and the retro design of the blog post makes feel warm and fuzzy. But something about this worries me. Is it convincing for someone who isn’t already sold on native apps? Or who is choosing based on other criteria?

Kevin Kwok (via Hacker News):

The core insight of Figma is that design is larger than just designers. Design is all of the conversations between designers and PMs about what to build. It is the mocks and prototypes and the feedback on them. It is the handoff of specs and assets to engineers and how easy it is for them to implement them. Building for this entire process doesn’t take away the importance of designers—it gives them a seat at the table for the core decisions a company makes.


Designs in Figma are not just stored in the cloud; they are edited in the cloud, too. This means that Figma users are always working on the same design. With Dropbox, this isn’t true. The files may be stored in the cloud, but the editing happens locally—imagine the difference between sharing Word files in Dropbox vs. editing in Google Docs.


When many creative tools companies talk about the cloud, they seem to view it as an amorphous place that they store files. But the fundamental user experience of creating in their products is done via a standalone app on the desktop. Figma is browser-first, which was made possible (and more importantly performant) by their understanding and usage of new technologies like WebGL, Operational Transforms, and CRDTs.


Update (2020-11-19): Marc Edwards:

Here’s some extremely non-scientific tests using popular design tools, where I drew a bunch of boxes with strokes and rotated them.


Can a native Mac code editor really be that much better?

Find out.

Steve Troughton-Smith:

Are you a real Mac developer anymore if you don’t have a screed on your marketing pages about how Mac-like and native your apps are? Is that something we should all be doing now? 😂

Dan Grover:

Native Mac app developers have become kinda like the specialty/vegan/organic brands at supermarket. They were like that before Apple’s comeback in 00’s....but it’s funny they still are.

David Barnard:

Whether or not those sites are about convincing people native apps are better, they do work to reinforce some people’s existing belief that they are. I tried Figma and don’t like it. Non-native aspects of Slack bug me. That page reinforces my preference and loyalty to Sketch.

Curtis Herbert:

🔥 take: maybe you’d be able to spend less time convincing people “native” mattered if a web app wasn’t out-classing you on performance.

Kyle Howells:

Sketch’s big performance problems come from one of its previously biggest selling points.

It renders using CoreGraphics (which renders on the CPU). So its results are native & exactly what the end result will look like on macOS.

Randy Luecke:

The web has only been getting faster and the Mac has only been getting worse.

There will always be some native loyalist, but most of your users don’t care anymore. The tool you provide is more important than how well it blends in on a decaying platform.

Imagine if Apple had spent the last decade the same way as the first decade of Mac OS X: making powerful frameworks to give native Mac apps more advantages Instead, it put most of its attention on iOS, ran the Mac App Store in such a way that encouraged Sketch—which should have been a crown jewel—to leave, introduced sandboxing, bugs, and security/privacy friction that made native apps more difficult to develop and support. And now it is flooding the Mac App Store with unmodified iOS apps.

Matt Birchler:

Sketch is great, and if it were up to me I’d be using it at work, but despite its “Mac-ass Mac app” bonafides, Sketch being Mac-only means it was not possible to be used in an environment where people would be using Windows as well. We’re a Figma company now, and I’m largely happy with it, but I so miss things like local files and the performance benefits Sketch brought with it.

Ilja A. Iwas:

Maybe the discussion is not only about native vs. web technologies, but also about $40M vs. $130M funding?

Roben Kleene:

For a decade, from 2000–2010, native Mac apps beat web apps without even breaking a sweat.

What’s changed since then? Apple stopped investing in AppKit. The framework that had enabled an unparalleled period of innovation on the desktop culminating in Sketch in 2010.

No further explanation is necessary to explain what’s happening with Figma vs. Sketch.

Extrapolating a hypothesis about the inherent merits of the web vs. native is a red herring when the web has had a decade to catch up with native desktop apps.

Dominik Wagner:

Too few users care about this anymore, and Apple actively destroys the boundary by making native less of an edge as it becomes unhappy, slow and less consistent for years.

Core Intuition:

They discuss the debate sparked by Sketch about native desktop apps vs. web apps, and Daniel concedes some of the advantages of web development.

John Gruber:

Sketch hits all the key marks about what best defines a great, truly native Mac app, particularly deep Mac tools for professional work. Customization that allows you, the user, to shape the tool into something personal, that fits your needs and idiosyncrasies. Familiarity — the je ne sais quoi of doing things, large and small, the Macintosh way — that makes new (or just new to you) Mac apps easy to get started with and intuitive to explore. And, well, just being a beautiful work of art unto itself.

Nick Heer:

The hardware that is being announced at tomorrow’s big Apple event is certainly exciting, but third-party apps are why I continue my investment in the Mac ecosystem. This piece speaks to my deep appreciation for really great Mac apps — from Sketch to Nova; NetNewsWire to MarsEdit; Keyboard Maestro to Things. I live in apps like these, and they are why I use a Mac.

Ben Thompson (Hacker News):

The fly in Sketch’s celebratory ointment is that phrase “even macOS itself has evolved”; the truth is that most of the macOS changes over Sketch’s lifetime — which started with Snow Leopard, regarded by many (including yours truly) as the best version of OS X — have been at best cosmetic, at worst clumsy attempts to protect novice users that often got in the way of power users.

Meanwhile, it is the cloud that is the real problem facing Sketch: Figma, which is built from the ground-up as a collaborative web app, is taking the design world by storm, because rock-solid collaboration with good enough web apps is more important for teams than tacked-on collaboration with native software built for the platform.

Sketch, to be sure, bears the most responsibility for its struggles; frankly, that native app piece reads like a refusal to face its fate. Apple, though, shares a lot of the blame: imagine if instead of effectively forcing Sketch out of the App Store with its zealous approach to security, Apple had evolved AppKit, macOS’s framework for building applications, to provide built-in support for collaboration and live-editing.

K.Q. Dreger:

Second, it’s not about “native” and whether the app is pure Swift/Objective-C. Who cares? It’s about the feel of the thing. Can I rearrange sidebar items? Do disclosure triangles reflect the visibility of the disclosable content? Will common keyboard shortcuts work as expected? Is there consideration given to the software’s usage of my memory, CPU, and energy?

Or, simply: is it tuned for the Mac?

11 Comments RSS · Twitter

You are mixing two entirely different things here, data sharing and frontend. The latter suggests that native apps can‘t do live collaboration, even across platforms. Which is utter nonsense, best demonstrated by iWork and iCloud (and their web and Windows clients).

I think there is generally no real disagreement that native frontends provide a better user experience. There is primarily a disagreement whether native is worth the effort (from various aspects, not just business, eg on macOS BS like on Windows, who cares about UI consistency anymore).

As an individual, I don't like cloud based software -- if the company fails, or the internet goes down, I'm stuck. And that's worse than useless, since I would have created a different workflow with different software. I also happen to care about privacy, something the internet is rather bad at.

But as a corporation, it makes my life easier: a license per active employee, no software installation or incompatibilities, collaboration between employees, and someone else worries about backups. If an employee loses a laptop, no data is lost.

And as a developer, I can also see many advantages: One app runs on many platforms. No piracy. No worry about Apple breaking APIs. Recurring revenue. And with WASM, software can run at native speeds.

At this point, it seems to me that market forces are arrayed such that fewer and fewer people will create new native software.

Just a few years ago, every designer in my company used Sketch. I haven't seen anyone open it for at least a year now. It's fine to have a native client, but if you're making what is essentially a software development tool aimed at corporations, it has to be web-first. There are PMs on Windows, designers on Macs, and devs on Linux at our company who all need to be able to open things like screenflow diagrams. We need to be able to do things like embed designs in Confluence, or at least link to a live version that can be opened directly, not just upload a static file.

It doesn't matter if your app has dark mode support if the devs on Linux can't easily look at the newest versions of the designs, and maybe add a note or comment to a wireframe directly. It's just not fit for purpose.

I don't understand the negativity in the replies of that rjonesy thread at all. I get people who are all "love the Mac, but hate Apple", but, this seems to be the level of "oh, but I don't particularly like the Mac either".

Is it a mission statement? Maybe.* Is it a slightly defensive "we're doubling down on our choices"? Maybe. ¿Por Qué No Los Dos?

*) Seems to me the same Twitterati would've responded to Apple's Think Different campaign with "oh, you can't even get the grammar in two words right?" and "a-ha, but you're still a capitalist corporation! Not so different at all, then!!" Which, OK. Settle down.

(Oh, and yes, as Helge says, the idea that only web apps can collaboratively edit files is of course wrong. Not only is there no technical barrier to desktop apps using networking for collaborative editing; there are also plenty of examples of this happening.

If you want a non-Apple example, you can take modern versions of the MS Office apps: start writing in a desktop(!) app, hit the share button, enter a bunch of e-mail addresses, and others can join in. Internally, the way this works is that the app transparently moves the document to a SharePoint server, but you don't really have to care about that. You're still using an app on your desktop, your phone, the web, elsewhere.)

@Helge The point isn’t that a native app can’t do that, but rather that as constituted today it doesn’t. The two apps are not playing the same game.

@Michael but they do explicitly mention that collaborative editing is coming soon. See https://www.sketch.com/collab/

@Nigel Yes, I think they pre-announced in early 2019 when they took VC.

While it's true that native apps can support live collaboration, web apps currently have an advantage because JS libraries like AutoMerge and HyperMerge already exist. Native apps have to implement their own CRDTs.

As for the native argument itself, my attitude has had a bit of a progression. In a few short years I've gone from:

"Native apps are great", to

"I am becoming wary of native apps because they make it hard for me to to work with others", to

"Apple are slowly forfeiting the advantages of native UI with their design decisions", to

"Even if I wanted to make a native Mac app, there's no longer any clear path since AppKit is soft-deprecated and SwiftUI isn't fully-baked yet", to

"macOS feels like a dead-end to me from feature/stability/quality standpoints, so focusing on cross-platform/electron apps will help me switch to another platform"

That's pretty much been the last 5 years for me in a nutshell.

@Old Unix Geek: Having used cloud software at various corporations, this is indeed the promise we're given, but it never matches reality. I'm not sure why you list all the downsides only for personal use, and all the upsides only for corporate use.

There simply aren't cloud apps for every type of company data, so you need backups and encryption on all company computers, anyway. And the downsides you list -- "if the company fails, or the internet goes down, I'm stuck" -- happen to everyone. When a cloud service goes down for your whole company, you're either all twiddling your thumbs (and hemorrhaging money) until it's back, or, hopefully, scrambling to figure out how to get all your data out of a dying cloud service.

Worst of all, outages always hit right when you're up against a deadline. Murphy's Law and all that.

BTW, what exactly does "someone else worries about backups" mean? Have you ever called up your cloud services company and asked when they last verified their backups -- or asked them (hah!) to restore a backup for you? I regularly see news stories about companies that lost data and discovered their backup system didn't actually work.

In a few short years I’ve gone from:

“Native apps are great”, to

“I am becoming wary of native apps because they make it hard for me to to work with others”, to

“Apple are slowly forfeiting the advantages of native UI with their design decisions”, to

“Even if I wanted to make a native Mac app, there’s no longer any clear path since AppKit is soft-deprecated and SwiftUI isn’t fully-baked yet”, to

“macOS feels like a dead-end to me from feature/stability/quality standpoints, so focusing on cross-platform/electron apps will help me switch to another platform”

That’s pretty much been the last 5 years for me in a nutshell.

Yup. One of my biggest worries is that Craig is missing this (or has noticed, but isn’t sure how to turn that tide).

This is quite different from 2000s’ Apple, which did apps like Final Cut Pro and iLife. Even then, it wasn’t that big of a part of their revenue. Instead, it was a compelling argument to get people to move to the platform, or stay on it.

Now, if even Apple doesn’t do as much with native apps, why should third parties?

They run risk of failing the same dogfooding test Microsoft hasn’t been good at in a long time either.

Leave a Comment