https://mjtsai.com/blog/2022/01/12/catching-native-apps/ Wednesday, January 12, 2022 [Tweets] [Favorites] Catching Native Apps Daniel Jalkut, in 2010: If you imagine a world where the sum of all things you can do with a computer is exactly matched, and locked down for all time with what you can do inside a browser, then the arguments for the web are persuasive. Why write for a specific platform when you can write for all platforms at once and gain the other advantages as well? The error is in disregarding the many unmatchable attractions of "the desktop." [...] But if I want to write a truly great app, it has to be a desktop app. And this will be true forever, or until there is no difference between the web and the desktop. Daniel Jalkut: Apple fixed the hardware problems with the Mac, now they must address software. We need M1-level software platform differentiation, and three competing app frameworks won't create it. Are they even aware how tentative their footing in consumer software is? They're not showing it. 12 years ago, I wrote "Can't Catch Me", wherein I proclaimed with confidence that the Mac would continue to outpace web platforms. That cockiness presupposed a much greater level of commitment from Apple than we've seen. Since then, Apple has slowed the pace of improvements to the frameworks for writing native Mac apps. It added technical (sandboxing, TCC, SIP, kernel extension restrictions) and policy (App Review) roadblocks that make it harder to develop apps that go beyond what can be done with Web technologies. Apple switched to an annual release cycle, increasing the proportion of time native developers spend testing and working around bugs. For the most part, that doesn't affect Electron apps, which are insulated from the OS with a layer of middleware, or apps that don't take advantage of OS-specific features. And it doesn't affect apps that run purely in the browser. So it has the effect of holding back the types of apps that push the envelope, that increase the distance between Web and desktop. Meanwhile, Apple is no longer leading by example, at least not in a good way, as its recent Mac apps have been Catalyst ports or weird hybrids that feel more Web or iOS than Mac. Former role model apps were rewritten for iOS, then brought back to the Mac, losing features and desktop-oriented design in the process. Automation has been a major platform-specific advantage. We once hoped for a successor to AppleScript; now we are grateful that it is at least still on life support. Automator never got much follow-through. Shortcuts for Mac is finally here but is currently rough and lacking some capabilities of the iOS version. The Mac's Unix layer has been withering, and built-in scripting languages are being removed. Developer tools used to come free on a CD with the OS. Now, you need a paid account to ship an app that isn't accompanied by a malware warning, and even then you have to upload each build to Apple first. Web app developers don't need permission to deploy their code. Apple stopped maintaining an online directory of Mac apps, so it's harder for customers to find what's available if it's not in the Mac App Store. The more distance there is between your app and what a Web app could do, the less likely it is to be allowed in the store. (Even for apps in the store, browsing is more difficult than with the old directory.) Apple also stopped offering affiliate commissions on apps, reducing the incentives for third-party coverage that would help people find a Mac-only app. Web apps, however, get to share marketing across multiple platforms, and they don't have to pay Apple 30%. In short, it feels like the distance has closed somewhat since 2010. This is partially because Web technologies got better, but also because of inattention and poor incentives from Apple. Daniel Jalkut: To head off any critics who might ask, "OK, smartass, what would YOU do to improve the Mac as a platform?" I say: I don't know, I look to historic innovators like Apple for that. I would probably start by picking three intrinsic advantages of web apps and strategize against them. Ilja A. Iwas: Never gonna happen, but: + provide means for updating/crash catching of non-MAS apps + provide means for paying/licensing of non-MAS apps + make cross-device document storage suitable for shoebox-style apps the default (indexing, full text search, conflict handling just work) [...] Isn't it ironic how the Mac App Store promised a quick, secure, and easy way for developers to get their apps discovered, installed, and paid for - and it turned out to be the exact opposite with its sandboxing requirements, malware infestation, and bogus review process. Jesse Grosjean: Uggh electron. I'm now getting bug reports for my Mac app that the keybindings don't work like windows. Craig Hockenberry: This past summer we narrowly avoided a major user interface regression on Apple devices. The story ended well, but I think it's important to look back on the situation and ask a simple question: Why did this happen in the first place? My answer is something I call "consistency sin". Understanding the cause lets us avoid similar situations in the future. Previously: * Music.app and TV.app Use JET in macOS 12.2 Beta * The Persistent Gravity of Cross Platform * Apple Execs on the Mac App Store * 10th Anniversary of the Mac App Store * Sketch on Native Mac Apps * Catalyst and Cohesion * Desktop Apps Post-Catalyst * Scripting Languages to Be Removed * Mojave's rsync From the Days of Tiger * Is There Hope for the Mac App Store? * Electron and the Decline of Native Apps * Apple Removes Apps From Their Affiliate Program * An Aging Collection of Unix Tools Catalyst (Marzipan) Cocoa Electron Mac Mac App Store macOS 12 Monterey Notarization Sandboxing SwiftUI Transparency Consent and Control (TCC) Web 13 Comments 13 Comments someone January 12, 2022 5:37 PM Don't foget to blame Swift: the new language that was supposed to be available on many platforms (contrary to Objective-C) and which ended up being exclusively used on Apple platforms (like Objective-C). Michael Tsai January 12, 2022 7:41 PM @someone Swift is an interesting case because it's better than Objective-C in so many ways. But is it as much better as today's JavaScript (and associated ecosystem) is compared with JavaScript in 2010? I don't think so. Certainly not prior to Swift Concurrency, which just landed, while JavaScript had async/await in 2017. Sam Rowlands January 12, 2022 8:35 PM IMHO the problem is simple. Reducing investment in a (pretty stable) product helps to improve ROI, which helps to increase profitability, which helps to keep share prices up, which helps the CEO claim multi-million dollar bonuses. Plume January 13, 2022 3:40 AM "But if I want to write a truly great app, it has to be a desktop app. And this will be true forever, or until there is no difference between the web and the desktop." This has always been wrong, because it completely discounts the advantages of the web. Cross-platform compatibility makes an app greater. No installation makes an app better. Simple collaboration and sharing with anyone, including people on weird devices like Chromebooks, makes an app greater. Automatic updating makes an app greater. Being able to open the app I normally use on my desktop on my phone in a pinch makes an app greater. Not locking me into using a Mac makes an app greater. The advantages native apps have over web apps pale in comparison to the advantages web apps have over native apps. And while web apps can - and do - get better in the areas they are currently worse than native apps, that same thing doesn't apply to native apps. I'll never be able to just open any native app I use on my phone. As of right now, if you want to create a truly great app, it has to be a web app. And this will *actually* be true forever. Soren January 13, 2022 5:15 AM This is a tricky and important subject. If we concede for a moment that Web apps are not only good enough but better in many ways, then the Mac is kind of moot, because you might as well just use a Chromebook. Therefore, we must instead look at what a Mac could hypothetically do better than the Web. Michael makes some great points. I would add that what Apple has lost, compared to the early 2000s, their drive to bundle great apps. A Mac used to come with arguments in favor right on the box: iLife, iWork, and third-party bundled apps such as OmniGraffle. Many of those apps still exist, of course, but what's missing is the same kind of "you'll buy a Mac because these great apps ship right with it -- and plenty more like them exist for the platform" sales pitch. Alexander Griekspoor January 13, 2022 6:28 AM > Daniel Jalkut: To head off any critics who might ask, "OK, smartass, what would YOU do to improve the Mac as a platform?" I say: I don't know, I look to historic innovators like Apple for that. Unfortunately that's also the only option, which didn't use to be the case. I've said many times already, this is what you get if you force people to play in a Sandbox. Doesn't exactly allow you to think outside the box, now does it? Kristoffer January 13, 2022 8:34 AM I honestly don't see why this is tricky or important. Most people don't care about the details devoted developers love to sweat over. But, at the same time people care about nice things, so as long as Apple keeps building the best Chromebooks money can buy, they'll be able to sell. Michael Tsai January 13, 2022 8:58 AM @Plume Yes, I quoted Joe making a similar point in the web3 post. Installation and updating are disadvantages (in some ways), though Apple could have done more to make them better. Collaboration and sharing are huge for certain kinds of apps, though there's no reason in principle that we couldn't have native clients for Web APIs. @Soren @Kristoffer I think this is basically right and was going to mention it in the post yesterday but ran out of time. It used to be that Apple had different, and often slower and/or more expensive, hardware and was missing native apps that Windows had, so it needed good native apps to help sell the platform. Now, with so much moved to the Web, those apps run anywhere, so the OS matters much less (to most people). Apple likes to think of Safari as a differentiator, but despite being bundled it's not even the leading browser (by marketshare) on macOS. The point is that software, in general, is no longer as much of a selling point for Apple hardware. Good design, build quality, performance, and a battery life are more important differentiators for many people. @Alexander Yes, restricting innovation from third parties means that it has to come from Apple or other platforms first. Soren January 13, 2022 10:12 AM @ Michael: >It used to be that Apple had different, and often slower and/or more expensive, hardware and was missing native apps that Windows had, so it needed good native apps to help sell the platform. Now, with so much moved to the Web, those apps run anywhere, so the OS matters much less (to most people). Apple likes to think of Safari as a differentiator, but despite being bundled it's not even the leading browser (by marketshare) on macOS. The point is that software, in general, is no longer as much of a selling point for Apple hardware. Good design, build quality, performance, and a battery life are more important differentiators for many people. Yes. And I'll agree with Daniel that they've done a lot to improve the hardware situation. But, on the "platform as a whole" side, I worry that education is a canary in the coalmine. Kids grow up with Chromebooks being good enough, because schools want to save money and really just need a very simple platform to run basic (and heavily restricted and centrally managed) software. Maybe the solution there is to push the envelope on what education software can be, but Apple isn't doing that either. Then, kids get their office job, and the requirements aren't that much different: a whole lot of enterprise software is really just CRUD stuff. Having the local computer do computation is neither desirable (because you want consistent state) nor necessary (because computation typically isn't heavy, nor is required bandwidth). So you give workers dumb terminals. Some of these use cases may be lost for good. But others aren't. Listening to ATP the other week (unfortunately, I can't quite remember which episode this was) about how creating a photo book for the family used to be easy and no longer is was frustrating. This is exactly the kind of use case where Apple could be great, and has instead decided (more or less explicitly) to give up. Make the iMac a fantastic living room computer not just in hardware, but also software, and the desire will come for people to have that same kind of experience at work (and maybe even at school). And, yep, my preferred browser is Safari, for a number of reasons, but it definitely isn't much of a differentiator. Nobody goes, "I should switch to the Mac because Safari is great". @ Alexander: >Unfortunately that's also the only option, which didn't use to be the case. I've said many times already, this is what you get if you force people to play in a Sandbox. Doesn't exactly allow you to think outside the box, now does it? Yep, and I think Apple underestimates this problem. Or they're painfully aware, but don't know how to square that circle. ObjC4Life January 13, 2022 10:57 AM Apple splitting their resources to support AppKit, SwiftUI, and Catalyst probably doesn't help. For me this makes me not want to make Mac apps anymore. Who wants to spend a year or more working on a quality app when you don't know if the technology you choose will be deprecated out from underneath you? Ironically SwiftUI and Catalyst were created to convince more developers to come to the Mac. I don't have any numbers but am interested in knowing if they have succeeded in this goal? Is Mac app development up or down since these new frameworks were introduced? Old Unix Geek January 13, 2022 12:04 PM The cost of not installing software includes * less privacy * doesn't work whenever there's no internet * goes down whenever the server or the intermediate route goes down * disappears if the company goes bankrupt / kicks you off * need to continually pay for a subscription And all that to save what? Dragging and dropping an application? Ownership has distinct advantages: you buy it, then you have it. If you need it years later, you can still use it. Alexandre Dieulot January 13, 2022 3:08 PM Federighi enthusiastically hinted at this year's WWDC that AppleScript is probably going away in a few years. 1:25:59 "The Mac has a long, deep history of automation, with command line, shell scripts, AppleScript and Automator." -- https://youtu.be/ 0TD96VTf0Xs?t=5159 1:27:20 "Shortcuts is the future of automation on Mac and this is just the start of a multi-year transition. Automator will continue to be supported." -- https://youtu.be/0TD96VTf0Xs?t=5240 See the omission? Adam Maxwell January 13, 2022 5:35 PM It's weird to realize that there are fans of web applications here. I guess if you started using a Mac in this iOSified/webified era of inconsistent user interfaces where any UI element might be a button or editable field, it makes sense. This goes along with Soren's "good enough" point and what kids have grown up with, but it's anathema to those of us who grew up with Mac OS 7/8/9/X and wrote free Cocoa applications for users who would have a fit if button placement was 2 points off per the Aqua HIG. People who grow up using MS Teams or experiencing Apple Mail/Photos data corruption and loss issues aren't going to understand what a good experience is like. OmniGraffle, OmniOutliner, DataTank, DataGraph, Igor Pro, BibDesk, TIFFany3, iPhoto, TextMate, TextWrangler, TeXShop...all great applications I've used over the years (disclaimer: I wrote parts of BibDesk, back in the day). I'm forced to switch between a Mac and Windows at work, and Emacs keybindings, menus vs. weird scrolling toolbars, Spotlight, and Quick Look are killer features that I miss on Windows. I'm with Old Unix Geek on this as far as data ownership and network problems. The fastest broadband I can get is 5 Mbps, and I know people who are lucky to get 512 kbit/s, when it works. Web applications and cloud syncing/storing are basically unusable, unless you have a higher tolerance for UI latency and data corruption than I do. Stay up-to-date by subscribing to the Comments RSS Feed for this post. Leave a Comment [ ] Name [ ] E-mail (will not be published) [ ] Web site [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [ ] [Submit Comment] - - Blog Archives Tag Cloud Top Posts @mjtsai Recently Updated RSS / Comments Apple News Trackback [ ] [Search] Support this site via Patreon. Try my Mac apps: DropDMGDropDMGDropDMG EagleFilerEagleFilerEagleFiler SpamSieveSpamSieveSpamSieve ToothFairyToothFairyToothFairy Copyright (c) 2000-2022 Michael Tsai.