Yes, I understand why Apple doesn't pull FB/IG/WA/Uber/etc but as a smaller developer it's incredibly frustrating to have the full rules applied to me but not the big players.
A week or two ago I had to fight with app review over some functionality that was behind a login screen (they thought it should be public, I disagreed) and for my pre-permission-request screens (you know, the screen almost every app shows before firing the system prompt). Turns out you can have that screen but you can't ask a question on that screen or offer a way to dismiss and not get the system dialog. That was news to me since I had seen countless "Do you want to enable push notifications (yes|no)?" screens in top apps but that rule has changed and no longer allows you to pre-ask. I complied but the very next day I opened an app from a billion dollar company and I got a pre-ask that I was able to dismiss without popping the system dialog. wtf...
Why am I expected to bend over backwards for app review when these serial abusers get a free pass (no ban AND they can do things smaller apps get slapped down for)?
I know the answer is "money" but I fucking hate it.
> but that rule has changed and no longer allows you to pre-ask. I complied but the very next day I opened an app from a billion dollar company and I got a pre-ask that I was able to dismiss without popping the system dialog. wtf...
Apple enforcement on rule changes has several different options:
a) only applied to new apps
b) only applied on next app submission
c) app will be removed on date unless it's fixed
This sort of change seems likely to be in category A, and then over time will be in category B and eventually the billion dollar apps will get an update denied until they fix it. They may drag their feet a little or a lot first.
Some of the subjective review things will get flagged only sometimes, so you might get through if you resubmit with no changes, or if you only address some of the requests. Inconsistent enforcement is frustrating, of course.
I know this is the case for certain changes such as allowing users to delete their accounts. I remember the new apps/updates being bifurcated with updates being allowed for a few months after it went into effect for new apps but for this system dialog change I'm not aware of anything being said publicly about this, I think the rules just changed internally. My google-fu might be failing me but I can't even find articles about this change. It was news to me (it's in the HIG, not in the guidelines) when we got hit with it and normally I keep abreast of any new requirements/rule-changes and when they go into effect.
I completely understand and agree with the different options you outline but I don't think that was done in this case, at least publically. Please, if I'm wrong and someone has a link to an article about this I'd love to see it/know about it.
That might be a viable path if not for push notifications and the fact that companies want an app more than anything. I've used cross platform frameworks in the past and had the web version up and all I hear is "when app?", even though it's the same codebase, same look, sometimes without even leveraging anything like push notifications or other app-only features. They literally will not even look at the web version. I've proven this over 10+ different companies. I deliver the web version, then I get started on app store hell and only after the app (iOS is all they often care about, at least at the start) is out do they start giving feedback. It's frustrating since they normally have had access to the identical web version for weeks but they just don't care.
I love the web, but users and companies just want apps, and I want to get paid.
Push Notifications will arrive next year. As will one-click install. A PWA can accept payments via Apple Pay. Yes, monetization is more challenging with a web app, but ultimately your value proposition is about how many eyeballs your app has - so the faster you can get to many eyeballs the better.
As for building apps for clients - I find just the opposite to be true. They don't want to be subject to the whims of the review process. They just want to deliver their service to their users.
What users think is not really relevant. They'll use it if they have to or if their friends are using it.
I haven’t tried sending push notifications to iOS over web yet but this should be possible since iOS 16 [1] because they introduced “web push”. According to Apple, it works cross-browser, even if the browser was killed by the user, and you are not required to have an Apple developer account.
That feature isn't coming out till 2023 in a later iOS 16 release. We will see if that moves the needle but like I said in a comment below [0], even when push notifications aren't part of the conversation companies still just wants apps.
It didn't though. Steve Jobs’ vision of simple web applications was realised with the first iPhone. Native applications added to that, they didn’t take it away.
This idea that web applications only “count” if they can send push notifications is bizarre. You know everybody was building web applications just fine without push notifications before 2009, right? And that native iPhone applications didn’t have push notifications either to begin with?
Just because Apple added push notifications to native iPhone applications, it doesn’t mean that all web applications suddenly ceased to be “real” applications because they couldn’t do it yet.
I mean even Jobs turned around pretty quickly on the idea of PWA. I doubt even he championed it after iOS 2+.
I'm still not sure if the PWA push was the plan and they changed to the app store or if it was always something to tide people over. I believe the reporting has said they honestly thought PWAs would be good enough and then reversed course but it didn't take them long before they just went all-in on apps.
All that said I'm not really a "the web should be able to do everything apps can do"-guy, I think the constant permission requests would be incredibly tiring while browsing the web. Though maybe you, as a user, would need to first "promote" or "whitelist" a url before it could even ask. Idk, just sounds like hell.
The problem is that Apple isn't investing in a platform for everyone. As such, they're liable to get their ass whooped by antitrust suits time immemorial until they either -
1. Make the web a suitable platform for application delivery
- or -
2. Allow third-party alternatives to the App Store
Apple doesn't like it. No shit, their shareholders would throw a riot if they abandoned their 80-billion/year cash cow. Unfortunately, that exploitation is a very real consequence of first-party vendor abuse that we shouldn't have allowed to happen in the first place. Microsoft tried making the web into their "App Store" a few decades ago, and they were rightfully sued into oblivion and beaten with rolled-up newspapers. We should have done the same thing to Apple before they became so self-entitled.
If you don't want to use the web for apps, then don't. I'm sure Apple would be happy for you to spend that money on the App Store instead, where they can happily take their cut. But consumers need the option. That's just not up for debate. Apple will kick and scream and make it as ugly as possible, but that's purely because they're facing technologies that threaten their business model as they know it. How long can they continue to do this before the dam bursts?
Interviewer at Generic iOS Contractor Co.: “OK, we’ll hire someone else.”
*Interviewee exits, pursued by a door*
Interviewer: “HR? Yes, please make a note not to offer that candidate any other roles, thanks. Yeah, for some reason they seemed to think their personal preferences were more important than solving our customer needs. Would be a terrible fit.”
Christ on a bike, I was being facetious, but if you tried that argument in a job interview as a reason why the job on offer was inherently wrong I would call security so someone could watch you at all times while making sure you left.
Places which make me feel the way that you’re describing, I don’t even reply to the recruiter.
Drives me nuts that even just websites, like Reddit, push so hard to get you to install their app.
I think it is not primarily related to notifications and telemetry, although that's obviously part of it, or to access to your contacts or whatever, like in the case of FB. My theory is that it's much simpler and dumber than that: that "number of app installs" has simply become a metric that managers can use to promote themselves inside a company, and that companies can ultimately use to sell shares. It's an engagement metric, and since there is no metric for "home screen bookmarks made", there is no way for companies and managers to gamify the web site. Therefore, they simply don't care about the website, except as a means to get you to install the app. It's all a bullshit numbers game.
Because web-based apps don't have a good user experience. Even a web app embedded inside of native app feels bad. Maybe it's something about WebKit specifically that feels bad, but there is a very noticeable difference between a web app and a native app. Part of the issue is the thread model. Touch events come in on the app's main thread, and then those touch events get dispatched on to the JavaScript thread, and then the JavaScript thread needs to dispatch to yet another thread to render. It's just impossible to achieve native-level touch interactions in a web-based app.
And then there is there is the polish level. Apple has spent god knows how long polishing each and every native interaction. All the animation curves are perfect. You lose all of that polish when you build a web app.
It's not for telemetry (at least at the scale/size of companies I deal with). As far as I can tell it's the prestige. I know this because our initial app had no push notifications and the clients who paid for it wouldn't stop asking about an app and didn't even touch the (identical) web version.
Push notifications are part of it for sure but I just wanted to give an example of a case where there were no features that were app-only but all they cared about was the app. I'd say "Yeah, we have that new feature and you can see it at yourbrand.ourcompany.com" and they'd say "Ok, when will we have an app?", felt like I was taking crazy pills but I've seen this exact same conversation repeated at multiple companies, multiple clients. And lest someone thing this is a subdomain-related thing, it's not, I had the same questions when we setup the web version at theirdomain.com.
AFAIK this is a bunch of the most common reasons, somewhat ordered from most-important to least-important.
1. It puts an icon on your phone's home screen which reminds you it is there and encourages reuse.
2. They can put notification counters on said home-screen icon.
3. It is generally easier to convince people to enable notifications on the app than on the website.
4. User perception. Some users expect an app and look down on a website. (Even if functionally identical)
5. Blocking ads on websites is much easier than blocking them on mobile.
6. It can provide better tracking and analytics.
7. The app can provide a better experience.
7a. The ability to pre-download the application makes it less costly to provide more features and code. The just-in-time downloading of web applications means that the size of code, data and resources generally needs to be more carefully considered. Of course you can do careful code loading for webapps but it requires custom code instead of being managed by the store.
7b. Native apps generally have access to more APIs especially without needing to request special permission (contacts, device sensors, large amounts of storage, etc)
7c. Access to native UI toolkits can make the application fit into the expected UX better.
Apps are easier to use than a browser. The flow of installing an app from the app store, and having an icon on the home screen, makes a lot more sense than opening a browser and navigating to a URL.
Also, an app is there, with an icon on the home screen to remind the user of its existence. I think this makes future use more likely than if the user just entered the address, and even more than with a bookmark that is visible only in the browser.
I know the users can create the icon themselves by saving a bookmark to the home screen, but for some reason they seem not to.
I've switched to working on other kinds of apps, more rich desktop kinds of apps. I enjoy this a lot more too since most mobile apps are pretty dumb and gimmicky.
Of course if you're doing client work you have to build what your clients are asking for and yeah the web is not a substitute for native in all cases.
It seems that the golden age of apps is comming to an end. One of my many apps gets banned daily by Google due to some silly rule interpretation, which among them include what seems to be punishment for using an ad provider different from AdWords or whatever they call it now.
Right but that was just their enterprise cert and didn't affect their big apps, only internal apps and their gross VPN apps (which they were distributing via enterprise cert to get around app review).
> Turns out you can have that screen but you can't ask a question on that screen or offer a way to dismiss and not get the system dialog. That was news to me since I had seen countless "Do you want to enable push notifications (yes|no)?" screens in top apps but that rule has changed and no longer allows you to pre-ask.
We regularly (multiple times per month) launch new applications in new Apple developer accounts where we present a screen explaining what notifications we send and two buttons, one of which says “Notify me” that triggers the system permissions prompt, and one of which says “Not now” and continues without triggering the system permissions prompt.
I’m not sure of the precise difference Apple sees between what you are doing and what we are doing, but this is not a roadblock for us, so perhaps copy that approach more closely and Apple will relax a bit?
I'm in the exact same boat as you. It's a whitelabel app that we have launched many times in the past on new Apple Developer accounts but we just randomly got hit with this. Our screen also said "Enable Location" or "Not now" but that wasn't satisfactory. If you look at the "Pre-alert screens" section of this HIG document [0] you will see even your way of doing it isn't allowed but with all things app review, it's a game of roulette if the reviewer notices/cares. I've run into this before where I set up 2 apps within days of each other, different accounts, same core base base, and one gets dinged in review and the other doesn't.
I've shipped new apps that didn't have the ability to delete user data well after Apple's deadline and some sneak through ("sneak" but I wasn't trying to sneak, I just forgot to add it to one of my apps, I quickly added it in the next update so I didn't run into a brick wall later if they noticed) and some are caught.
I have to admit my bias up front -- as a user, I hate pre-alert screens in general. But this wording:
> Our screen also said "Enable Location" or "Not now"
is one of my pet peeves. It's that "not now" that does it for me. The lack of a "No" option, and having a "not now" option, is a big red flag to me. At best, it's just manipulative. At worst, it hints that I'm going to keep getting asked about it over time.
Either way, it's removing the ability to say "no", which feels scummy.
Exactly this thing triggers me as well. If you have "Not now" option, give us "Not ever" option as well. Or have you ran out of buttons?
Same with "No, thanks" button on dialogs that are expected to be denied most of the time (plz subscribe to our newsletter). Sometimes I wish there would be a "No, f*ck off" button next to it, but I feel it's kinda the developers loss for not willing to collect sentiment feedback. Or just give me "No" button, but I am not thankful for being forced to dismiss your nagging.
It’s understandable to feel that way, but it tells the user that this decision doesn’t have to be permanent and makes it easier to say no if they aren’t sure. Remember that if you say no to the system permissions prompt then it can’t be shown again, and this is embedded in a lot of people’s brains – “use it or lose it”. “Not now” is a way of taking the pressure off to stop them getting stuck on that screen, and also pretty idiomatic at this point.
Apple are definitely inconsistent in how they apply their rules but we’ve never had to tweak this screen as far as I know, across several hundred applications. Maybe it was a one-off?
In my experience, Apple don’t really reject things based on the HIG any more. Last time they did for me was back in 2008. If they rejected things based on the HIG, they’d reject almost everything – look at how many applications abuse launch images to show a splash screen, for instance.
Agreed. I supported a relatively large retail app (about a million users) with a team of 5-8. Apple review process was always a risk. I've had times as well where my submission was denied, but in the appeal process would point to a larger app that did the same thing and it would rarely help.
The reply I got when I pointed at other apps was "Please file a report via the App Store, other apps not following the rules doesn't give you a free pass". :rolleyes:
I also once got told (on the phone with a reviewer) that I couldn't say
Allow "My App" to use your location?
In the title of the permission dialog because I was "leading" the user to allow. Never mind that the title of that dialog is system-generated and you can only edit the description that shows underneath. I went 3-4 rounds with the reviewer saying I didn't control that while they insisted I did/could. I finally gave up, made 1 other change they requested, then resubmitted and it went through. Reviewer roulette sucks.
I know you are trying to be helpful but I can't stop laughing. There are no "relevant authorities", it's Apple/Google's way or the highway. Even if there were "relevant authorities" I don't have the funds/time to buy the justice I want.
I just got back from a trip were I was visiting a lot of older relatives and everyone of them now has a iPad that about 40-70% of their usage is FaceBook. In a battle between Apple and Meta I honestly wonder who would blink first but my money would be on Meta. Apple has already made their money and the primary FaceBook audience isn't rushing out to buy a new iPad every year, where as losing complete access to the Apple market would immediately have a huge impact on Meta's bottom line.
Counter argument - small apps _usually_ have much more trackers, coming from many different sources. As a result, your data is syphoned to many dozens of entities, and each of the faces less scrutiny than FB/IG.
Small apps should face less scrutiny than billion dollar companies. It's much easier to regulate Segment, Google and Facebook than doing it to every small business in America.
From regulations point of view - sure. Which is also the reason why big tech is general better with privacy, as weird as it may sound.
If you care about privacy, small apps are much more dangerous (on average of course).
Have you seen data practices from smaller data brokers vs big tech?
Big tech uses your data, but they try to protect it (with various levels of success), as it’s more valuable to them. Small data brokers literally sell everything (and not like big tech, where they sell you services that utilize it, but raw data) they can, directly, to anyone.
That sounds like what Google's PR department would say, right before their lobbying arm turns around and promotes a data privacy law that absolutely obliterates citizen rights. The smaller data broker can't afford the privacy-compromising lobbyist department, so I would still rate them less dangerous for privacy overall. I'm not even sure the big companies do a better job, it's certainly more damaging when it goes badly (e.g. Equifax)
> or offer a way to dismiss and not get the system dialog.
I wish it was applied fairly, but I am thankful for that rule, because it reduces the amount of “soft requests” where the app will continue to pester me relentlessly about enabling access to my contacts or something
I see both sides here. It'd be different if I didn't hear from clients/users about how they can't get push/location/etc feature to work only to find out they dismissed/denied the initial request. I have code I move from project to project to handle the soft-request and to handle the "you denied the system request, let me guide you to where you need to go in settings to fix this". Turns out my soft-request code goes against the rules (ok, that's fine, I just with it was constant) so I'll remove that but getting only 1 try to request is rough (though I agree it would be worse if apps could request that an unlimited number of times). I don't know what the good middle ground is here, maybe 1 request is the middle ground.
I actually specifically decided not to start any app companies because of the risk inherent with being on the App Store. Apple wield their power to heavy handidly. I’ve been affected by it at my last couple of jobs where apple just stonewalls or otherwise makes a complete mess of trying to get something in the App Store. It’s too much platform risk. They’re starting to push innovators away.
Imaging myself getting the same treatment as Facebook - as an indie dev, I prefer my app to get rejected rather than deal with a lawsuit of that magnitude. Complying with App Review guidelines is a small effort, after all.
> Removing text seems like an incredibly minor change request.
Can you expand on this? I'm not exactly sure what you mean. To clarify, I had 2 issues:
* App review thought part of my app should not be being a login screen, the data on this screen was fetched via our API was was authenticated (not a super easy change to expose that and we don't expose it to unauthed clients on purpose.
* Our app asked the user if they wanted to allow location access to see nearby stores on our map page (only asked when they went to the map page). We didn't pop the system dialog unless they agreed first to our own permission prompt (since you can only pop the system dialog once). This is against the rules now, which is fine, my frustration stems from continuing to see this practice everywhere.
> This is against the rules now, which is fine, my frustration stems from continuing to see this practice everywhere.
This kind of sounds like being mad that the cop pulled you over for speeding, despite everyone else also speeding. I know it sucks and it feels like you're being singled out, but generally "everyone else is breaking the rule, too" has never been convincing to rule enforcers.
I worked at a company that always tried to walk the line right up to the edge of Apple's rules, and unsurprisingly kept running into trouble with app reviews. The company kept wanting to dig in and fight because "our_competitor does the same thing". My advice was always that it's pointless, and we'd be better off just concentrating on our app and fixing it.
At this point in my career, I almost feel like I could make money simply being an "AppStore Rules Consultant" who flies into a company, says "Just Do What Apple Said In Their Message!" and take home my fee.
> This kind of sounds like being mad that the cop pulled you over for speeding, despite everyone else also speeding.
It's a little closer to being pulled over in a Honda Accord with 200K+ miles on it going 71 in a 70 zone while Tesla's and BMW's fly by at 90+. Also those Tesla/BMW owners have had hundreds of tickets but somehow keep their licenses.
Yes, I know this is actually probably completely/near accurate to the real world, money runs everything, but it doesn't mean I have to be ok with it. I'm not advocating I should be allowed to "speed", just that it's frustrating to be the only one getting pulled over with (ok, I've stretched this metaphor as far as I can stand) a tiny dev team while billion/trillion dollar companies, for which my entire team is less than a rounding error, get away with murder.
The problem is that the rules are enforced differently based on the reviewer you get, and how s/he feels that day. This is blatantly obvious after time dealt with reviewers for more than 3 submissions.
So that cop who pulled you over? Did he have a bad day with his wife that morning? You’re getting a ticket. Tomorrow? Possibly not.
> This kind of sounds like being mad that the cop pulled you over for speeding, despite everyone else also speeding. I know it sucks and it feels like you're being singled out
It's different when every single app gets a review and these behaviors can be controlled at a bottleneck.
Your analogy is more apt if Apple decided they would only display websites that did X. And websites might pretend to do X for a little while, and then quit. And there's billions of them, not enough enforcers, and no simple bottleneck where they pass/fail BEFORE being released.
It might be if your only language is English. If not, it requires going back and getting translations done again. And it's not necessarily as easy as just removing the offending text. Text is very contextual, and the removal of some text might necessitate changing other text.
I'd not want to suggest that something is "minor" in a system I'm not familiar with.
A week or two ago I had to fight with app review over some functionality that was behind a login screen (they thought it should be public, I disagreed) and for my pre-permission-request screens (you know, the screen almost every app shows before firing the system prompt). Turns out you can have that screen but you can't ask a question on that screen or offer a way to dismiss and not get the system dialog. That was news to me since I had seen countless "Do you want to enable push notifications (yes|no)?" screens in top apps but that rule has changed and no longer allows you to pre-ask. I complied but the very next day I opened an app from a billion dollar company and I got a pre-ask that I was able to dismiss without popping the system dialog. wtf...
Why am I expected to bend over backwards for app review when these serial abusers get a free pass (no ban AND they can do things smaller apps get slapped down for)?
I know the answer is "money" but I fucking hate it.