Not entirely pointless. As a professional developer, I appreciate not having to support apps across multiple stores. And Apple’s rules have made it easier to explain to clients “yeah ‘sorry’ we can’t do [evil and/or privacy invading feature]. It’s against the App Store rules.”
I totally understand and empathize with the “it’s the user’s device, they should be able to do what they want with it” argument. I just have also appreciated the professional fringe benefits of the walled garden.
I do wish there was some way all the cool apps could run free while the ones we put up with are locked down and restricted even harder. Absolutely no one should install a side loadable version of the Facebook app.
> we can’t do [evil and/or privacy invading feature]. It’s against the App Store rules.
The App Store rules from before sideloading exists will still apply after sideloading exists. Nothing has changed, other than the fact that people could choose to bypass the App Store, and in practice every major app still wants to be on the App Store for maximum convenience.
To wit, sideloading has existed on Android for ages, and nearly all apps still want to be on the Play Store.
People should be allowed to do what they want with their own devices. If you own an iPhone, you deserve to be able to install whatever software you want on your iPhone, end of story.
At the time, they really wanted to pivot from a computer company to a device company after the success they found with iPod. Remember at first they didn't even want to allow 3rd-party apps: that's how device-oriented they were thinking.
The computer landscape in 2007 punted the problem of viruses and inability back on the user. I think Apple's goals when they finally did an app store were to (1) ensure iOs-specific native software (vs crappy ports), (2) prevent viruses and malware, and (3) keep the phone as stable as possible.
I think you could argue that there were other ways to approach those goals, but I think it's harder to argue that preventing side-loading was entirely pointless.
CSS has lots of non-layout-shifting animation techniques - obviously there’s stuff like only changing colours, images, backgrounds, and effects like box-shadow, but things like animating the transform: property are also “layout safe” and very high performance because they’re applied after layout: https://web.dev/animations-guide/
Except developers wanted an API and native apps - careful what you wish for! All the argument over progressive web apps could have been avoided, along with Apple being on board.
As a professional developer you also have to appreciate the possibility that some competition will probably make AppStore a far better experience for developers, instead of a rather broken, restrictive and arbitrary one that we currently enjoy.
Maybe I'm just cynical, but I would not expect a far better experience for anybody with more competition. We have that in a bunch of other areas of tech, and it always ends up being a race to the bottom. You end up only being able to choose between ad and malware riddled garbage or being heavily surveilled, and yet still under the threat of losing everything if an arbitrary algorithm decides it dislikes you. I would expect the same for developer experiences with other app stores, but with less upside because nobody is going to install those other app stores.
I think some competition would be healthy for the App Store. For example, referral systems for iPhone apps are basically impossible to write with Apple's in-app subscriptions: the App Store API only allows two requests per user per year for extending subscriptions, meaning I can only reward users for two invites, but not beyond that. I can only assume this limitation exists to avoid some other loophole, but still, basic referral systems - like Dropbox' "invite a user and get 100mb storage" style - don't work.
Deferred deep linking is also broken. Of course, nobody likes tracking, but referral links also don't work anymore. You used to be able to send someone a single link to install the app and redeem a voucher/discount/special, now you always have to say "install the app, open it (!), then go back here and click this link".
I soooooo hope that this will improve with competition - at least point 1). And my biggest hope is that Apple will fix it in their store because of competition.
The only clients that will want to evade Apples app store in the future will have very specific requirements that Apple doesn't want to promote or be scam apps, so I wouldn't worry about your clients wanting to jump ship. It simply won't be worth it to them to lose the majority of ios users or support multiple deployment avenues.
Have you met "clients"? They might not want to jump ship but I can already hear "Why isn't our app in app store X as well‽". Dealing with 2 stores is already a pain, adding 2-3 more would drive me nuts. Both as a solo dev and for my company.
Yes I've had clients on Android for 14 years now and none of them want to distribute outside of Google Play. There might have been some flirting with the idea of publishing to the amazon app store or samsung app store, but it never happened cause there was no benefit.
I do have one android app that has to be distributed on a separate app store in china but that's out of our hands and has to be passed off to a third party to accomplish anyway.
When you say you "can already hear", what you mean is you can imagine hypothetically hearing it, not that you've actually been hearing it, right? Because multiple app stores already exist for Android and I've never heard anybody say what you're suggesting. People are usually just bewildered at the Amazon appstore even existing.
> Because multiple app stores already exist for Android and I've never heard anybody say what you're suggesting
Ok, but there is a huge difference between iOS and Android. All my clients want it on Android and iOS but they only really care about iOS. iOS is normally the last platform that approves apps (web being immediate/no approval and Play being faster on average) and without fail my clients pretend there is no app until it's released on iOS. I'll even tell them "Go to hxxp://yoursite.com, it's pretty much exactly what you will see in the app" and they almost never even check the web, I know this because once the iOS app is release /then/ I hear "Can we change X? Let's move Y to X! I don't like the color here....".
All that to say: multiple app stores on iOS /will/ be something I hear about whereas I bet I could forget to release on updates on Play and no one (clients themselves at least) would notice.
I would support this if they didn't do the thing like banning original firefox on iOS. This was firefox's greatest moat, a complete browser with extension support
The reason Apple does not allow other browser engines is because JIT has historically been very prone to security vulnerabilities. That is why only Apple is allowed to make anything involving JIT on iOS. And that is why other browser engines, with their own JIT-powered JS interpreters are not allowed.
And Apple's JIT engine has been as prone to security vulnerabilities as any other, diminishing any theoretical benefits to the point they don't matter. Apple clearly doesn't want competing JIT engines because Safari can't compete with Chrome in many ways.
I get the idea behind unifying the browsing experience, but blocking V8 and SpiderMonkey isn't doing the end user any favours. In fact, because Safari is tied to the OS and isn't part of a separate app like on Android, if you find a vulnerability in your browser you have to report it to Apple and wait for an iOS security release cycle. On all other platforms you just push out the patch and your users are secured in a day or two.
> And Apple's JIT engine has been as prone to security vulnerabilities as any other, diminishing any theoretical benefits to the point they don't matter
It matters because first-party (Apple) vulnerabilities can be fixed and rolled out with iOS updates.
JIT vulnerabilities in third-party apps would leave those vulnerabilities up to the third-party developers to patch.
And that is before we even consider the fact that Apple has shown itself resilient against pressure to introduce back doors in iOS. If third-parties were allowed to write their own JITs you can safely assume that those third-party developers will be pressured to implement intentional vulnerabilities in their apps. And some will fold to pressure.
I am happy that Apple does this.
I don’t understand why anyone has an issue with it.
If you don’t like what Apple is doing, then don’t buy Apple products.
Why should those of us who agree with Apple, and buy Apple products because we agree with them, suffer as a consequence of other people not agreeing with Apple?
Because interpreting JS without JIT would drain the battery and make iOS look bad to its users who would not understand that the poor battery time was due to the third-party browser they are using.
Nope, third party browsers used to be unable to use JIT even when using WebKit, and that was back when devices were slower. This meant there were jailbreak tweaks such as this one: http://cydia.saurik.com/package/net.joedj.nitrous/
> Nitro dramatically improves JavaScript performance in web-oriented applications like Chrome/Facebook/Twitter /AlienBlue/Dolphin/Mercury, typically making it 4x to 5x faster.
They changed this in iOS 8, but not many people really noticed even with the slower devices from back then (at least I don't think they noticed that it had been slower)
For every improvement that gets added to browsers, in executing JS faster, web developers will take that extra perf and spend it to do more. The result of that is that only the heavily optimised browsers will be able to deliver the experience that the people expect.
A browser without JIT today, would be a no-go. It would be noticeably slower, and it would drain the battery faster.
https://v8.dev/blog/jitless says that while some benckmarks can be 80% slower without a JIT, real world performance in the YouTube web app is more like 6% slower. To be fair that probably doesn't rely on that much JS, but it would be totally feasible to use a browser without a JIT even with modern web apps. Edge has a secure mode that disables the JIT.
Of course, the proper solution would be to allow 3rd party apps to use JIT, but allowing 3rd party engines without JIT would definitely be better than nothing
Apple fans are very scared about FB going to leave the Store and forcing them to side load it. But this is FUD, Android has side loading and alternative stores and you can find FB apps on google Play.
The facts are
1 the apps of the big bad tech companies are still on the google Store
2 the stores abused their power and pushed big apps out, not to protect the users, but because they might not be puritan enough, or that some legal but not correct speech was happening on that app.
I wish there was some way to have this benefit without the restrictions. I moved to Android because I wanted to run apps that could do cool things but weren't kosher with Apple's rules. I know pretty well what I'm doing and the implications of my decision, so it's not protecting me from anything, it's just robbing me of freedom of choice. But I would never in 100 years sideload the Facebook app. I won't even install it from the Play store.
I highly applaud the recent Play store change now where it explicitly tells you what data can be accessed, how it will be used, if shared with third party, etc. It's helped me avoid some unknowns.
What about some sort of master switch you could flip that would filter out apps based on behavior? Like the default could be something like "App Store rules" but you could override and allow seeing/installing apps that do other things?
Eh, that wouldn't help with the people who want to use Tik Tok. If Tik Tok can tell them to "enable deep spying" to install the app, they probably will. Although, it would penalize them somewhat and it would make it clear to users what they're doing, so maybe it would help? Hard problem for sure.
I'm hoping the side-loaded apps are sandboxed. The facebooks of the world will cheat a bit harder to keep their apps running in the background, but at least I can control who gets access to files, contacts, and location.
And even for apps that I trust 100%, including stuff I personally write, there is exposure to zero days if you do stuff like display images or web content. I'd like the extra safety net of sandboxing.
If such sandboxing doesn't have negative side effects like breaking some legitimate apps, then even apps from the App Store should be sandboxed. Otherwise, even if they're technically allowing sideloading, it's totally unfair and basically useless.
I'm not sure I understand, apps in the store are already sandboxed, which affords me some protection from them. I'd like the same protection from side-loaded apps.
Perhaps relaxing the no-JIT restriction, though. I think I'd be ok with them relaxing that in side-load. It might be fine in normal apps too, since we have lockdown mode to disable it across the board (including MobileSafari) if extra security against zero-days is needed.
Ah, I misunderstood your original comment. I thought you were advocating for sideloaded apps to be subject to an extra layer of sandboxing beyond what App Store apps are today.
Disabling by default but allow sideloading with some disclaimers and warnings seems like a fair compromise, similarly to how Windows will put up barriers and warnings if you try to install software from unknown sources.
The downside is that you don't protect those who enable sideloading and see the warnings when installing Facebook sideload and tap through anyway.
I wouldnt necessarily encourage it, but if its not illegally anticompetitive, and Apple wants to retain control of devices, they could make it where "enable sideloading" disables the Apple App Store, and prevents any app from the Apple App Store from running, including cancelling all subscriptions. If they really wanted to get nasty, they could force a full device reset before going back to Disable Sideloading. The latter part is almost exactly the route Microsoft went with Windows Mode S.
They could let you have your phone in either mode, but refuse to allow "hybrid" App Store + Sideloading configurations.
Imagine if an automaker said "if you ever install a non-OEM part in your vehicle, none of our dealers will ever sell you any OEM parts or perform any service on it." Or if Keurig said "if you ever use a third-party K-cup, you'll never be able to use any of ours in that machine ever again."
Okay, how about "if you ever install any non-OEM parts in your vehicle, none of our dealers will sell you any other OEM parts or perform any unrelated service on it until you pay to have them all re-replaced with OEM ones again?"
"Install our game via sideloading now: Just ignore all the warnings (we promise it's just as secure) and we'll give you $100 of our in-game currency as a thank-you!"
And who would be able to resist? There's even a little shield icon!
The problem with all of these arguments is that literally no one is doing this at any scale on Android where sideloading has existed since the very beginning. There's literally zero reason to believe that if sideloading was allowed on iOS this would suddenly become a problem.
Google has however also been very careful about parity in functionality between the Play Store and sideloaded apps form the beginning.
Only very recently have they started cracking down on third-party in-app payments and subscriptions, and otherwise I think they have basically approved everything that's not either outright malware or illegal, significantly including third-party browsers, VMs and emulators and other things that Apple bans by policy.
I would not say zero. I visited a jailbreak store early on and this is exactly what I saw. However, it was not the developer. The store had pirated versions of popular games hacked to create fake in app purchases. I foresee numerous headaches for developers trying to prevent cheating, piracy or fake purchases.
Fortnite is the biggest example, and still they struggle to encourage installs. People just went to PUBG Mobile instead. Fortnite has the support of the second biggest android stores (Galaxy Store), and still their android revenue isn't great.
Fortnite is basically the only such app with any significant user base, right? So it doesn't make allowing sideloading a bad thing any more than the ZFS-on-Linux situation makes copyleft a bad thing.
I would agree if you can't do it all on the device itself, the unlocking/sideloading initial warning bypass. The idea would be to prevent those who can barely work their phone from "accidentally" enabling sideloading and then downloading some random app off the internet or other app store by accident or being talked through it with a scammer.
Doesn't the Android process still involving tapping 7 times in a row on the build number in the About Device screen? There's definitely ways to create a feature that can't be found accidentally.
Yes that's what they're thinking of (activating developer mode).
Sideloading does require several clicks though. First you download the APK, then you "open" the file in the installer. Then you have to allow "installation from unkown sources," then allow for the app that you downloaded it with (for me that's usually firefox, but for most it's probably Chrome), then you can install it.
Maybe requiring approval from the iOS account that manages the device, signed in to some other device? I'm imagining something somewhat similar to the "ask to buy" feature for child accounts. That could also help with child or elder accounts if they're managed by someone else holding the keys. Downside is not everyone would have someone to manage their account for them.
Sure, vetting apps can be quite efficient at preventing malware.
But if a sideloaded app can do significantly more harm than just visiting a malicious website (which a scammer can already direct a victim to do), maybe the OS is providing too dangerous (or coarsely-controllable) permissions via its APIs?
For apps that are genuine but behave as malware in terms of data collection I'm not sure it will be possible to build walls high enough to keep them out short of regulation, or that currently users aren't already unknowingly accepting those risks. As is for iOS apps while the user can opt out of their IDFA being shared other tracking methods other fingerprinting methods can still be used, Fingerprint.com/demo has a good demonstration. If sideloading stays prohibited I'm not sure what would stop Facebook from migrating to a browser only version.
Over the long term I'm not sure there's a good solution other than legislation arriving at some "acceptable" level of tracking, given how crucial expanding tracking is to social media companies.
No sideloading also means you have to give that high percentage of revenue to apple. You can't avoid that. It's the clear monopolistic behavior that should be legally blocked.
> I totally understand and empathize with the “it’s the user’s device, they should be able to do what they want with it” argument.
More often, that argument seems to be used in bad faith. By that, I mean it comes across as a think of the children fallacy. It's developers wanting their own way ("why should I have to pay..."), and as you highlight, wanting to do things with other peoples devices that they really shouldn't.
Oh, I don't mind the argument itself and empathise with it somewhat, it's the hiding behind "user choice" that I take issue with. If the problem is the $99 fee, which for the actual cost of a signed certificate is quite low, just be honest about it.
Truly this is the most cursed thing. Why can I not even make apps for me and my iCloud family for free? I own all these computers. I pay Apple for a few of their services. Why am I prevented from personal computing and only permitted to use these computers for their paradigm.
But I don't think that this criticism of Apple's model requires alternate app stores (which I have seen first hand can be confusing for some users from the pre digital age). Just a side loading method.
This is the same message Apple should deliver to every senator and judge: “developers are more productive on things that matter - this is the consumer surplus”
I totally understand and empathize with the “it’s the user’s device, they should be able to do what they want with it” argument. I just have also appreciated the professional fringe benefits of the walled garden.
I do wish there was some way all the cool apps could run free while the ones we put up with are locked down and restricted even harder. Absolutely no one should install a side loadable version of the Facebook app.