
What Apple Gives You for $100 as a Safari Extension Developer - Lazare
https://medium.com/@honestbleeps/what-apple-gives-you-for-100-as-a-safari-extension-developer-and-why-reddit-enhancement-suite-6e2d829c2e52
======
shakna
So... This last year in Safari Extension world:

* $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.

~~~
pavlov
_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._

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.

~~~
mikeash
What they did with the iPhone really makes me sad. They had a unique
opportunity to completely open up mobile devices. Instead, they stuck with the
walled garden approach, but done better. There was huge outcry about this from
developers used to PCs, but Apple didn't budge and developers put up with it
since, as you say, it was a lot better than other mobile platforms.

~~~
kabdib
If it hadn't been a walled garden, the market would have sucked horribly
inside of a year. It would be a steaming cesspool of malware and trickery and
junkware. Consumer trust would have been eroded, and the market would have
failed.

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?)

~~~
mikeash
The Mac wasn't a steaming cesspool despite having none of these restrictions.
I don't think your examples at the end support your point at all. It seems to
me that a $1,000 app that does nothing and $100 in-game ammo purchases are
only enabled by something like the App Store. The App Store is pretty anti-
consumer, really. For example, the freemium craze was partly driven by the
fact that Apple forbids free trials, so developers had to come up with other,
worse ways to monetize without requiring people to pay up-front for something
they didn't know the worth of.

~~~
cwisecarver
The iOS marketshare is a orders of magnitude larger than that of macOS so the
target vector is larger. Malware and the like would be hugely more profitable
on iOS than macOS.

~~~
mikeash
It is now, but it wasn't when the App Store was introduced.

In any case, malware is best prevented by strong sandboxing. Forcing everyone
to go through the store does approximately nothing to fight malware.

~~~
kabdib
Sandboxing has proven pretty weak in mobile products (definitely in the case
of Android; the iOS sandboxing has had a better track record).

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.

~~~
mikeash
A big part of Android's problem is that the permissions model sucks. Until
recently, all permissions requested by an app had to be granted up-front as
part of installing the app. Apps tended to request anything and everything for
no good reason. This trained users to just click through the permissions
screen without paying any attention to it.

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.

------
fowlerpower
Apple is headed down the path that the old Microsoft was headed. Which they,
Microsoft, have ironically backed away from.

I guess what I'm saying is that in some ways Safari is the new IE, but without
the same reach. The same kind of vendor lock in and shitty expensive tooling.

~~~
JohnTHaller
Apple is worse in many ways. The situation with Safari on iOS with it being
the only rendering engine you can use is akin to Microsoft forbidding other
browsers on Windows and only allowing browser skin UIs that sit atop IE6.

~~~
pier25
I've reported numerous iOS bugs in the webkit project and most of the times I
never get answer.

I also frequently report bugs in the Chromium project and I usually get an
answer in less than an hour. Never a bug I reported was ignored, legitimate or
not.

Recently I wrote an article criticising iOS from a dev perspective and posted
a tweet from a core webkit member:

> that's because they have a lot more engineers and evangelists/dev-rel than
> Apple

...referring to Google and the Chromium project.

Well, hours after I published the article the Twitter user was deleted.

Here's the article in question: [https://medium.com/@Pier/why-i-hate-ios-as-a-
developer-459c1...](https://medium.com/@Pier/why-i-hate-ios-as-a-
developer-459c182e8a72)

------
NKCSS
Has Google dropped the requirement to pay for your Chrome Extention? I
remember having to register and pay a fee to publish my Chrome extention [1]
last year.

From the article: "The $100 per year fee, which doesn’t have to be paid to
publish to any other browser."

[1]: [https://chrome.google.com/webstore/detail/nkcss-funda-
images...](https://chrome.google.com/webstore/detail/nkcss-funda-images-
downlo/bdhghkjaeodhaflkohpjfbidhbiincjc)

[edit]

Found it ([2]): "Before you publish your first app, you must pay a one-time $5
developer signup fee. A reminder in the dashboard will appear until you pay
the fee."

It's not $100, but I remembered having to pay 'something'.

[2]: [https://developer.chrome.com/webstore/publish#pay-the-
develo...](https://developer.chrome.com/webstore/publish#pay-the-developer-
signup-fee)

~~~
Flammy
Pretty sure Google Chrome's dev fee is a $5 one time per account charge from
when I was using it last year...

~~~
londons_explore
It's basically an anti spam charge

------
NKCSS
Biggest surprise: "Developers are paying $100 a year and Apple doesn’t even
host the extension themselves."

~~~
bangonkeyboard
They do, actually. Not that hosting a few dozen kilobytes makes it any better.

------
wouterinho
We also had the same issues with (trying) to publish an extension to the
Safari gallery: long waiting times, unclear communication, publishing without
notification, etc. Besides that, the move towards the requirement of Xcode
does not bode well for managing a multi-browser codebase in JS.

Google and to a lesser extent Mozilla are doing way better on this and seem
way more experienced in handling the extension ecosystem.

------
chillacy
Having developed a safari extension for my mac app I have to agree. Compared
to the app store process, safari extensions feel like an afterthought to
Apple. For instance to update the app, you have to go to the submission page
and resubmit your app, filling in all the details over again.

------
orf
Just drop safari support. Vote with your feet, so to speak.

------
kitsunesoba
I think Apple's general idea with this was to recruit extension developers
into Apple platform development in some capacity, since paying that $100 also
gets you access to the iOS and Mac app stores. It's probably not that
unreasonable of a thought; any developer capable of creating a browser
extension could also probably whip together some kind of electron/touchgap web
app and publish it on iOS and/or macOS.

Conversely, they may want existing iOS and Mac devs to be the ones creating
Safari extensions rather than the current crop of multi-browser extension
developers. This may be their way of trying to recreate the Mac's propensity
to be a host to unique, platform-exclusive apps — in other words, they want
Safari to have several prominent exclusives instead of just the same stuff you
see everywhere else.

Regardless of the motive I think it's safe to say that it isn't working out as
they've planned.

------
mrweasel
I'm wondering if Apple decided to charge the $100 to have a "curated" set of
extensions. There are thousand of extensions available for Firefox and Chrome,
and most of them are junk.

Maybe the thought that Apple had was that charging the $100 would leave them
with a smaller set of extensions, with higher quality. I'm not really sure
it's working, sure there's fewer extensions, but still a large number of weird
ones.

~~~
paulgb
If that's the intent, I think the effect will be opposite. The extensions they
get will be the ones with the highest profit motive (ads, data collection,
etc.) since they are the ones that can most easily overlook the $100 fee.

------
vortico
All this because many users prefer the Extension Gallery or are unable to
install extensions manually. The only way to move away from centralized
services is for users to stop using them. Unfortunately, the typical Safari
user doesn't seem to me as the tech-savvy person willing to learn how to do
this.

------
lol768
> they will not auto update when you release new versions

Wouldn't it be possible to do the auto-updating logic yourself? Is there
something preventing this? I assume extensions can store stuff with
localStorage, so what's to stop you downloading the code and eval'ing it?

~~~
sangnoir
Out-of-band updates sound like a hole Apple would want to plug in the near
future. The review process is entirely pointless when the the developer can
bypass it via subsequent updates.

------
gurkendoktor
Same experience here: Lots of confusing mails after my submission, needed to
re-submit a few times, and never received a notification about my extension
going live. I wouldn't have noticed the Safari Extensions menu item without
watching WWDC videos, anyway.

On the Mac App Store, besides copy-pasting some Swift/Objective-C, you also
need to come up with a UI for your app. It'll probably be a storyboard with a
single window that lets users know how to activate your extension, but getting
the details right without prior experience in Cocoa development will eat some
of your precious dev time.

------
roryisok
Another stupid decision by apple. Next they'll probably go after this party
browsers, try and pull some stunt to force people to use Safari- some unique
macos feature which only safari can access or something

~~~
clintonb
They already have such a feature: Apple Pay can only be used in Safari for web
payments.

------
vfaronov
> _All four of the other browsers use effectively the same APIs — Safari is
> potentially going to change that in some ugly ways._

I understand a developer’s desire to have more reach with less work. But if
all browsers have the same APIs, for the same feature set, with the same UI...
then what is the point of having different browsers?

If Safari’s API changes lead to extensions that are better integrated with the
underlying platform (and I don’t know if that is the case), I say all the
power to them.

~~~
callahad
Core APIs for common functions (intercept these network requests, inject these
stylesheets, etc.) are being standardized so you don't have to reinvent the
wheel on every damn browser. Browsers can also freely implement additional,
non-standard add-on APIs that make sense for their product, while the APIs
that aren't distinguishing features can get out of the way and Just Work,
everywhere. For example, Opera has a sidebar API, while Chrome does not.

This is good, and allows browsers to compete on privacy, performance,
security, support for web standards, ui/ux, etc.

------
thenextman
First, you can auto update extensions distributed via your own web server. It
says so right in Apple’s docs how to do it:

[https://developer.apple.com/library/content/documentation/To...](https://developer.apple.com/library/content/documentation/Tools/Conceptual/SafariExtensionGuide/UpdatingExtensions/UpdatingExtensions.html#//apple_ref/doc/uid/TP40009977-CH12-SW1)

Second, he writes:

“Maintenance of Safari Extensions is also about to get even worse”

And then: “All four of the other browsers use effectively the same APIs —
Safari is _potentially_ going to change that in some ugly ways” and To develop
a Safari extension _may_ eventually require Xcode” (emphasis mine).

So it implies that Apple is forcing a switch to the Safari App Extension
model, but there doesn’t seem to be any evidence of that. Both the traditional
extension model and the new app extension model are supported side by side
right now.

While I agree that the review process is ridiculous, I think the author is
disingenuous or uneducated on a few of the key points of the article.

~~~
bangonkeyboard
No.

 _> First, you can auto update extensions distributed via your own web server.
It says so right in Apple’s docs how to do it:_

    
    
      Only Safari extensions installed from the Safari Extensions Gallery can be 
      updated automatically. [0]
    

_> So it implies that Apple is forcing a switch to the Safari App Extension
model, but there doesn’t seem to be any evidence of that._

    
    
      The future of extensions development takes place in Xcode [1]
    
      As of Safari 10.0 on macOS 10.11.5, Safari extensions are created as app 
      extensions in Xcode. New extensions are wrapped in a containing macOS app and 
      are distributed and sold on the App Store. If you have created an extension 
      with the methods described in this document, consider transitioning to the new 
      extensions model. [2]
    

_> Both the traditional extension model and the new app extension model are
supported side by side right now._

[http://i.imgur.com/tOGLKxb.png](http://i.imgur.com/tOGLKxb.png)

\---

[0]:
[https://developer.apple.com/library/content/documentation/To...](https://developer.apple.com/library/content/documentation/Tools/Conceptual/SafariExtensionGuide/DistributingYourExtension/DistributingYourExtension.html)

[1]:
[https://developer.apple.com/safari/](https://developer.apple.com/safari/)

[2]:
[https://developer.apple.com/library/content/documentation/To...](https://developer.apple.com/library/content/documentation/Tools/Conceptual/SafariExtensionGuide/Introduction/Introduction.html)

------
jsz0
Just the other day I had a few Chrome extensions stop working and sure enough
they're disabled because 'This extension contains malware'. Never had that
problem with Safari so maybe the $100 isn't such a bad deal after all.

~~~
Insanity
So you are saying that the exact same thing could not happen on the apple
store or whatever it is called? Except then your extension would be disabled
_AND_ you'd have lost $100

------
cpolis
duplicate post:
[https://news.ycombinator.com/item?id=13306964](https://news.ycombinator.com/item?id=13306964)

------
droopyEyelids
Hey HonestBleeps,

I will gladly pay if you start charging. I'd pay in the neighborhood of $15
for Safari RES. Would love to pay for you to host my RES tags, too.

------
yalogin
What happens to your apps if you stop paying the annual fee? Will they be
removed from the AppStore? Will there be no auto updates on them?

------
Fnoord
All this from one of the largest tax evaders in the world.

Is this $100 per extension or $100 per developer? If the latter, make a non
profit organisation as 3rd party who pays the fee and allow others to join it
for free.

~~~
scarlac
Per developer

~~~
liaocs2008
I see... There must be a lot of people developing RES which would cost much.

~~~
BillinghamJ
No, it's per Apple developer account which will be publishing the extension.
So RES only needs one.

If the person who publishes RES also publishes others, that person still only
needs one.

