
An Apple Developer for 10 Years - mpweiher
https://qnoid.com/2019/09/06/Apple-Developer.html
======
bsaul
Wow, that's weird because i had experienced almost exactly the same feeling 3
days ago. 10 years app developer as well, worked on an app (huge update) for 2
years, with the last 7 months full time , which means a big financial risk.
And saw the update rejected for what looked like something Apple didn't like
in my business model (that hasn't changed in the last four years since the
first release of app has been out).

In my case, it ended well, because after explaining there must have been a
misunderstanding, they finally accepted the update, but something changed at
that precise moment i saw the reason they rejected the app.

I am now _extremely_ worried about things i knew before but didn't really care
about. That is:

\- Apple has a monopoly on app distribution to my customer's devices.

\- Apple doesn't care _at all_ if my app is distributed on the store or not.

\- They'd rather have every developer work for free and give their time for
free, and work only for iOS. That would be the ideal situation for them if
that was sustainable. We have different interest.

And so the natural conclusion was that I, as a developer, can _not_
responsibly develop only for apple-owned platform.

And so tomorrow (or actually monday), i'm starting my next application
project, and it's going to run either on flutter or react native. Because at
the minimum i'll be able to provide an option to my customers should apple not
like what i'm doing on their store, for some obscure reason.

~~~
onlyrealcuzzo
If you're currently doing native iOS development, you might want to give
native Android a try. It's not /that/ different from iOS development,
especially if you're using Swift and you try Kotlin.

I only say this because -- if you haven't tried React Native before -- you're
in for a bad time if you think you don't really need to know Android
development to make an even modestly complex app. When you run into Reactive
Native errors and you don't know what's going on in Android, it can be an
infuriating experience.

I'm not saying it's the best bet for you. Just -- if you haven't tried it --
maybe give it a shot [=

~~~
bsaul
I have already developed a few things on android, and i know iOS and android
aren't that far away in the concept. However the main issue is that i don't
have time to develop two apps. It's as simple as that.

I'm not planning on using react or flutter to avoid knowing about android
internals. I'm going to use them to only develop specific code when it's
absolutely needed, and not for 100% of the code base.

As an independant software developer (or even for a modest company) i think
it's now the only sane choice.

~~~
drspacemonkey
Having been down this road before, I'd recommend Flutter over ReactNative.

ReactNative feels like developing the same app 2.5 times. Once in RN proper,
and then covering the same ground for large swaths of the app again for each
iOS and Andriod.

Flutter has some pain associated with it (I would highlight the lack of 3rd
party and community support compared with RN), but overall I'd say it delivers
more on the "write once, run everywhere" promise of RN.

~~~
bsaul
Thanks for the help. I had reached the same conclusion as you from my very
brief exploration of the two technologies so far. Flutter seems more self-
contained and coherent, at the cost of taking the risk to not integrate well
with the native OS (which TBH is the least of my concerns at the moment as
long as flutter is able to provide me with something close to iOS 7 feature
set support).

------
gitpusher
Former Apple + TestFlight employee here (3 years at TF + 2 at App Store post-
acquisition)

Apple is very territorial about developer tools. They do allow certain
businesses (like Fastlane) to operate in this space (a tacit acknowledgement
that those tools provide value) yet they deny others (like Windmill) the right
to operate.

This follows the typical Apple ethos of "we can do it better because we're
vertically-integrated". However this only works if your product is damn-near
perfect. And Apple is infamously imperfect when it comes to software/services.

On top of the competence issue, they also have no real motivation to improve
tooling. They know that developers will build stuff no matter how onerous the
terms, and no matter how nitpicky is their approval process.

If they re-framed their perspective, and began considering devs as "users" in
their own right, then perhaps they, too, would experience the tender love +
attention that Apple lavishes on its end users. But this is simply not how
they view it, and there is little political will inside Eddy's org to
accomplish such a shift.

~~~
messick
I don't know, if you came in via the acquisition, seems like you would have
used the correct company name and not "TestFlight".

~~~
saagarjha
What is the "correct company name" that they should have used? Was the company
not called TestFlight?

~~~
SyneRyder
Looks like the company was called Burstly, and besides TestFlight they also
had an in-app ad platform called SkyRocket, and a mobile analytics product
called FlightPath.

[https://techcrunch.com/2014/02/21/rumor-testflight-owner-
bur...](https://techcrunch.com/2014/02/21/rumor-testflight-owner-burstly-is-
being-acquired-by-apple/)

~~~
saagarjha
TestFlight was acquired by Burstly.

------
fharper1961
I saw the writing on the wall in 2008-2009. A developer created a podcast app
that downloaded directly to the phone without syncing through a PC running
iTunes. I was running Linux, and I really wanted to buy that app.

But Apple rejected it, so the developer lost out, and I lost out. I could not
accept that Apple was preventing me from running an app on hardware I "owned"!
I never bought another iPhone after that.

I've been an Android developer since 2010. But now I've realized that Android
has similar flaws because it is controlled by one corporation:

=> 30% Play Store transaction fees!

=> Apps delisted without any explanation

The freedom on open platforms is vital; so I will invest more time in them
than in closed ones.

~~~
eddyg
Things have changed a lot in 10 years.

Even as someone with heavy "tech nerd" needs (e.g. a mosh session that is
always open to my server), there is very little I want to do on an iOS device
that I can't do with tools provided by developers via the App Store.

~~~
shkkmo
Except use a different browser engine...

~~~
chipotle_coyote
The OP said "want to do," though, which is pretty subjective, right? I don't
actually care about not being able to use a different browser engine, but I do
care about not being able to set a third-party mail client as my default.
There are things that I want to do on my iPad that I can't, but not all of
them have to do with Apple platform policy -- UIKit's lackluster text editing
components are undeniably contributing to the relative suck of Scrivener and
Slugline on iOS compared to their Mac counterparts, for instance. (Although
one might argue developers might be motivated to work more on homegrown
components if the App Store was structured differently; personally, I think
Apple's 30% cut is not the worst problem.)

~~~
heavenlyblue
>> I don't actually care about not being able to use a different browser
engine, but I do care about not being able to set a third-party mail client as
my default.

Has anyone actually noticed that if you use Gmail on iPhone and you’ve got
Chrome installed it will use Chrome by default?

PS: I’ve generally use Firefox though

------
_bxg1
Really this is a problem with any gigantic platform that hosts thousands of
people's livelihoods. Apple, Google (not just the Play store; ads, etc.),
YouTube (people who make a living off of their channels), Twitch, Uber,
Amazon's store, the list goes on.

It's not that (most of) these companies are egregiously terrible at being
fair, percentage-wise. It's that their scales are so incomprehensibly massive,
and their business interests sufficiently high-level, that people will always
fall through the cracks. Always. Entire lives comprise a rounding error. And
then in most cases those small businesses have no alternative; they're simply
shut down. This is a problem endemic to any sufficiently large platform
monopoly (or duopoly, etc.).

------
burnte
The reason for his denial, that it's too close to Testflight, that was a
reason that always bothered me. Apple disallowing apps that are too similar to
their apps, not allowing you to change default apps for core functions, etc.,
is blatantly anticompetitive.

~~~
SamuelAdams
Here's the actual blog / text where the author discusses it:

[https://qnoid.com/2019/07/29/Windmill-on-the-
iPhone.html#mai...](https://qnoid.com/2019/07/29/Windmill-on-the-
iPhone.html#main)

> YOUR APP IS TOO SIMILAR TO TESTFLIGHT, WHICH CREATES A MISLEADING
> ASSOCIATION WITH APPLE PRODUCTS. WE ENCOURAGE YOU TO REVIEW YOUR APP CONCEPT
> AND EVALUATE WHETHER YOU CAN INCORPORATE DIFFERENT CONTENT AND FEATURES TO
> BRING IT INTO COMPLIANCE WITH THE APP STORE REVIEW GUIDELINES.

Testflight:
[https://developer.apple.com/testflight/](https://developer.apple.com/testflight/)

To be honest, I kind of agree with Apple on this one. What does Windmill do
that Testflight does not already do? The author states:

> Windmill on the iPhone allows an organization with an iPhone app under
> development to make that app available for distribution on any devices they
> own, as documented in the iOS Deployment Reference.

So does Testflight.

> It makes use of ad-hoc distribution to make it dead easy to get started as a
> small- to medium-size business, with app distribution to half a dozen or so
> devices, while progressing towards TestFlight.

Ok, the distribution for test flight might not be "ad hoc", but most end users
don't care how it gets published. If it saves a substantial amount of time /
clicks, then yeah that might be worthwhile, but based on the product
description it's not very clear.

> It allows businesses to distribute their app continuously while still in
> development, at regular time intervals, on demand, or as a reaction.

So does Testflight.

~~~
belltaco
Even if true, how is that a valid reason for rejection? Imagine MS banning
editors in Windows because they do the same thing as Notepad or Word.

~~~
pixelbath
This is not a good analogy because it doesn't map correctly to reality.
Developers are required to agree to these terms prior to enrollment in the
Apple Developer Program.

I imagine this is more like that time Google tried to submit the Chrome
installer to the Microsoft Store and was rejected because the policy for web
browsers in the store is that they must use the EdgeHTML engine [1].

[1] [https://mspoweruser.com/microsofts-rejection-googles-
chrome-...](https://mspoweruser.com/microsofts-rejection-googles-chrome-
installer-echoes-old-windows-phone-dispute/)

~~~
throwaway2048
Hiding behind "you agreed to a 50 page TOS that would take an entire legal
team to assess, and you can piss up a rope if you don't agree" isn't a good
look, it also changes absolutely nothing about the fairness of the
arrangement.

------
makecheck
In the old days, if you tirelessly worked away at something for years, you at
least had the option to set it up as shareware or give it away. The terms were
up to you.

These days, even _those_ options are gone. You can’t sell it or install it in
any normal way if the platform vendor doesn’t like it. You will even need to
“notarize” side installs (which will kill truly free software because no one
should need $99/year to distribute what used to be free).

And the only thing worse than all the rules is the brutal _inconsistency_ of
it all. Had this person lucked into one of Apple’s “meh, sounds fine,
Approved!” reviewers, there would have been no rejection and no blog post. It
is really a crap shoot, where lots of crap gets into the store too.

~~~
Mxtetris
> These days, even those options are gone.

On Android, you can distribute, download, and install .apk files outside of
the Play Store [1]. There's also an app called f-droid [2] which acts as a
'store' for some open source apps.

[1] [https://developer.android.com/distribute/marketing-
tools/alt...](https://developer.android.com/distribute/marketing-
tools/alternative-distribution#websites) [2]
[https://f-droid.org/en/](https://f-droid.org/en/)

~~~
SyneRyder
There's also Epic Games who distribute Fortnite through their own Android app
store, and it sounds like that's worked out for them. Amazon AppStore can be
installed on Android devices, and Samsung has their own app store too.

There are even big companies distributing Android apps directly via downloaded
APK - gambling apps aren't allowed on Google Play, but Sportsbet in Australia
still did a splashy TV campaign for their Android app APK:

[https://www.youtube.com/watch?v=IYHXmzbVRV4](https://www.youtube.com/watch?v=IYHXmzbVRV4)

------
ArmandGrillet
This article resonates with one thing that bothers me since a few months: the
YouTube iOS app is begging for me to subscribe to a premium subscription every
time I open it.

This is against the guidelines and an indie app doing that would get removed
from the App store but because it's Google I guess it's not being done.

In a democracy the people writing the laws are not the ones applying it (law
makers in a parliament v. lawyers in a justice court) and app stores don't
respect that rule. I'm OK with Apple making its App Store the only way to
download apps for security but the authority taking care of which ones are
accepted/removed should be independent and open in some way.

------
pier25
On one hand I think there is no argument that can justify Apple not letting me
install whatever app I want on any of my devices. I can on macOS, why not on
iOS?

Whatever risks there are on iOS are also on macOS. Security is not a great
argument. Yes, add Gatekeeper or a red blinking alert if you want, but I
should be able to install any app I want without jailbreaking my device. There
are many ways Apple could solve this if it wanted to.

On the other hand... it's heartbreaking to see someone spend so much effort on
a project and fail, but Windmill was never going to pass through the review
process.

Personally I would never bet my future on iOS unless the App Store policies
change _drastically_.

~~~
bitL
Playing with Catalina Beta, I have noticed I couldn't run anything from non-
recognized developers anymore. Not sure it'd be the same in the official
release this month.

~~~
GeekyBear
Just right click the app and pick Open to bypass Gatekeeper and open an
unsigned app.

~~~
pier25
Yeah that has worked since Gatekeeper was introduced. Does it still work on
Catalina?

------
debt
This thread annoys the shit out of me! What are we talking about?! Y’all are
like “man Apple sucks so I develop for Android now”

We only have two options?!? That’s fucked up! This is not at all an okay state
for software development ecosystem!

There’s a virtual monopoly on consumer applications! That’s the actual, real
problem!

~~~
rckclmbr
You realize apple vs microsoft has been a thing for much longer right?

I think more the concern is they own the stores too

------
atarian
I've only developed for Apple's ecosystem for a short period of time, but I
could tell you right off the bat that this idea would have raised a few red
flags during the app review process.

Sometimes we get so married to an idea that we forget to check in with
reality..

------
megaremote
As someone who was there at the beginning of iOS, got in trouble with Apple,
kicked off the store, went from a good income to 0, got back on, got into
Android for this reason, yeah, this sucks.

And as someone who still plugs away at it, I will create a MVP and submit that
to Apple, to make sure they will like the idea of it.

------
thesquib
I've never bothered with the App store on macOS, why do people use it? All the
software I need I can buy, download and run. For now. I can see a future where
Apple turns their laptops into iPads with keyboard, and a mandatory app store.
That will certainly be the day I drop Apple hardware and software forever.

~~~
rgovostes
I know that the apps in the Mac App Store are sandboxed. I trust Apple to
handle my financial information. I know I can download the app on as many
computers as I want, and share the purchase with my family. I can see reviews
before I buy.

Unfortunately, most apps that I use aren't distributed through the Store, and
I sympathize with developers who try to avoid it. Most of the apps that do get
published tend to be really low quality, often repackaged open source
software.

I don't think it's likely that an App Store-only future will come to pass. As
Apple has locked down macOS over the past decade, they've always left an
escape hatch for advanced users. And iOS has been loosening up little by
little.

------
ratsimihah
I started quite similarly, doing native iOS development for a good 5+ years.

Fortunately I started playing with React and React-Native for fun. I landed a
React-Native position 2 years ago doing both iOS and Android, and am about to
switch to a full-stack position, since I also do Django.

The initial idea of owning the whole iOS platform and being able to control
every single API worned out after a few years, and I'm glad to be escaping
that specialized dead-end.

What drives me to develop front-end apps too is that the threshold to get them
into the hands of users is much lower than for apps.

I'd highly recommend you five React-Native a go.

------
esotericn
I don't know if Apple care; they have enough money not to; but this is the
reason I don't, and won't develop for iOS.

Responsive webapps - go for it.

Native code? You're building on someone else's land.

Like, there are endless justifications people come out with, I guess it's
because they really want to develop on iOS specifically, or just want money
(and there's a lot of it out there), but at the end of the day, it's all gone
in a heartbeat and there's literally nothing you can do about it.

I can't even fathom how I'd feel in the author's situation, and not starting
sidesteps the issue entirely.

~~~
mark_l_watson
I certainly agree with you, but both as a developer and as an end user.

As a developer, writing responsive web apps provides decentralization, not
being a slave to a monopoly platform, being able to push frequent updates,
etc.

As an end user, I almost always prefer web versions over native apps. I have a
very small number of iOS apps installed, like a very good Go game, Chess game,
a few development tools on my iPad, and my bank’s app.

On my MacBook and Linux laptops I have open source software development tools
and Firefox.

I hope I don’t sound too political here, but I feel the need to constantly
push back against corporations and uphold my rights as a tiny minority (me!,
not a democrat, republican, vegetarian, whatever). I sometimes choose to be a
paying customer of Google, Apple, Amazon, and Microsoft for services that I
highly value, but they don’t own my loyalty except for a few products that I
am at this time happy to pay them for at this moment in time.

------
mr_toad
This reminds me of the parable of the buggy whip manufacturer. If all your
business is in a very niche market, it can evaporate overnight.

[https://www.nytimes.com/2010/01/10/business/10digi.html](https://www.nytimes.com/2010/01/10/business/10digi.html)
[https://en.wikipedia.org/wiki/Marketing_myopia](https://en.wikipedia.org/wiki/Marketing_myopia)

------
js4ever
"I was thinking of quitting the software industry" ... I had this though
several times the first 10 years of my career then I realized it's foolish and
no other industry have the same benefits (salary, super easy to find a job
anywhere in the world, be my own boss, start several businesses without money)
Also absolutely no one I know in the industry ever left it!

~~~
js4ever
Not sure why I'm downvoted... That's just my personal experience.

------
Gorbzel
Also a F/T developer on Apple platforms for about 10 years. Obligatory
disclaimer been a fanboy (and called much worse things ) for much longer than
a decade. More of the same, was also doing Java-based web dev until the iPad
came out. Heck, I have very similar photos from WWDC and tons of blurry cam of
people’s biz cards I was excited to meet.

Which is why I feel for the guy and hope he solves his burnout problems, but
there’s a tons of misdirection going on here. Once you strip out the inspo
photos…it seems he’s trying to build some sort of CI tool he calls windmill –
sure, fine. Let’s evaluate accordingly…

> I had hacked together a continuous delivery pipeline using Jenkins and
> Apple’s Command Line Tools and I thought there must be a better way to do
> this.

And yet, no real description of what that might be. If you dig into it, he’s
basically trying to automate allowing contractors to sign code using their
customer's code signing certs by having them install something on dev machines
+ build servers. Which is an interesting experiment…EXCEPT that’s 100% against
the terms of the Apple Platforms Development Agreement and the iOS / code-
signing security model.

Apple’s been clear on this for a while now (and seemingly to him): If one
exports an iOS app using dev/ad-hoc profiles, it has to be for limited
distribution among individuals within the same business entity (very manual,
UDIDs, physical connections to Xcode, etc) Or using TestFlight. He never
addresses this, and the HN community is happy to make him the misplaced martyr
of big bad Apple restricting indie devs. Maybe, just maybe, he’s missing the
bigger picture. Why could that be...?

> I had just left my job and I was thinking of quitting the software industry
> too.

Oh.

> Still, I had Windmill to carry me forward. I took a leap of faith and jumped
> into the unknown, being all poetic. Windmill allows me to have freedom of
> expression, be creative

Uhh...poetry is nice, but we were talking about CI. As his target audience,
I'm not looking for tooling that strokes an author's ego about freedom of
creative expression. I am looking for meaningful, well-built utilities. I
expect Apple as the OS vendor and App Store operator to maintain the security
model so I can continue to build software on a robust and secure platform.

> My dedication to see Windmill through and in the process take control of my
> life and destiny. You see, Windmill as I envision it, is more than just a
> Mac app. Literally and figuratively speaking. It’s hard to put this into
> words, no matter how much I try. It’s a vision after all. My dent in the
> universe.

This is exactly why it's a terrible idea to derive self-worth based on a
software project, regardless of what the project is or what platform it's for.
When that happens, it's too easy to avoid level headed introspection and
retrospection on what one is building.

 _tl;dr_ ; Article's author is trying to publish a misguided iOS CI tool to
the App Store. Idea has some big conceptual issues (both UIX and technical
architecture), looks like a bad Xcode + TestFlight clone, liberally rips off
of Apple's dev toolchain IP, etc. When faced with such things, doubles down on
inspospeak rather than accepting the reality check. Now is blaming Apple.

Balance one guy's opinion against the 30+ major iOS
deployment/distro/CI/automation tools & frameworks out there on awesome-ios
alone. Contributors to fastlane, Carthage, CocoaPods, etc are still going
strong and the  dev ecosystem is better for it.

~~~
mkl
Please don't format quotes as code. It disables wrapping and makes them
unreadable, especially on mobile. ">" is clear.

Also, your special character at the end is showing up as a black square.

------
exBarrelSpoiler
 should just go ahead and buy him out, and integrate Windmill's capabilities
into Testflight. They probably will eventually anyway. There was just an
article yesterday about Sherlocking.

------
ryandrake
> I don’t feel motivated knowing what is possible will be subpar, constrained,
> unwelcome, unappreciated and on the bad side of Apple. I feel crippled as an
> Apple Developer to make the best of all available platforms and
> technologies.

In a former life I was an iOS developer, and got my share of App Store
rejections. It's important to not take it personally. A rejection letter from
the App Store is not some personal judgment of your morals, an insult to your
coding ability, or a referendum on how good/useful your software is. It's
simply a notice that as it stands, they won't publish your app through the
AppStore for [reasons]. You can disagree with the reasons, and reasonable
people can debate whether the reasons are fair or not, but you're not some
kind of lesser developer just for getting rejected.

Sometimes you can fix your app to comply with their rules, and sometimes the
fundamental concept of the app is incompatible with AppStore distribution and
you can't. Either way, it doesn't necessarily mean the app is shitty or that
you're "on Apple's bad side."

~~~
rocky1138
No, but it does mean that you are not in control of your own destiny.

