> But Apple has a reason not to like this recycling of web technology. It wants its Mac App Store to be filled with apps that you can’t find anywhere else, not apps that are available on every platform.
And that's where I stopped reading. Apple doesn't give a toss if your app is cross platform. Frameworks that started back in the day like phonegap have matured into things like Electron, and the core problems are the same:
They run like crap. Animations are jerky, oftentimes the app simply "refreshes" when things go too far off the rails. This is a poor UX.
The apps are not able to adapt to newer devices without additional work. For MONTHS after the release of the X, looking at the Spotify app on it, the controls at the base of the screen were below the multitasking gesture indicator. If this app was built with AutoLayout as Apple encourages, this would've never been an issue.
I know, instantly, when an app I've downloaded is using web based cruft, I can catch it at a glance with the first tap, and the first slow interaction begrudgingly kicks off. Yep, it's a web-based one, and no, I will not be keeping it unless I have no choice to. Unless it's critical in some way, it's gone.
Apple outright banning Electron-powered crap is the best reason I've heard yet for buying my new iPhone.
I can’t think of a single non game iOS only app that makes enough revenue for Apple to care about. Most of the top grossing apps are games that wouldn’t be using a Javascript framework and are probably using a cross platform technology anyway.
If Apple wants to have exclusive content on their platform, their not going to worry about small time developers who can only write iOS apps, they are going to fund the development themselves - see Apple Arcade.
They care much more about the big name developers like Adobe and Microsoft bringing their apps to iPads - even if they don’t see one dime of revenue from the subscriptions to encourage people to buy top of the line high margin iPad Pros with all of the accessories.
Hey, you're totally right, I misread the article, conflated electron with phonegap (have never worked with electron and haven't touched iOS in years), thought apple was pushing out some cross platform mobile apps. Totally off-base comment I'm embarassed about and would love to remove.
I do maintain that the parent's poster takes joy in deliberately ignoring that apple obviously has incentives around building their ecosystem, but yeah, that was dumb.
> Apple doesn't give a toss if your app is cross platform
They seem to have some incentive to make it harder for you to switch platform. By restricting developers from using some of the common tools to build cross platform they are able to build an ecosystem that's harder to leave.
Not only doesn’t Apple stop people from using cross platform tools, Microsoft has said that they work closely with Apple on Xamarin and we know that Apple works with the game engine makers to make sure they support Metal.
I want to very lightly push back here, not to say you're wrong, but just to say that this particular argument is not persuasive to me.
Of course Apple is working with game engine makers to support Metal, because otherwise those engines wouldn't export to the Mac. Gaming is still a Windows-centric activity, and it's mostly because of cross-platform game engines that indie designers have started to say, "yeah, I'll support Mac/Linux as well."
As an OS maker, when your choice is between having an app not come to your platform, and having it come because you contributed to a cross-platform framework, you opt for the cross-platform framework. But I'm not sure that proves anything. Literally any intelligently run company would push for compatibility with a more dominant platform.
Even a company like Oracle will push for compatibility with dominant competing product offerings; at least until Oracle's offering gets big enough that the compatibility is no longer in their best interest.
Well, isn’t the Javascript and web ecosystem a greater platform than the Mac of all things?
Even with games for mobile platforms iOS is dominant once you consider where all of the paying customers and high end hardware is. What hand developer if mobile games is going to target the relatively small number of high end Android phones? The ASP of S droid phones is something like $250. Most Android phones out there are low end.
No, the web isn't greater for the class of apps that Apple is targeting with the App Store. Or at least, it's not so much of a better platform that devs in this specific category are going to decide to ship a webapp instead of charging for a native app.
A lot of this comes down to monetization. There are more Android devices out there than iOS devices, and more apps on Android. So is Android a better platform? No, the distinction is that iOS users buy apps, and Android users don't.
So if you're not trying to build an ad-supported, microtransaction-fueled experience, iOS is just a better platform to release on.
Similarly, the web is a very powerful distribution network for online apps, but there aren't many good ways to make money except via advertising, Patreon, and SaaS. The apps being sold on the Mac App Store mostly don't fit into those categories.
That means as a developer, if you want to build something that just works, that you just charge money for, that you don't need to host on some kind of remote server, or manage accounts for -- the web becomes a much less attractive platform.
The question is, once you decide to look at native, do you first look at Windows or Mac? I think that depends on what kind of app you're trying to build and who your target market is. For desktop games, 9/10 times you target Windows (which is why Apple cares about cross-platform game engines). For an app like Robomongo, I dunno. Maybe the economics become more interesting -- I'd be curious to see the revenue breakdowns for an app like that.
Interestingly enough, the lack of (well-designed) PWA features are one of the big reasons why the web is still not particularly attractive for certain classes of apps. (You can't store information offline in an accessible format, your webapp breaks whenever the browser cache is cleared, you can't make arbitrary cross-domain requests). I'm not a conspiracy theorist, and I don't see strong evidence that Apple is trying to kill the web. But it's not necessarily a crazy idea in the abstract, because I don't see the web as a dominant player in that space, and I don't see any economic incentive for Apple to care about making the web into a dominant player.
One of the biggest reasons Apple fans like myself remain Apple fans is precisely the ecosystem. I've no desire to leave it, and so your app allowing me to isn't a selling point.
Doesn't this confirm the parent's point? You like the ecosystem, so Apple makes sure it's the only one with such an ecosystem - part of which is making cross-platform apps more difficult.
Nothing Apple is doing prevents people from writing good native apps for any of the other platforms. They are just forcing developers to meet a miniscule quality cut off to be in the App Store.
The Apple "monopoly" is the biggest driver of progress in consumer computing.
Microsoft only sells adware. Google is spyware (and crapware). Linux tablets don't even exist.
Apple focuses on compatibility, user experience, performance, hardware, ease of use (yet still useful for power users). Sure it's been dropping the ball a bit in the past few years, but it's still lightyears ahead of any competitor.
It amazes me that Google's managed to maintain this sense of being the underdog with almost 80% share worldwide. Apple is far from a monopoly. Hilariously far, in fact.
Pure monopoly means single supplier, but companies having monopoly power where they have the ability to increasingly behave independently of competitive pressures is more common.
https://en.wikipedia.org/wiki/Lerner_index
Apple should be forced to stop these anticompetitive practices.
When your differentiation is in your ecosystem how is this action independent of competitive pressure? Their customers are end users and the App Store is one (and how they've run it) of their best selling points.
Your line of thought only works if the developers are the customer- they are not in Apple's case.
Your line of thought is the narrow "Chicago School" thinking Robert Bork in the US in the 90s where the sole focus is on the benefits to consumers and overall efficiency.
Just to clarify, you are saying Apple and Google are a co-monopoly because there is no third choice, or what? The link to Lerner index says it's pretty much impossible to actually calculate so I don't see where that's going.
An instance, but in no way covering the entire picture.
One of the reasons why Google Chrome enjoys its monopoly is because Apple does a terrible job with its browser Safari. Terrible. I mean it's a train-wreck! Since iOS 10 or probably little later they have done nothing but destroy how the web apis are supposed to function, abusing every single accessibility guideline into something that is at best a line of defense to promote their app store.
I hesitantly moved away from iPhone X to Android Pixel last month.
Or could it be that the reason Chrome “enjoys” a monopoly is because Apple doesn’t care about “winning” the browser war? Why should it? That was last decades battle. Not even MS cares about the browser enough anymore to invest in its own engine.
This is the difference between companies trying to sell products and companies trying to sell attention. Apple doesn't benefit at all from people using Safari, because Safari is not a surveillance tool. Therefore, "marketing" Safari is at best, an afterthought.
Chrome on the other hand... well, it's Google, one of the largest purveyors of advertising. If you don't think Chrome is watching you, I've got a bridge to sell you.
If they didn't care then we would have alternative rendering engine along with safari. They know that allowing competition is a threat to their business model.
So Apple “is afraid of competition” on an app it makes no money off, but allows the Kindle book store, Spotify, plenty of streaming services, Google Maps, two popular Office alternatives to iWork, has built in extensibility points to allow alternative storage providers to iCloud, alternate podcast providers, it basically built a feature into iOS just for alternative password managers, etc.
Maybe it’s telling the truth when it says there are security concerns?
Those are installed using apple approved app store. Which requires a subscription and payment of 30%. You can give behind security but the truth is they are afraid.
If they allow alternate app store or browsers then yes apple is bold. Until then they need to consider their bottomline which requires sometimes bowing to China as well!
That’s also not true. You don’t have to go through Apple to run a subscription service. You can have people subscribe/buy content outside of the store and let them use it within the store. Netflix, Spotify, Amazon (Kindle, Audible, etc.), AT&T Now, Sling, LinuxAcademy, and countless others make you pay for subscriptions/content outside of the store.
Funny how you seem to be tortured by even the idea of Safari, while I (and millions of other people) use it every day and haven't even noticed these supposed atrocities.
Having a favorite competitor in an industry is not that same thing as being a big fan of monopolies. That doesn't make sense. Having a healthy competitive industry does not mean that every person uses products from multiple competitors.
Having a favorite competitor is fine. Having so much loyalty to that competitor, however, is cultish. What happens when you get tired of that competitor, and some other competitor is offering something better? Or your favorite becomes abusive and you want to move? By supporting that competitor so strongly, you've encouraged monopolistic behavior, and now you're going to suffer for it, because there won't be good competitors any more, or you'll have a very hard time freeing yourself and migrating to the competition.
They are restricting one very particular tool, not a set of tools or category of tools. I can write an iOS application using a veritable shit-ton of different toolchains. It sounds more like you're locked into a particular toolchain more than Apple has locked all the other toolchains out.
I don't personally develop anything using Electron. But given it's popularity as a way to build desktop apps, it seems reasonable that people are concerned even though they haven't also blocked QT or React
I think the concern should be on why the electron devs found it appropriate to use a private API, which is against App Store guidelines, risking/preparing rejection for any app using their framework.
The rejection of private keys used, by frameworks, is in no way new (2009 [1]) or misunderstood.
I find it very difficult to understand why Apple is getting any blame/concern for enforcing the violation of a very very old requirement.
> The reason this has become news recently is the creator of a framework used by several apps used a private API, so when developers who included his framework updated their apps, they were rejected
They also have incentive to make it easier for you to switch platform. People are more likely to adopt a platform in the first place if it lets them escape, e.g., Joel Spolsky said Excel 4 was the tipping point because it allowed users to transparently write Lotus files:
> The trouble is that most managers only think about strategy one step at a time, like chess players who refuse to think one move ahead. Most of them will say, “it’s important to let people convert into your product, but why should I waste my limited engineering budget letting people convert out?“
I see this every day. People are much less likely to adopt Apple-only services than, say, Facebook and Google services that they can use on all of their devices and with all of their friends.
> Apple outright banning Electron-powered crap is the best reason I've heard yet for buying my new iPhone.
The article is about the Mac App Store, not the iPhone App Store. Not suggesting Apple's motives is "a good thing" but lets be accurate before going off on one.
I don't understand this comment. Could you unroll it for me?
After all, AMP is despised by the tech community — but ultimately still used by publishers because Google's more-or-less holding them to ransom.
Apple's not holding App Store developers to ransom with regards to apps that use Electron; rather, the use of private APIs always has been and always will be forbidden.
That people went all-in with a technology that depends on private APIs without properly vetting the underlying stack, or rather that the core developers of this technology knowingly make use of private APIs, isn't quite the same as Google's leverage over publishers via its monopolistic grip on the world's search and advertising businesses, surely.
One is a matter of technology, possibly of security, and the other is a more political discussion.
But if I'm missing an angle, I'm open to being let know!
> Apple doesn't give a toss if your app is cross platform.
Maybe but they sure as hell don't make it easy for cross-platform software to target their platforms. As far as I'm concerned, the only feasible way to target Apple platforms at this point is to:
1. Buy a Mac so you can officially run macOS and Xcode.
2. Spend $99 every year for an Apple developer license.
3. Spend the time to learn Swift, a language which despite being touted by Apple fanboys as being cross-platform is basically useless unless you're targeting the official Apple APIs.
4. Learn and stay up-to-date with Apple's ever-changing APIs (just wait until Cocoa and Cocoa Touch are completely deprecated in favor of some other API that is only accessible via SwiftUI... calling it now)
5. Keep up with Apple's ever-changing policies around what and what is not acceptable within their walled garden.
6. Give 30% of your profits to Apple.
Fuck that shit. Look, I don't use Electron applications as a general rule and I do agree with your gripes about "web based cruft". But at least it's possible for developers to learn that cruft and use their knowledge to write software without spending a ton of money and having everything they know be limited to Apple's walled garden. As much as Hacker News loves to hate on JavaScript, guess what? It's free and accessible. Anyone in the world can learn to use web based technologies to build software and enrich themselves (and maybe even others). If you're writing software for Apple platforms, you're only working to enrich Apple's ecosystem and investing your own time and money to do so. Maybe it's just my Linux / FOSS fanaticism but this perspective toward software development just doesn't resonate with me. I want anyone who wants to use the software I write to be able to use it, not just Apple's customers.
I'm not angry although I am somewhat frustrated with some of the fragmentation that exists in software, especially when so many on Hacker News are quick to dismiss projects that try to bridge that gap. I understand why Electron is hated but why isn't there a better alternative? How many attempts have there been at providing a good cross-platform UI toolkit that can build applications which look and feel "right" on the platforms they target? Gtk+, Qt, WxWidgets, etc. all suffer the same fate over time and a lot of it has to do with growing technical debt as a result of endless domain-specific iteration. New UX patterns to account for, more OS-specific APIs to learn, etc.
Compare Apple's strategy to that of Microsoft. macOS Catalina has this new feature called Catalyst which lets you run apps written for iOS on macOS. Very cool although you'll have to write your app in Xcode which only runs on a Mac and that app you wrote won't run on any other platform. Meanwhile, Microsoft maintains a free IDE that works on all of the major operating systems (Visual Studio Code), they let you easily set up a Linux environment in Windows using WSL, they're focusing on languages like TypeScript etc. With how profitable Azure is for the company, it makes sense the company is not interested in locking you into a Windows-only world. In the same way, I'm not surprised that Apple development is so specific to the Apple ecosystem.
> I think listing “need to learn to program” as a negative prerequisite of “want to build apps” is somewhat disingenuous.
If you think "need to learn to program" and "need to learn Swift, Apple-only APIs, etc." are equivalent, then you're the disingenuous one.
You don't have to use Swift as there are plenty of alternatives many of which run on Windows or Linux. So in theory you could do all your development on a non-OSX platform and then just use one of the Mac hosting providers for CI/CD.
And you don't have to give Apple 30%. Just notarise your app and add a link from your website.
> You don't have to use Swift as there are plenty of alternatives many of which run on Windows or Linux.
I'd use an application written in Java or one built with a cross-platform GUI toolkit like Gtk+ or Qt in Windows or Linux. I wouldn't in macOS and most users won't either. They're ugly in macOS. They stick out like a sore thumb. It's not that it's impossible for a cross-platform approach to produce an application that is nice to use in macOS, it's that there is technical debt in the libraries and frameworks that attempt cross-platform and usually it's a failure to keep up with the constant changes in the Apple ecosystem. A few years ago Apple removed support for OpenGL so now if you want to write 3D applications you have to use Metal. Thankfully, there's MoltenVK so if you want to target multiple platforms you can use Vulkan but how do you know that approach is sustainable? MoltenVK only uses public APIs so its safe to use for the time being. That said, any number of decisions Apple makes moving forward could potentially rule it out as a viable option.
> And you don't have to give Apple 30%. Just notarise your app and add a link from your website.
That's a fair point although maybe not the best UX for all purposes.
Apple really doesn't care about those $100/year or even all the hardware all developers in the world together buy. So you have to wonder why they require people to jump through these hoops, and a wish to focus on native, high-quality software does seem to be the best explanation I can come up with.
> Apple doesn't give a toss if your app is cross platform.
This is an outstandingly silly statement. If I followed your example, that's where I would have stopped reading your comment.
Apple's entire business is built on trying to capture users, keeping them using all and only their computing products. Some aspects of this overall strategy (making beautiful devices that people want) are positive for customers. One of the less positive parts, discouraging cross platform software, is an essential part of the overall strategy.
Apple would obviously prefer you write apps for its platform only, but as long as you don’t _defect_ to another platform, why would Apple care whether an app you use on its platforms is written in one language or another? If an app you want to use is available for its OS, it makes you that much more likely to start/continue using Apple products.
If it’s written in JavaScript, Swift, Python, or COBOL is irrelevant; what’s important is (a) that the software runs on macOS or iOS, and (b) that you don’t get a better experience elsewhere using the same app—because that _will_ likely lead to a user switching away from Apple’s products.
> why would Apple care whether an app you use on its platforms is written in one language or another?
Because they want to hold people exclusively on their platform for upgrade & services revenue. They obviously have no scruples about the means. The more difficult it is either to use devices on various platforms, or to migrate away from Apple entirely, the better for Apple.
> Because they want to hold people exclusively on their platform for
> upgrade & services revenue.
Yes, so would any vendor, if there's more money to be made by keeping people in your sphere. I mean, there's a reason that movie theaters and restaurants don't let you bring food from the outside. They want to be the exclusive provider of food and beverages in order to increase their revenue, so they can charge you $5 for a Diet Coke that might cost you $2 at the corner store.
But for Apple, it's a calculus: does Apple make more money at Thing X by keeping it open, or by keeping it closed and potentially reducing their customer pool? Where there's more money to be made in openness, in a way that aligns with Apple's other priorities, they'll be open. If there's more money to be made in keeping it closed, they'll keep it closed.
For example, I'm so glad you mentioned services revenue. Apple TV, at least the software portion, is now shipped _from_the_factory_ on smart TVs made by Samsung, LG, Sony, Vizio, and a handful of other vendors, as well as Roku and Amazon Fire TV. Apple Music has an Android app on the Google Play store that is kept up to date and integrates nicely into the Android OS, and actually holds a 3.7/5 rating (surprising considering how many Android fans review-bombed it in the early days simply for being an Apple app).
If Apple really wanted to "hold people exclusively" to their platform, none of those things would be available outside Apple products. There's more money to be made on services outside Apple hardware than there is in keeping those things exclusive to it.
> The more difficult it is either to use devices on various platforms, or
> to migrate away from Apple entirely, the better for Apple.
The better for any vendor if it's harder to migrate from that vendor to a competitor. That's what smart competitors DO, is make it difficult to leave. Your argument is that Apple should make it painless to switch away from Apple--so let me ask you, what _benefit_ does it incur to Apple to make it easier to switch away from Apple products or services?
If your entire argument is that Apple should do whatever it takes to make customers lives easier, then my response is, that's not a bad perspective to have, but it's unrealistic unless all aspects of the industry adopt the same attitude. If Apple makes it easy to leave, and the Googles, Amazons, and Microsofts of the world continue to make it easy to capture customers and difficult for them to leave, then there's zero benefit to Apple for being the pioneer in this new world order.
Who cares if an app has a lousy UX? Doesn't the market filter these out?
How is it any of Apples concern if I want to make the ugliest most useless app ever? If people love it, and everyone wants it, isn't that enough reason to sell it?
Letting anyone sell anything they want is how you get the Play Store, a monument to bad experiences. Pages upon pages of cloneware apps, asset-flip games, on and on and on, all of which of course are drowned in advertisements. In my last year of owning an Android before I got my first iPhone, the 6 Plus, I didn't even open the Play Store anymore. It was awful.
That's not to say everything on the App Store is great, of course, but it's a hell of a lot better.
Edit: Upon further thought I should really go further with this: The quality of the App Store is part of the marketing of iDevices. This is why Apple's app review process also looks for things like apps that crash too much, apps that run slowly, apps that are burning through system resources, on and on. It's why you generally won't have an app on their store that will, for example, destroy your battery, or games that show you ads every 15 seconds.
I know the attitude on HN generally prefers freedom over curation, and in many ways I'd agree, but when it comes to the walled garden Apple provides, sorry friends, I just like being here.
Edit's edit: In fact, I can even take this one step further: this is, I believe, part of the reason iOS users are far more likely to be willing to PAY for their apps: because Apple checks them at the door. And sure, quality isn't guaranteed per say, but at least you know someone is trying at it. You can be assured that this app isn't going to damage your device somehow, and you can be reasonably sure that it's going to do what it says on the tin, at least competently. And if not, Apple has your back with refunds, too.
The apps in app store is as bad as play store. There are clones as well. A competition to app store would cause serious revenue fall for apple thats why they want to control.
Look around on the Google Play store and you'll see that no, the market does not filter out crap. Crap is most of what you can find on Google's store. Just try to find a proper mail client or file manager, there is so much junk in there.
I don't have this problem because I'm not addicted to apps like you. "My Files" that came with the S10 is great for file management and Outlook works fine for my mail.
What on earth are you talking about? We were comparing quality of apps in the App Store versus Google play store, that was the whole premise of the discussion. How does that make me an addict?
I also didn’t say there weren’t any proper apps in the google play store. I said there is lots of crap in there. I also didn’t say that stock apps of all vendors are crap. Obviously file management and email were examples. You can apply my statement about general quality of android apps to practically any app category. There are so many half baked, proof of concept, abandoned hobby project, malicious data hoarding apps on the google store that you waste lots of time looking for something that can do something that should have been solved already. It is hard to filter through the crap.
This is not a useful response. If you're going to make an assertion, don't run behind false pretences and logical fallacies to defend yourself from a cogent argument.
Being a consumer, you would be part of helping the market filter these out. I don’t want to help my grocer “filter out” spoiled foods too often. I’ll go to a grocer that filters a bit before stocking.
Who is the arbiter of bad UX? Everyone can agree on rotten fruit, what is a rotten user interface?
Everything I've learned about UX is that a spreadsheet will solve tons of problems that it's the worst interface for. Yet that is what people often want.
And that's where I stopped reading. Apple doesn't give a toss if your app is cross platform. Frameworks that started back in the day like phonegap have matured into things like Electron, and the core problems are the same:
They run like crap. Animations are jerky, oftentimes the app simply "refreshes" when things go too far off the rails. This is a poor UX.
The apps are not able to adapt to newer devices without additional work. For MONTHS after the release of the X, looking at the Spotify app on it, the controls at the base of the screen were below the multitasking gesture indicator. If this app was built with AutoLayout as Apple encourages, this would've never been an issue.
I know, instantly, when an app I've downloaded is using web based cruft, I can catch it at a glance with the first tap, and the first slow interaction begrudgingly kicks off. Yep, it's a web-based one, and no, I will not be keeping it unless I have no choice to. Unless it's critical in some way, it's gone.
Apple outright banning Electron-powered crap is the best reason I've heard yet for buying my new iPhone.