Software developers can’t build on a foundation that is constantly, capriciously shifting. This on top of the App Store's already-onerous restrictions and the fact that it’s the only practical way to get your software on one of the world's largest computing platforms has already engendered a deep antipathy [1] among Apple developers, and there are no signs it’s getting better. Something has to give.
I believe it is sustainable if you're willing to burn through disposable 3rd party developers.
From my experience, it always follow the same path. Some promising developer gets infatuated with Apple's supposed ease of use and looks at the shiny aggregate numbers like $155 billion paid out to developers. Said developer jumps through all the hoops and builds a great app. Users love it, but since competition in the app store is insane, the developer barely makes back his/her initial investment. Then Apple changes the APIs and rules, the app becomes unusable and/or expensive to maintain and over time the developer burns out and gives up. Thus, there's now an opening for the next promising developer to start building an app.
As long as Apple doesn't run out of new developers happy to join the App Store, they can treat their 3rd party "partners" as badly as they want. It's kind of the same power dynamic that makes sure that hair saloons all over the world treat their employees badly.
They can build on it... developers have been building on it for years and making money doing it.
Don't make an app that allows users to run unapproved software. I think that's a pretty clear rule.
If your app makes money (directly or indirectly), pay Apple whatever portion of your revenue that Apple demands. I also think that's a pretty clear rule.
If there's something that should obviously be regulated out of existence, it's allowing them to use terms like "buy", "own", etc. for platforms that you clearly do not control. You are renting the software and the device just comes with it.
iOS developers have made over a half a trillion dollars over the last decade on this unsustainable, constantly shifting foundation that they hate so much.
Makes you wonder why they bother ? Maybe it's because the very rules you say developers hate are the ones users find appealing.
> Software developers can’t build on a foundation that is constantly, capriciously shifting
I have few empathy for these developers. They voluntarily accepted (and thus, promoted) Apple's obviously callous store conditions. They essentially agreed to play lottery with their work. Whatever bad happens to them, they had it coming.
Seems more like they built an application which violated the App Store rules from the beginning and now want an exception carved out for them “because Linux” or something. Emulating a whole system that itself follows none of the apple walled garden restrictions is a recipe for failure.
Do you want to make money building software, or do you want to see how far you can push Apple’s patience by building software that breaks clearly defined AppStore rules?
Hi, Saagar from the iSH team here. We received a call from someone who runs App Review at Apple earlier this evening. They apologized for our review experience, telling us that they've accepted our appeal and that they will not be removing iSH from sale tomorrow. We'll work out the details with them in the coming days.
A huge thanks to all of you for your support of iSH!
I’m happy for iSH, and I have no doubt Apple reversed their stance because the community has been so vocal about this. I feel for all the small devs who has apps removed from the App Store for similar reasons and never had a chance to fight.
Everything is done with "security" as an excuse because it's hard to argue against[1], but I think people are slowly starting to see through that. Apple wants to control every aspect of your life, and if you let it, it will. I wonder whether those who work at Apple and are responsible for doing such things really understand the implications, and whether they agree with it...
It's sad. I'm a Linux diehard, but during the pandemic I considered buying an iPad to SSH into my office workstation, browse the web, etc. as I got stuck in an awkward accommodation.
Hardware is great, but the keyboard lacks a dedicated ESC, and I was quite uncomfortable with the fact that terminal apps seem like second rate citizens / not well liked by Apple.
IMHO, there's a lot of untapped potential in the iPad as a programming device if Apple was more reasonable. The alternative Android tablet ecosystem, unlike phones, is total a mess. Samsung has a lot of nice offerings, but software is mediocre and they seem to be really unfocused.
I eventually ended up getting a Surface Go, which is quirky is some regards, but supports Linux really well and is a real computer, not a locked appliance.
Same here. I run Termux on my Pixel, but I also have an iPad and was really excited to when I installed iSH. I hoped their initial approval of iSH meant that Apple was becoming more liberal.
Hell, I was even wondering if this would make it conceivable for me to switch back to an iPhone at some point if I became unhappy with Android.
I just categorize iOS devices as consoles, analogous to things like Nintendo game systems, and not as true general purpose computers.
I also consider it foolish to attempt to innovate on this platform beyond the narrow confines of what mobile devices typically do, or to put too much engineering work into iOS specific stuff. Apple can and will simply revoke your app for fickle reasons. iOS is a pretty dumb term for cloud apps and the web, and that’s it.
That being said I do have an iPhone... because for my phone that’s all I want and it works well and has better privacy than most Android devices. I basically want web, email, texting, calls, and maps, and maybe occasional apps like Uber or whatever. I don’t use it as a “real computer.” I have a real computer for that.
Same. With Termux I was able to set up a rudimentary Node.js dev environment on my device - useful for showing people stuff I was working on which wasn't published.
The reviewer that reinstalled the package manager with wget is my favorite part of this whole debacle.
The reviewer could in theory reimplement an os in python or javascript in one of the already approved scripting applications. Then implement apt-get or another package manager and install all sorts of dangerous codes!! /s
Yet another example of apple's ongoing control freakery. I wonder how many incidents will be required before those who rush to defend them every time get it?
Apple tolerate app store developers as a necessary evil. If they could develop all of their own apps they would.
As with suppliers, as with stores, as with everything they would gladly prefer to do it all themselves and give zero access or share the slightest collaboration with anybody.
They are utterly ruthless in this regard and will continue to be for as long as they exist. This includes doing bad and nasty things as well as those the apologists can more readily rationalise.
I am a little surprised anybody takes risks in this arena. Of course for $$$ apps that trivially fulfil apple's arbitrary rules (for now) the potential payout justifies it but for free/open source apps why risk the pain?
For a company that happily generates colossal margins by using the effectively slave labour of a totalitarian state which puts people in concentration camps and disappears political opponents them being unethical/inconsistent in the app store seems very unsurprising. Even in western countries they happily bankrupt suppliers after poaching all their staff. Yet there appears to be shock when they do things considerably less evil... Strange to me.
> Soon after we released iSH without apk, we found users who had figured out a way to get apk back using wget and were posting about this throughout the internet. We suspect this was the reason why our rejection notice mentioned wget specifically
As the writer of one of the links in that sentence, I almost feel bad for making the post I did. Almost. If I hadn't someone else would have, clearly. I'm not some super hacker that discovered a hidden backdoor here.
It's frustrating, to say the least, that Apple won't let me do what I want with hardware I own. Yep, I know it's a long standing issue, and I'm not the first one to have this gripe, but this sort of nonsense is why I'm moving away from the Apple ecosystem. Once you piss off your power users, I wonder if the ecosystem will survive for long.
Then again, maybe I'm just having a "get off my lawn" moment, and Apple is on the right path. I'm not clairvoyant, I just want to have a nice Mosh client that can run a Python script to find an IP and open a firewall hole. But nope, that's evil scripting, I guess.
> Then again, maybe I'm just having a "get off my lawn" moment, and Apple is on the right path.
No, you are not wrong, and they are not on the right path, except maybe for themselves.
They have no right at all to tell people what they can and cannot do on devices that we paid for, and it's damned time that antitrust regulations somewhere forced them to allow sideloading and alternative app stores.
This is one thing that I hate the most about IOS. I like the polished look and the usability. To be completely honest, I don't need to have a shell running on my phone. I'm not going to write a shell script to automate anything on the tiny screen of my iPhone 8. iSh is an emulator anyway! But, like many other curious users, I don't want to lose the ability to do it. Especially when the hardware is a lot more capable that what the OS supports. I understand that Apple does it for "security" purposes!! They should at least enable this on iPad OS. May be warn the users about the "perils" of "foreign code'! I've been using iSH since the TestFlight days. I played around and downloaded packages. Even downloaded Perl! Now that's gone. I can sideload it using Xcode, but not everyone has a Mac to do it.
>The nature of iSH meant that this problem was fundamental, as users can always add back functionality that we remove.
That's the point, isn't it? When I had an iphone, I always understood that there are no local terminal apps because apple banned them. They shifted the rules slightly since then to make it easier to make apps for teaching programming, but the goal was never to make generic dev environments. When I heard about this app, I assumed there had been a fairly fundamental change in the sorts of apps apple allowed. It seems like no such change occurred - apple just didn't notice what the app was doing until after it was released.
Good on the iSH people for giving it a shot. I doubt they'll break through the apple wall, but there's always a chance.
it isn't really a local shell. As they describe it, it's an x86 interpreter, and therefore all of the code you run is sandboxed and isolated from the OS the same way as a Python interpreter would be. Python would let you make a network request, pull code down, and exec() it, so this doesn't really seem that different.
Don’t build software for Apple devices. It’s a pretty straightforward solution.
Apple has shown time and again that they’ll crush your project/business in an instant without recourse or a second thought.
Nothing on the App Store, regardless of whether it complies with Apple’s policies currently or not, has any guarantee it won’t be disappeared tomorrow for non-compliance when the wind blows in a different direction (like any number of parental control apps prior to Screen Time).
This year I build qoob, an app to interact with an IOT electric scooter parking. In August I had the MVP ready, we build 2 prototypes and could save and charge scooters of all voltages in office halls.
The project is not my main job, so time is precious.
I was asked to create a new functionality: Allow companies to buy and borrow e-scooters between company employees.
But what happened is that I had to implement Apple Login, since FB and Google did work already.
Who should I take care off? Apple or the customer/users?
Is it optimal to prioritize the Apple Login, that nobody requested?
I don't care about monopoly persse, I'm concerned because it doesn't let me be user-centric, consumer-centric.
(and I can't leave apple, because I can't leave my users)
I don’t know, it’s not like these compete with a true *nix userland or Xcode really (since Apple can get 100x or more performance than the emulator that iSH is forced to use due to the sandbox restrictions). It seems like they are more concerned that Microsoft can say “No Game Pass? But I can download Tux Racer on iSH!!1!” which doesn’t look awesome to a judge.
I’d love to be wrong. Every time I think about buying an iPad keyboard I get cranky that I can’t run brew and CPython (or shoot, Swift outside of the subset in Playgrounds) and everything else I can on a real Mac.
There are at least two reasons that Apple tries to prevent tools like iSH. In order of what I suspect is their motivation:
1. Users can be foolish or even tricked into installing apps and entering commands. If iSH provided a possible attack vector, these kinds of users would get bitten (and they would complain about weak Apple security). As Apple really does seem to be making a strong effort on security (and privacy, it appears?), losing a few useful apps and a few users is worth the trade.
2. This is a bit more of a stretch, but for various reasons Apple wants to control the macos/ios development process. Whether it's to force developers to own Mac computers (when xcode could probably run quite well on iPad Pro...), or to perhaps guarantee a more consistent outcome (which ultimately should affect the users in a positive way, or at least a less negative way), Apple wants to control the process.
I will say it again. The one thing Apple will try to defend is the concept of an app/container. I wrote a similar comment supporting their actions with video game streaming platforms the other day[1]. Any app that creates some kind of a wedge into another kind of app/container ecosystem is not going to fly. I do believe this will get solved by having a store within a store model. It just means all the packages/apps that are run from within the other platform will need to have some kind of listing/metadata shared and controllable in some fashion by Apple. The interesting thing will be the relationship with devs. Does Apple need to have a direct one or not?
is this a literal statement where some human from Apple called on the telephone to speak to someone about this situation, or is this a phrase that actually means they received an email notification about the situation? I ask because it seems well outside the norm of no-human contact regarding support from FAANG companies.
[+] [-] mortenjorck|5 years ago|reply
Software developers can’t build on a foundation that is constantly, capriciously shifting. This on top of the App Store's already-onerous restrictions and the fact that it’s the only practical way to get your software on one of the world's largest computing platforms has already engendered a deep antipathy [1] among Apple developers, and there are no signs it’s getting better. Something has to give.
1. https://news.ycombinator.com/item?id=23580762
[+] [-] fxtentacle|5 years ago|reply
From my experience, it always follow the same path. Some promising developer gets infatuated with Apple's supposed ease of use and looks at the shiny aggregate numbers like $155 billion paid out to developers. Said developer jumps through all the hoops and builds a great app. Users love it, but since competition in the app store is insane, the developer barely makes back his/her initial investment. Then Apple changes the APIs and rules, the app becomes unusable and/or expensive to maintain and over time the developer burns out and gives up. Thus, there's now an opening for the next promising developer to start building an app.
As long as Apple doesn't run out of new developers happy to join the App Store, they can treat their 3rd party "partners" as badly as they want. It's kind of the same power dynamic that makes sure that hair saloons all over the world treat their employees badly.
[+] [-] yakz|5 years ago|reply
Don't make an app that allows users to run unapproved software. I think that's a pretty clear rule.
If your app makes money (directly or indirectly), pay Apple whatever portion of your revenue that Apple demands. I also think that's a pretty clear rule.
If there's something that should obviously be regulated out of existence, it's allowing them to use terms like "buy", "own", etc. for platforms that you clearly do not control. You are renting the software and the device just comes with it.
[+] [-] threeseed|5 years ago|reply
Makes you wonder why they bother ? Maybe it's because the very rules you say developers hate are the ones users find appealing.
[+] [-] tyingq|5 years ago|reply
[+] [-] heavyset_go|5 years ago|reply
This is the conclusion that I came to, as well, as a developer of several open source utilities for Macs.
Apple has fostered an ecosystem that is hostile to developers, but infinitely beneficial and profitable for Apple.
It isn't worth the time investment when the rug can be pulled out from under me if Apple figures that they might benefit even slightly from doing so.
[+] [-] enriquto|5 years ago|reply
I have few empathy for these developers. They voluntarily accepted (and thus, promoted) Apple's obviously callous store conditions. They essentially agreed to play lottery with their work. Whatever bad happens to them, they had it coming.
[+] [-] burrows|5 years ago|reply
If the current crop of developers leaves the platform then another crop will take their place.
[+] [-] BuzzwordBingo|5 years ago|reply
[+] [-] xwdv|5 years ago|reply
This is not hard.
[+] [-] saagarjha|5 years ago|reply
A huge thanks to all of you for your support of iSH!
[+] [-] xuki|5 years ago|reply
[+] [-] unknown|5 years ago|reply
[deleted]
[+] [-] userbinator|5 years ago|reply
https://boingboing.net/2012/01/10/lockdown.html
Everything is done with "security" as an excuse because it's hard to argue against[1], but I think people are slowly starting to see through that. Apple wants to control every aspect of your life, and if you let it, it will. I wonder whether those who work at Apple and are responsible for doing such things really understand the implications, and whether they agree with it...
[1] Except with that classic Franklin quote.
[+] [-] thesuperbigfrog|5 years ago|reply
I wish iSH the best of luck, but I will stick with Termux (https://termux.com/) on Android for now.
[+] [-] nextos|5 years ago|reply
Hardware is great, but the keyboard lacks a dedicated ESC, and I was quite uncomfortable with the fact that terminal apps seem like second rate citizens / not well liked by Apple.
IMHO, there's a lot of untapped potential in the iPad as a programming device if Apple was more reasonable. The alternative Android tablet ecosystem, unlike phones, is total a mess. Samsung has a lot of nice offerings, but software is mediocre and they seem to be really unfocused.
I eventually ended up getting a Surface Go, which is quirky is some regards, but supports Linux really well and is a real computer, not a locked appliance.
[+] [-] cute_boi|5 years ago|reply
This is what we get from monopoly.
[+] [-] Valkhyr|5 years ago|reply
Hell, I was even wondering if this would make it conceivable for me to switch back to an iPhone at some point if I became unhappy with Android.
Of course, deep down I knew it could not last.
Seriously, f* Apple, and f* the App Store.
[+] [-] api|5 years ago|reply
I also consider it foolish to attempt to innovate on this platform beyond the narrow confines of what mobile devices typically do, or to put too much engineering work into iOS specific stuff. Apple can and will simply revoke your app for fickle reasons. iOS is a pretty dumb term for cloud apps and the web, and that’s it.
That being said I do have an iPhone... because for my phone that’s all I want and it works well and has better privacy than most Android devices. I basically want web, email, texting, calls, and maps, and maybe occasional apps like Uber or whatever. I don’t use it as a “real computer.” I have a real computer for that.
[+] [-] Tade0|5 years ago|reply
[+] [-] kmeisthax|5 years ago|reply
Also Apple: how dare you make a sandboxed shell environment for it
[+] [-] gorkish|5 years ago|reply
Apple wont change until they are forced.
[+] [-] raverbashing|5 years ago|reply
And I might add. Until you are able to develop an iPad app in itself, it is not replacing "a real one"
[+] [-] saagarjha|5 years ago|reply
Theodore on how the App Review process could be improved: https://tbodt.com/2020/11/08/app-review-experiences.html
Ramblings I wrote on why I believe the guideline iSH was pulled under was incorrectly applied and needs to be rewritten: https://saagarjha.com/blog/2020/11/08/fixing-section-2-5-2/
Related, a-Shell got a similar notice: https://twitter.com/a_shell_ios/status/1325526061099196416
[+] [-] harrisonjackson|5 years ago|reply
The reviewer could in theory reimplement an os in python or javascript in one of the already approved scripting applications. Then implement apt-get or another package manager and install all sorts of dangerous codes!! /s
[+] [-] flamtap|5 years ago|reply
[+] [-] unknown|5 years ago|reply
[deleted]
[+] [-] barnacled|5 years ago|reply
Apple tolerate app store developers as a necessary evil. If they could develop all of their own apps they would.
As with suppliers, as with stores, as with everything they would gladly prefer to do it all themselves and give zero access or share the slightest collaboration with anybody.
They are utterly ruthless in this regard and will continue to be for as long as they exist. This includes doing bad and nasty things as well as those the apologists can more readily rationalise.
I am a little surprised anybody takes risks in this arena. Of course for $$$ apps that trivially fulfil apple's arbitrary rules (for now) the potential payout justifies it but for free/open source apps why risk the pain?
For a company that happily generates colossal margins by using the effectively slave labour of a totalitarian state which puts people in concentration camps and disappears political opponents them being unethical/inconsistent in the app store seems very unsurprising. Even in western countries they happily bankrupt suppliers after poaching all their staff. Yet there appears to be shock when they do things considerably less evil... Strange to me.
[+] [-] banana_giraffe|5 years ago|reply
As the writer of one of the links in that sentence, I almost feel bad for making the post I did. Almost. If I hadn't someone else would have, clearly. I'm not some super hacker that discovered a hidden backdoor here.
It's frustrating, to say the least, that Apple won't let me do what I want with hardware I own. Yep, I know it's a long standing issue, and I'm not the first one to have this gripe, but this sort of nonsense is why I'm moving away from the Apple ecosystem. Once you piss off your power users, I wonder if the ecosystem will survive for long.
Then again, maybe I'm just having a "get off my lawn" moment, and Apple is on the right path. I'm not clairvoyant, I just want to have a nice Mosh client that can run a Python script to find an IP and open a firewall hole. But nope, that's evil scripting, I guess.
[+] [-] Valkhyr|5 years ago|reply
No, you are not wrong, and they are not on the right path, except maybe for themselves.
They have no right at all to tell people what they can and cannot do on devices that we paid for, and it's damned time that antitrust regulations somewhere forced them to allow sideloading and alternative app stores.
[+] [-] teruakohatu|5 years ago|reply
[+] [-] jp0d|5 years ago|reply
[+] [-] jacquesm|5 years ago|reply
[+] [-] syrrim|5 years ago|reply
That's the point, isn't it? When I had an iphone, I always understood that there are no local terminal apps because apple banned them. They shifted the rules slightly since then to make it easier to make apps for teaching programming, but the goal was never to make generic dev environments. When I heard about this app, I assumed there had been a fairly fundamental change in the sorts of apps apple allowed. It seems like no such change occurred - apple just didn't notice what the app was doing until after it was released.
Good on the iSH people for giving it a shot. I doubt they'll break through the apple wall, but there's always a chance.
[+] [-] enragedcacti|5 years ago|reply
[+] [-] headmelted|5 years ago|reply
Apple has shown time and again that they’ll crush your project/business in an instant without recourse or a second thought.
Nothing on the App Store, regardless of whether it complies with Apple’s policies currently or not, has any guarantee it won’t be disappeared tomorrow for non-compliance when the wind blows in a different direction (like any number of parental control apps prior to Screen Time).
[+] [-] zepto|5 years ago|reply
I wasn’t aware iOS actually provided enough low level access for 3rd parties to develop anything like that.
[+] [-] kimsant|5 years ago|reply
The project is not my main job, so time is precious.
I was asked to create a new functionality: Allow companies to buy and borrow e-scooters between company employees.
But what happened is that I had to implement Apple Login, since FB and Google did work already.
Who should I take care off? Apple or the customer/users? Is it optimal to prioritize the Apple Login, that nobody requested?
I don't care about monopoly persse, I'm concerned because it doesn't let me be user-centric, consumer-centric.
(and I can't leave apple, because I can't leave my users)
[+] [-] zmk5|5 years ago|reply
[+] [-] easton|5 years ago|reply
I’d love to be wrong. Every time I think about buying an iPad keyboard I get cranky that I can’t run brew and CPython (or shoot, Swift outside of the subset in Playgrounds) and everything else I can on a real Mac.
[+] [-] heavyset_go|5 years ago|reply
[+] [-] pvtmert|5 years ago|reply
[+] [-] blunte|5 years ago|reply
1. Users can be foolish or even tricked into installing apps and entering commands. If iSH provided a possible attack vector, these kinds of users would get bitten (and they would complain about weak Apple security). As Apple really does seem to be making a strong effort on security (and privacy, it appears?), losing a few useful apps and a few users is worth the trade.
2. This is a bit more of a stretch, but for various reasons Apple wants to control the macos/ios development process. Whether it's to force developers to own Mac computers (when xcode could probably run quite well on iPad Pro...), or to perhaps guarantee a more consistent outcome (which ultimately should affect the users in a positive way, or at least a less negative way), Apple wants to control the process.
[+] [-] chj|5 years ago|reply
[+] [-] enos_feedler|5 years ago|reply
1. https://news.ycombinator.com/item?id=25022746
[+] [-] dylan604|5 years ago|reply
is this a literal statement where some human from Apple called on the telephone to speak to someone about this situation, or is this a phrase that actually means they received an email notification about the situation? I ask because it seems well outside the norm of no-human contact regarding support from FAANG companies.
[+] [-] iaxiomi|5 years ago|reply
[+] [-] yjftsjthsd-h|5 years ago|reply
[+] [-] josteink|5 years ago|reply
Seems Apple is on the WASM-banning track already:
https://news.ycombinator.com/item?id=25028733