Section 10:
10. User interface
10.4 Apps that create alternate desktop/home screen environments or simulate multi-App widget experiences will be rejected
So, like it or not, it's what we agree to if we develop apps for iOS.
As in, we have no other choice. They could write a clause that said your third child must be named Macintosh and everyone would "agree" to it because there is no other option.
That does not mean it's right.
Consider this: It's the late 1990's and the Terms of Service for Microsoft Windows contains "10.4 Apps that create alternate web browser environments are not allowed".
Microsoft has its pants sued off in court and is almost forced to break up as a company.
I'd argue that Apple has far, far more control that Microsoft ever did, but face no similar consequences for any of their anticompetitive behavior.
That's what upsets me about this.
If we accept that premise, then what's "right" is what builds that user base. You have to take the bad with the good. I sound like a broken record at this point, but there is plenty of history surrounding apps that act as launchers. That singular feature represents a huge overlap with the primary role of the home screen, and the App Store Guidelines clearly spell out that this is a no-no.
Widgets are a new case, because they're not full fledged apps. A widget could not "create an alternate desktop/home screen environment" because it is only a small part of a greater environment itself (Notification Center). However, the intent of guideline 10.4 is pretty clear. Apple wants to control the means by which users launch applications. That goal serves what Apple believes to be the best interest of users. You can disagree with that, but it's not your platform, and you haven't (yet) built a platform upon which millions of dollars are transacted in app purchases every year.
What I'm saying is that Apple isn't exactly clubbing seals here. They're doing what they believe to be best for their platform, and they're doing it in a way that is pretty consistent with past behavior.
I may not agree with the speed limit on the freeway, but I am not surprised if I am ticketed for going over it.
It's a collection of action shortcuts. iOS 8 does something similar when you double tap the home button. It shows recent contacts at the top and tapping one expands into actions such as call or text.
I mean I get it. Apple is King and if you stand too close to the line they play it over conservative and pull you over. But I don't think it breaks the rules you mentioned. It doesn't matter what you or I think though, of course.
I believe the point of the article is that we don't like it. Terms of Service are not the ultimate arbiter of ethics.
Your profile states:
>my AppleTV runs XBMC
Which breaks the terms of your Apple TV software agreement. http://images.apple.com/legal/sla/docs/appletv.pdf
>You may not, and you agree not to or enable others to, copy (except as expressly permitted by this License), decompile, reverse engineer, disassemble, attempt to derive the source code of, decrypt, modify, or create derivative works of the Apple Software or any services provided by the Apple Software or any part thereof (except as and only to the extent any foregoing restriction is prohibited by applicable law or to the extent as may be permitted by licensing terms governing use of open-source components that may be included with the Apple Software).
>BY USING YOUR APPLE TV, YOU ARE AGREEING TO BE BOUND BY THE TERMS OF THIS LICENSE, UNLESS YOU RETURN THE APPLE TV IN ACCORDANCE WITH APPLE’S RETURN POLICY. IF YOU DO NOT AGREE TO THE TERMS OF THIS LICENSE, DO NOT USE THE APPLE TV.
So, like it or not, it's what you agree to when buying an Apple TV. You should probably return or not use your Apple TV
Apple rolls out new features/platform.
Developer forges ahead in gray area (there's history here with apps that launch other apps).
Apple "clarifies" their stance by rejecting said developer's app. (In Apple parlance, clarifying means issuing a firm opinion on their openly stated policy of "we'll know it when we see it".)
Development community cries out.
Apple remains singularly focused; stringently enforcing their policies (even if they are often unclear or inconsistent).
I don't mean to lay the blame entirely at the feet of the developer in this case, but it's hard to argue that there isn't history here. Remember when iOS apps first hit and there were a whole slew of "home screen" apps that displayed things like the weather, calendars, etc? Apple banned all those apps too. The reason given was that Apple doesn't want apps to usurp the home screen. Apple wants to control that part of the user experience, because Apple knows best.
> Instead, Apple is being Apple and aggressively protecting things that do not need to be protected. They do so with inscrutable and nebulous reasons that leave all involved feeling dismayed.
This is purely a matter of opinion. Apple feels that they need to control the user experience. Just read the introduction to the App Store Review Guidelines [1]. Apple's stance is really clear: they control what happens on their platform. They've made some efforts to make the process a bit less lopsided (the appeal board), but it's still crystal clear that Apple holds the reigns.
If, as a developer, you disagree with that philosophy, you have to decide how to best effect change. I would argue that continuing to develop for the Apple platform is about the worst way one can affect change. Proselytizing the developer community is a fool's errand. Look at the case of the larger iPhone. What drove that? Apple looked at the market landscape and decided that they could no longer ignore the trend.
IMO, your best choice as a developer is cast your lot with the platform that best reflects your philosophy.
> Apple rolls out new features/platform.
> Developer forges ahead in gray area (there's history here with apps that launch other apps).
> Apple "clarifies" their stance by rejecting said developer's app. (In Apple parlance, clarifying means issuing a firm opinion on their openly stated policy of "we'll know it when we see it".)
> Development community cries out.
> Apple remains singularly focused; stringently enforcing their policies (even if they are often unclear or inconsistent).
You missed the last step - one iOS version later, Apple copies the killer feature it originally rejected as a misuse of the platform, and makes it its own.
You make it sound like being in a grey area is a bad thing. Most things worth pursuing are probably a little grey in some sense, otherwise they're probably just a 'me-too'. That this app was downloaded so much indicates a strong desire for it. Retrospectively coming up with policies will always create ire.
Sorry but Apple's app store policies are pretty clear in this area. They have also squished tons of similar apps previously (which was well publicized).
Plus according to the article Apple contacted the developer essentially saying "Do X and Y or we'll pull you!" and the developer didn't do X and Y so consequently got pulled. They say the developer "compromised" but the way it is worded I have to assume it was a one-sided "compromise" (as in, he never got Apple's approval before submitting an update that clearly didn't fix the issues raised).
I honestly would have had more sympathy if the article wasn't so manipulative. Now it has just got my back up and I'm more on Apple's side than the developers.
PS - Apple's policies are dumb. I dislike them. I'm all for protecting user privacy and security, but many Apple policies are essentially "don't compete with us!" which is dumb when app installation is entirely voluntary.
10.4 Apps that create alternate desktop/home screen environments or simulate multi-App widget experiences will be rejected
More factual title: "Launcher removed from App Store".
[1] the only apple product I own is a 2nd generation iPod in a drawer somewhere. I still hold myself responsible.
This is why "browsers" like Chrome on the iPad still use the webkit components and it just adds password-management and bookmark syncing on top.
2.17 Apps that browse the web must use the iOS WebKit framework and WebKit Javascript
Computers will just turn into consoles.
To be honest, apple just makes computers that work like consoles.
I tried to do this when I was implementing subscription payments within my app. There are two ways to do subscriptions on iOS, and I wanted to know which one I was supposed to use for my app. The support rep I spoke to said I should go ahead and implement one of them and submit it, and that was the only way to find out.
Turns out I chose the wrong method, and had to re-do a whole bunch of work, which could have been avoided if they'd just give me a straight answer. At least I finally got it accepted - I feel terribly sorry for this guy.
As usual, it's all written in the bible http://www.joelonsoftware.com/items/2009/06/10c.html
"On September 26, Greg submitted what he believed was a valid compromise: The click would take the user to the main Launcher app, and from there the app would call the appropriate action."
It's quite clear that while the code would no longer be launching another app from the widget, the user would experience essentially the same action. That he offered this as a compromise shows that he was deliberately attempting to sidestep the rule.
I agree that the dev thinking it is a "valid compromise" is iffy, but I don't think there was any compromise that would allow his app to stay on the store.
This article is another one of those sensationalized "I know best, Apple is wrong!". I don't doubt that Apple makes mistakes, they are run by humans (for now...), but this definitely isn't one.