It would be interesting to create a TODO app, get that published. Then slowly add workflow programming features that make it turing complete. At some point you need to add the ability to share workflow rules with other users.
Then you slowly add support for a proper programming language instead of only offering the UI configuration.
See at which point your app becomes an interpreter of data and configuration which can come from the internet into an interpreter of code. Because there is of course really no sharp line. I'm sure there are dozens of turning complete apps that can download configurations from the internet.
Although at the end of the day you are just seeing when the company decides to apply vague policies to swat you out of their ecosystem.
WeChat is practically running its own OS inside of iOS and Apple is okay with it. It has its own app store and while they are web apps the WeChat API provides a lot of native integrations that makes them feel less like web apps.
I'm not an iOS dev but I believe that it also uses some weird iOS APIs that I've never seen other apps use. The way it makes your phone continuously vibrate with certain notifications is one example.
As long as WeChat is the only messaging app allowed in the PRC, it will be able to get away with far more than any other app. It doesn't make any sense to compare niche productivity tools to it.
Growing up in the early 00s, software used APIs without fear of rules being imposed after the fact, and without needing to become arbitrarily successful in an authoritarian regime the OS & hardware manufacturers deemed a key market.
There were also piles and piles of viruses, malware, and Adware.
I'm not defending this particular frustration of iOS App Store policy. But it's worth recognizing that there is a balancing act going on here. Apple and Google are in the difficult position of trying to balance reasonable security policy with people's freedom to use their phones as they want.
If there is a happy medium between where Word Processors are also virus vectors and the walled gardens we have now, I don't think anyone has found it.
There are lots of programming environments on iOS with sharing. I had gambit installed, there's pythonista which even has special support from official Apple apps like shortcuts. I'm pretty sure there were multiple C interpreters.
Apple stopped enforcing the no interpreters rule for years until just now. I honestly can't imagine going back to having the list of approved software for one of my most important computers dictated by a publicly traded company. I'm shocked other people tolerate it!
> I honestly can't imagine going back to having the list of approved software for one of my most important computers dictated by a publicly traded company. I'm shocked other people tolerate it!
Because it isn't the most important computer for many (probably most) people - it's their phone/entertainment device and it does what they want; any semblance of it being a general purpose computer was never there.
I used to think this way as well, as for me, the phone is just a thing that's somewhat useful but definitely not my main compute device. Within the past couple of years though I have seen where the smart phone is the only compute device a person (family) may have. No internet connection at home, so data is only available via phone. I was shocked at how prevalent this actually is.
Plenty of people have iPhones or iPads and use them as general-purpose computers. If they don't, it's mostly for ergonomic reasons than software restrictions (most people probably don't want to sit in front of an 11-inch iPad for 8 hours a day).
Maybe the answer is just that most people don't care as much as nerds on HN do.
It looks like they haven't stopped. They just are continuing to enforce it as they please.
Maybe they should just remove the app store guidelines completely and replace it with "Apple will allow apps that it finds beneficial to its interests."
Though I'm not normally one to advocate for "web stuff", what would stop someone from simply compiling a suite of shell tools to WASM, then distributing a "terminal" as a PWA. Of course there would be some slowdown compared to real native code, but I am told (not a web person) that WASM can be nearly as fast as native code, and is (?) supported by Safari. I have seen successful experiments where people have run AMD64 simulators in WASM that can boot Linux, so you could even go so far as virtualizing the whole system, though I imagine the performance would be even worse than "just" targeting WASM.
I guess this is somewhat rhetorical; the people who would be interested in such a tool are I imagine by and large willing and able to either jailbreak or buy an Android. Presumably getting a nice shell-type environment as a PWA would be tricky also considering the limitations of the browser (I know this makes networking hard).
I wish there was a product like an iPad that came with a root shell out of the box. I like the polish of iOS, but I'm not willing to trust random people on the internet with root code execution to jailbreak my iThings.
From reading the blog posts of a few of the developers it’s pretty clear that the review team just doesn’t understand what it is or how it works. When asked why a web browser is allowed to download files and an app using wget is not they can’t give a satisfactory answer.
The most logically consistent argument they could make is that alternative browser engines are disallowed... so logically an implemntation of "wget" which is just a wrapper around the Safari engine should be OK.
Of course, all of this is arbitrary. Apple just wants to be able to control their platform, they don't actually care about having rules and enforcing them with any semblance of fairness.
It's unfortunate that developers have to put up with this. I say "have to" in that my understanding is that Android users (in general, present company likely excluded) won't pay money for high quality ad-free apps. So if you actually want to make something good and be paid for your trouble, it's iOS or bust.
> 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!
Apple does know better than the vast majority of its users, but Apple's interests are not the same as the vast majority of its users (often the opposite), and it's not in society's interest for Apple to have all the power here.
What mobile platform is better? I’d rather overpay slightly for hardware and have some developer on HN get pissed at the App Store than give all my personal information and my whereabouts to Google.
On Android, you can ignore Google and use open source applications from F-Droid as your daily driver. If you want to go further you can install LineageOS and strip out Google Play Services. That's not an available option on iOS.
I just got a PinePhone and I wasn't expecting a daily driver device ... but ... oh boy, it's really, really bad. Definitely the slowest, kernel-panicky, least functional device I've ever bought. It is worse than the worst android device ever made (I've played with $10 android devices from 2013, this is slower and less functional.) It is shockingly bad. While the software is frightening, the hardware is also not good. The USB C port is totally finicky.
I'm not sure what I'm going to do with this device now... hopefully I can find some fun from it.
What OS are you using? My PinePhone serves as a daily driver just fine with Mobian and SXMo. It's a bit slow but good-looking for the first OS and a bit ugly but pretty fast for the second one.
Yep. IMO the mistake that a lot of people are making here is to think that iOS devices should be more like computers. They are popular and successful because they are less like computers. They're arcade machines, VCRs, appliances, and that is what people like about them, and what keeps them safe for people to use without lots of precautions and junk like antivirus software.
Like many of us, I am where I am today because I had access from a relatively young age, to computers that demanded you program them. I was there when you turned a computer on and it said "READY" and you were immediately in a BASIC interpreter. I absolutely recognise the value of that for future generations, which is why I'll be buying a Raspberry Pi 400 for our eldest son's upcoming 10th birthday, but I also recognise the value in being able to have had him use an iPad for the last few years and have it be nearly frictionless.
The problem is that if you don't count iphones and tablets then computer usage is going down. So progress is now going backwards, fewer and fewer kids have access to a real computer. All that is left is to launch a similarly locked down laptop to eliminate almost all computer usage for the coming generations. Google already started it with Chromebook (which is super popular in schools, guess why...) but I bet apple (and microsoft?) will do something similar pretty soon.
'Real computer' usage is very arbitrary definition of progress. Do people need real computers? Are their lives not improving because they don't have a real computer? I don't think either is true. Real computers are available everywhere for very low prices, if they need it, they have every possible opportunity to get it. Additionally, isn't it possible that a person wants to use an iPhone alongside their real computer? I know many people like that - my programmer friends included.
Nah, smartphones existed before the iPhone but they were tools. The changes the iPhone brought is what changed them from being tools to what they are today and Real Computers still don't exhibit the toxic anxiety and depression inducing habits that modern smartphones cause.
If a computer is in a room people can walk away from it without interacting with it for 30 minutes, not sure people can even manage 5 minutes from their phones.
Did you own a smartphone before the iPhone came out? I did, more than one. It was not a tool, it was nearly useless, useful only for basic plaintext e-mailing, SSH, and very very basic games.
It was the new Real Computer-alike capabilities (CPU instruction sets, OS and the libraries, RAM and storage amounts - Windows Mobile 6 was incomparable shit) of iPhone and subsequent Android-based devices that made these devices actual tools, capable of browsing the web and enough performance for games and apps, and these same capabilities were what made them the social plague. Seems like we need less Real Computers in the world, not more...
Real Computers could so all that before smartphones, why did the same not happen to them and why are they still not as damaging as smartphones then if computation power is the cause?
I wonder how much VPSes and the like have offset this. I know a lot of people that do all development stuff through some sort of remote desktop/SSH. I can see high schools just offering free AWS/Azure/GCP credits to the students, or maybe just student clubs depending on how its funded.
I'm planning to buy the iPad Air/iPad Pro with the Magic Keyboard to do everything either over RDP or on the device itself (already own an iPad + Apple Pencil). I'm a Math student primarily, so most of my time is spent using the pencil and not as much with a keyboard and trackpad.
Chromebooks aren't locked down. You can put them in developer mode and replace the entire OS with one of your choosing, without needing any jailbreaks or exploits.
>IMO the mistake that a lot of people are making here is to think that iOS devices should be more like computers
These devices are the only connection an entire generation growing up today have with the digital world. It's entirely unethical to limit their potential for creation and expression with computers.
"Imagine if this were Facebook" and there you pretty much defeat your own argument - Apple isn't Facebook and people are generally fine with the way Apple is treating its platform, otherwise they wouldn't keep buying iPhones.
I wouldn't personally go anywhere near saying they're doing a perfect job, there are certainly things I would change, but they're doing ok.
I once owned a Mac Mini and iPod. Great hardware, but as a programmer I really hated the software. Too much restrictions. Not enough advanced user power.
That's why I always find it weird that some programmers are big Apple fanboys. I love Linux and the power that it brings. Why would a power user want to dabble in a restricted ecosystem? Never quite got that part.
I've been programming professionally since 1984, most of last 20 of those on a Mac (the first Mac that launched with a NeXT OS). I've never really wanted to "dabble" with my core computer's OS, and I've done FreeBSD and Linux kernel hacking.
Not everybody is a tinkerer. I get why, but I'm just not interested.
It’s not about tinkering. It’s more about control and having options for working the way you like instead of Apple’s way. I can’t imagine accepting such a limited environment. Unfortunately, thanks to iOS, I still have to build and test things in the Apple prison complex regularly - so I know exactly how limited things are by comparison (I prefer a Linux desktop.)
Programming is about controlling things and Apple hates giving users and developers control. It’s about getting your job done by being able to install and configure things the way you need them without a lot of hassle. If you’re willing to put up with that hassle and live within the confines that Apple has laid out for you than that’s good for you. But there’s a reason that the vast, vast majority of programmers are not using a Mac outside the SV bubble. Even Windows gives you more control! (and hardware freedom of choice.)
I’ve been programming since the early 90s and Apple has always been anti-developer and anti-power user.
The things I have wanted to install have generally not involved hassle on a Mac, and never more hassle than they would have on Linux.
Configuring things has varied; some are less hassle than Linux, some are more, some are impossible, but unlike Linux once I do a configuration there is generally no hassle _keeping_ the configuration over several OS updates.
And there is a lot less hassle in some ways, at least compared to the last time I was trying to use desktop Linux, around things like WiFi, drivers, finding a laptop that will actually work, etc. Yes, the latter is somewhat cheating because I am forced into Apple's hardware, but the hassle-savings from not having to dig through everything on the market to find the laptops that are well-supported by Linux is something I absolutely do not miss.
So I think what it comes down to is that different people find different things hassle-full.
The Mac OS is very clearly and objectively limited compared to Linux or Windows regarding the amount of control they give you over things. I could list many of them in detail, for they are numerous but they range from the small, like the fact that you can't even change the color of your mouse cursor to something other than black, to the large, like ability to run on any hardware.
You're right that it comes down to what people find hassle-ful. That's why I say that if you fit into whatever Apple limits you to, then good for you. But those limitations are why most programmers actually don't use a Mac.
> ...unlike Linux once I do a configuration there is generally no hassle _keeping_ the configuration over several OS updates.
That's not my experience at all. Using a rolling release (Manjaro) for years I've rarely, if ever, had to re-configure anything major. I have kept three of these machines running without any hassle. They all just work (1 laptop and 2 desktops).
Meanwhile on my Macbook Pro, just upgrading through El Cap, Sierra, High Sierra, Mojave and finally to Catalina - each and every time there's a major upgrade they've broken software that I use to the point where I just stopped using all the third party tools that I had to use to make my Mac work the way I want - tools like Karabiner, Better Touch Tool and so on... because I got sick of having to re-install or re-configure them after one of these updates. Also, Apple updates take forever and the update procedure is so clunky that even if you think you've updated something like XCode - the next time you open it you have to do more updates within the actual app. Package managers are soooo much nicer.
Haven't you read any of the threads here on HN around the time Apple releases a major new Mac OS update? There are always tons of people complaining about what they broke. I think last time we lost the ability to even run 32-bit apps...
> And there is a lot less hassle in some ways, at least compared to the last time I was trying to use desktop Linux, around things like WiFi, drivers, finding a laptop that will actually work, etc.
If you had said picking a distro [0], I'd agree with you. But finding a Linux laptop couldn't be easier. Google for: Linux laptop. Also, if you've been scanning headlines here on HN for any amount of time I'm absolutely positive that you could name one right off the top of your head if you thought about it for thirty seconds. Here's a hint: The model name/number starts with XPS.
Regarding drivers - every Linux desktop distro I've used has a GUI for picking drivers. You check off a couple boxes, hit apply and restart. Meanwhile on my Mac, I can't even get full functionality out of common hardware like a MS Natural Keyboard or a standard wireless USB mouse - so I gave up trying to do that too.
[0] I'll save you some time if you ever want to escape Apple: Pick an Arch-based distro.
> I've rarely, if ever, had to re-configure anything major.
I suspect we differ significantly in the sorts of configuration we do.
Also, please note that I mostly gave up on desktop Linux around 2006, after using it for 9 years straight as my only desktop OS. I kept using it for some things until earlier this year for work, and the update woes were still present, albeit smaller than in the past (maybe that's a Fedora-specific thing?). It's quite possible that even for a primary desktop the situation is better than it was in 2006, but at least for my use cases I'm at this point in "it ain't broken, don't spend time to fix it" territory wrt my OS. If that changes and there are things I want to do that macOS doesn't let me do, I will of course start looking at other options.
> I think last time we lost the ability to even run 32-bit apps...
Indeed, and for some people that's a deal-breaker. For me specifically it was a non-issue; everything I use had long ago upgraded to 64-bit. I had to install a newer version of DOSBox than I had before; that's it.
Again, this is not going to be everyone's experience!
Upshot: I'm glad we have the various options we have right now, since it's pretty clear that different people experience them very differently and value different tradeoffs. I would be very sad if any of them disappeared.
most of us engineers just use our phones to talk, text, browse the web, and use the occasional social media or random app. We’re just regular people too, not always having the compulsion to hack and tinker with everything. I personally get enough of that from work and the occasional side project.
Yeah a lot of these conversations start from the assumption that all programmers are extreme power users but that's just not true.
Probably the majority of the subset of programmers who hang out on here are but out in the normal world most of us are not.
I need a computer that consistently works without too much fiddling and has a terminal. My setup works fine for me and any time I spend fooling around with it I consider pretty much wasted so I try to avoid that.
I've used linux plenty and it just eats up a lot of my time and energy. I leave that stuff for the servers these days.
My reason is simple: I got an environment with the following features (as of the mid-2000s):
* Unix shell
* X
* Virtual desktop support
* Runs my editor of choice
* Runs on a laptop
* WiFi just works
* Audio just works
* Updates don't break nearly as much (e.g. I don't have to mess with X configuration after every major OS update).
I had pretty much stopped trying to do advanced configuration on Linux by that point, because every single major-version OS update would break nearly all of it.
There are some tradeoffs, sure, but the amount of time I no longer had to spend to keep up basic functionality was worth it to me. Others may make other tradeoffs.
Note that this is for macOS. I'm not sure how I feel about iOS yet.
I have always loved tearing things apart and fiddling with them. The one exception to that is my primary phone. There's a set of functions I expect it to perform, and that's it. I don't see it as a general purpose computer, nor do I want to be responsible for it's administration. The way I see it, I am paying apple to administer it for me. If it was my only device, I would not be able to use it, but I have so many computers that I'm ok with not being root on my phone if I never have to spend a thought on maintaining it.
Want to protect people from themselves? Bury an expert mode deep in the config menus. What apple is doing is about control, for the purpose of milking people as much as possible, like some sort of capitalist vampire.
Is there a specific "senior citizen" version of iPhone you have to request? Or is it as simple as toggling and password-protecting a "senior citizen/parental" mode somewhere in the settings? Or maybe the parental mode comes enabled by default, with restrictions chosen by Apple, and you can disable it by entering a password that came with your phone, or perhaps a password you have to separately request from Apple, once you've proven ownership of your phone (easiest at time of purchase)?
Or is it none of those things, and Apple fights hard against users having any control whatsoever over their devices?
What does it tell you about Apple, when it insists on remaining the absolute arbiter of what their users may run, even after it was forced to use that power to betray its users to authoritarian governments? That these are the kind of practices, the kind of company, that you should be promoting?
Because one is a programming language environment running locally that claims be properly sandboxed and the other allows one to connect to remote environments.
This is purely at technical question you have asked.
Apple allows cloud gaming apps (they don't care if the game is delivered by streaming when you play it) but they don't allow game store apps which can stream lots of different games and where that selection of games can change outside of an app store update.
This would fall under the "generic mirroring" rule of the App Store. Apple only takes issue if you make your remote apps look and behave like a local apps.
The overarching rule for the App Store when it comes to these things that the implementation details are completely irrelevant, the only thing that matters is what a user sees when they open the app.
I hate jumping into these threads because I don’t want to feel like I’m defending Apple’s draconian policies, but it’s incredible how many people on here feel that they should be able to rules-lawyer their way out of them. “Oh, but this app is STREAMED, it’s totally different! You let people STREAM music, don’t you??”
And forcing games to be individually approved also allow them to apply the rating system as well, so for example a kid won't be able to play a game rated above their age for example.
I don't like how Apple is enforcing it, but that's arguably better than outright banning these platforms.
Any other app doesn't have builtin plausible deniability...
Also, that's just not true, a general programming language gives you a lot more attack surface, surfaces that are not testable with Apple's suite of verification tools.
Well, only for actual programming environments that run some direct form of a scripting language - the existence of iSH shows they're fine with sandboxed+emulated programming environments.
Pythonista has been there for years, and it’s not just Epic running Unreal Engine games that load code on the fly.
It’s mostly on who/what Apple likes, and some other circumstances. It’s tempting and comforting to apply a general principle, but it’s just not that simple in my opinion.
I would wager it's because the latter somehow impedes Apple's revenue stream from users and devs. Maybe not immediately, but something they anticipate in the future.
Then you slowly add support for a proper programming language instead of only offering the UI configuration.
See at which point your app becomes an interpreter of data and configuration which can come from the internet into an interpreter of code. Because there is of course really no sharp line. I'm sure there are dozens of turning complete apps that can download configurations from the internet.
Although at the end of the day you are just seeing when the company decides to apply vague policies to swat you out of their ecosystem.