To Apple's credit, they are occasionally way ahead of the curve on developer convenience, and have reaped huge benefits from that.
I tried making smartphone apps in 2003-07 for Symbian, Java ME and the very first Android beta (the one that had a traditional keypad phone emulator). The experience was always disheartening. Horrible IDEs that sometimes cost money, awful device feature fragmentation with no standard ways to handle it, inconvenient APIs designed in the style of '90s embedded platform expectations.
If you managed to get a working app together, distributing it was a mystery. On Symbian, you'd have to pay something on the order of $1000+ for certification from a "special Symbian partner", and even after that there was no central app store. There were websites offering downloads (and paid listings), but users would not stumble on those. It was a terrible offering all around.
The native iPhone SDK in 2008 changed all that. Suddenly there was a smartphone with a desktop-class IDE experience and desktop-derived APIs, with easy access to fascinating new multitouch UI possibilities... And there was an integrated Apple-curated store where you could publish any number of apps for only $99 / year! That was an amazing deal compared to anything that came before in this space. Some occasional hassles with Xcode bugs and certificate weirdness was nothing compared to the nightmare of the Symbian/JavaME style mobile dev experience.
Even before that, Apple had done well by its Mac OS X developers by offering the NeXT-originated Cocoa tools for free. Back in 2001, that wasn't the expectation yet. It was a good API, battle-hardened at NeXT already, and much better than anything Microsoft was pushing in that Windows XP timeframe. Apple's efforts to support OS X development had two major benefits: the Mac's resurgence was helped by increasing availability of good 3rd party software created by dedicated developers, and the iPhone global launch was greatly helped by the fact that those same OS X developers were able to easily move to the iPhone.
I think that Apple did absolutely the right thing for a young marketplace. It was bad enough as it was (remember the $1000 app that did nothing? And the game with a $100 in-game purchase of ammo?)
In any case, malware is best prevented by strong sandboxing. Forcing everyone to go through the store does approximately nothing to fight malware.
Additionally, not all malware needs to escape a sandbox. For instance, there are a bunch of fake apps that simply capture credentials, or that make expensive phone calls or texts.
A well-run store that can run tools against images is a decent first line of defense against malware. A store also provides reliable information about code publishers. These are not a complete defense, but they appear necessary.
The iOS model (and now Android model) of prompting for permission when the app first tries to use it is much more solid. If an app requests access to your contacts for no good reason, you'll get a fairly obvious prompt and you can say no. There's still some trouble with getting users to pay attention, but it's a lot better.
I don't see how this makes a store appear necessary. Android doesn't allow sideloading by default, and iOS can now sort of sideload apps using the new free signing stuff Apple put out. The limits on the number and duration of sideloaded apps make them impractical for selling legitimate software, but are no obstacle to malware.
Apple seems to have gotten their trophies here (no doubt) and then stared at them rather than figured out how to get more.
Apple controls the entire software and hardware stack so their crappy dev experience is a consequence of either incompetence or arrogance.
There's a one-off $5 fee to publish things on the Chrome store.[1]
[1] https://developer.chrome.com/webstore/publish#pay-the-develo...
But that one off fee seems incredibly negligible against Safari's fee, which is 20x larger... And yearly. For smaller marketshare.
Just stop supporting Safari. It's more trouble than it's worth and, generally, the type of person that runs RES isn't running something has uncustomizable as Safari.
Of course Firefox beats both Chrome and Safari out in this aspect, but you trade off things like the battery life you mentioned as well as compatibility with OS X services and general native-ness (Firefox has always felt odd and foreign under OS X due to using XUL for its UI). For someone like myself whose extension needs stop at Stylish and a good adblocker, the trade off isn't worth it.
I think Google charges like a $5 one-time fee to publish a browser extension, as a way of discouraging trash extensions.
Do you know if this will allow companies to install extensions to their employee computers automatically?
I worked on a commercial Safari extension briefly assuming this functionality had to be there, but gave up when I realised there was no way to push it to an employee's computer without a prompt.
Totally disagree. Publishing Safari extensions might be a rubbish experience, but publishing anything else is fine.
There's a comment on the post disputing this possibility.
This isn’t correct. Without paying the $100, you can’t get a certificate, and
without a certificate, you can’t sign an extension to build a safariextz.Or even better? Higher barrier to entry and more protection against crappy extensions, spam extensions, amateur hour, etc?
It almost sounds like they want really fast extensions they can confidently distribute on iOS...
* $100 buy in. Yearly. (Firefox, Edge, Chrome, Opera... No license fees.)
* Long, bug-prone, and somewhat idiotic review process.
* No way to charge for an extension, to recoup that $100. So its ads or nothing.
* Installation page only. No reviews. No real information.
Caveat: You can develop for free, without getting listed, but then you can't automatically update the extension.
What's coming in Safari Extension world:
* The $100 fee is staying.
* Xcode requirement. You'll need a Mac to publish.
* Swift/Objective-C requirement. No more HTML/JS/CSS only.
* Mac store listing, which means you can charge for extensions. But the Mac Store isn't known for a nice review process.
* Hugely lacking documentation. Hopefully this'll change... But Apple doesn't have a good track record here.
Result:
Reddit Enhancement Suite has to decide between not publishing for one of the major browsers, or paying out for a longer, harder to maintain process, to achieve the same thing as they already do for Firefox, Chrome, Edge and Opera.
Personal anecdote:
Apple seems to hate their own developers. This story, others, and my own experiences tell me that Apple makes everything more difficult than need be to put together a program, small or large, that actually runs on their platform.
Swift was a step in the right direction, a nice language, a decent Open Source effort, and cross platform to boot.
But Safari... Safari lacks in so many areas that it's progress on JS doesn't matter much. Isolating those who build for it is unhelpful.
It almost seems like Apple want Safari to die.