Do I understand correctly that bleary eyed users were uninstalling the alarm rather than turning it off? (Because by design it's a hassle to turn it off, i.e. to ensure user stays awake for at least some length of time?) That's pretty funny.
My friend (an absolute bear of sleepiness) had a "wifi alarm clock" back in the day: he had to actually stumble over to his router (get a certain wifi signal level) for the alarm to switch off!
I used to have issues walking up during university, leaving my phone on the other side of the room, taking it and turning it off and falling asleep again without memory if it.
I got an alarm app that required solving math questions to do more than snooze. I had set it to three digit numbers +/- another. Worked great. Until I partied a bit too hard, and had to repeatedly snooze it, because even on the bus to university, I was too hungover to figure out the answer ;)
A student once made a whimsical motorized alarm clock that could drive around the bedroom, the idea being that the drowsy person would wake up in course of chasing it.
Another student made an alarm clock on the computer, which would require them to be alert enough to solve a differential equation.
> Do I understand correctly that bleary eyed users were uninstalling the alarm rather than turning it off?
A legitimate reason to do this would be if you're on a red-eye flight somewhere, and your alarm goes off. You can't turn it off because your special object or QR code or whatever is in your checked bag. Your only option is to either turn off your phone or uninstall.
When I was in university, I experimented with an alarm app called "sleep as android". I had set it up so I had to scan an NFC tag to turn it off, and for that I used a spent subway ticket I kept in the kitchen.
It worked, until I figured out I could just "force stop" the app lol.
I also had alarm clock problems in uni. My solution was a Raspberry Pi, a piezoelectric buzzer, and an ultrasonic distance sensor pointed at the bed.
The buzzer would ring until the distance sensor could see the opposite wall, and restart if I went back to bed. As a bonus, it took a few measurements during the night to track sleep quality.
Unfortunately the whole thing was running from a finicky breadboard and needed frequent calibration.
Is there any malware exploiting this feature? I can imagine "can never be uninstalled" would be a desirable quality.
Especially if the flag doesn't expire, a bad actor could upload a flashlight app with this requirement, let the 20% or whatever tech savvy users balk at the permission, then update later to constantly serve ads or spy or whatever to the remaining 80%, who are now unable to uninstall.
Alternatively, a standard skinner-box inspired mobile game that refuses to uninstall after you've become addicted and traded the ability to uninstall for 500 PremiumBucks or whatever.
I'm legitimately surprised this is a permission that exists outside of the root user
You can always disable screen time permission and uninstall it. Also apps must get a special permission for using this API from Apple, if that’s any consolation.
It seems like this could have some awful unintended consequences... e.g. you setup an alarm that can only be deactivated by scanning a QR code in the next room to force yourself out of bed, but forget to disable it on a business trip- and it goes off during an important early morning meeting and cannot be silenced as you aren't home.
I suspect this is almost always not a great solution to this problem. When I was a young adult I used aggressive alarm measures to get out of bed on time, such as having a very loud alarm clock on the far end of the room, where I had to actually get out of bed to silence it.
I discovered realized needing to do this was caused by a number of fixable health/lifestyle issues: going to bed too late, not getting enough daylight and exercise to sync my circadian rhythm correctly, too much screen time and bright lights before bed, too much coffee late in the day, etc. Nowadays I go to bed by ~8pm everyday, fall asleep quickly, and am up early. I haven't needed an alarm even for important very early events in almost a decade.
I have an alarm clock like this and still use it almost daily. The one that I use has an alternate dismissal method for anything fixed to a certain location. (Barcodes, etc.)
My sleep has gotten consistent enough over the years that I could probably get by without it, but it did help significantly with building the habits in the first place.
Never could I have imagined users wanting apps to have more control of them, but here we are with a pretty compelling use case for not letting them remove an app. Neat
I like the idea of apps and components being able to have wide ranges of privileges and those being communicated to the user. I like what the author is doing and everything I don’t like about it - the unfairness of Apple’s gatekeeping and the lack of involvement of the user - is from Apple.
It makes me think of this article I recently read about web components as machines. Perhaps it’s only loosely related, but I feel like it’s worth the tradeoff for the system to create the illusion of components being in charge, even though everything goes through the system, whether it be a web server, a web page, or an operating system. https://www.abeautifulsite.net/posts/component-machines/
What this app attempts to do is to make the alarm be a little bit more like clocky which could do what it did because it was a physical machine. https://en.m.wikipedia.org/wiki/Clocky
As stated in the article, that flag is only flipped while the alarm is going off. Also the feature in general is opt-in, and you have to be approved by apple for that feature.
but also, like, it only runs in certain conditions it sounds like here.
Can this line of code be always running? What if the app launches itself as a background process?
For a feature I just learned about so many questions, but it's Apple in their store so hedges betting it isn't as dangerous as it sounds. But perks your ears up
Even if you do know the object of the exercise is more "add extra steps" so half awake brain is less likely to manage it without you waking up enough to curse and get up anyway.
Then again, back on my N900 half awake brain once managed to pop a root shell, ps | grep, and kill -9 the alarm clock app without me having any memory of it (the shell was still open when I woke up naturally some time later or I'd never have known what happened).
It's really a matter of perspective. On the one hand, it's creating a situation where a user cannot uninstall the app. On the other hand, it's _allowing_ a user to prevent themselves from being able to uninstall the app under some circumstances. Whether this is ultimately a net increase or decrease in user freedom is an exercise in judgement.
But really, this isn't about overruling software, it's about overruling yourself.
Past self has implemented a mandate that future self get up at this time. Future self is a sleepy, lazy, point of sale that can't be trusted.
Sample size of 1. I used to "wake up" and turn off my alarm and have zero recollection of it. I got the most annoying mechanical clock and packed it in a box that I had to unpack before I could turn it off. It got louder as I removed the packaging. The prolonged activity in order to shut off the alarm is ultimately what helped me fully wake up.
I've tried this and the article misses a huge point. It looks like this prevents _every_ app on the phone from being uninstalled, not just the one declaring it.
People are not always completely lucid immediately upon their alarm clock going off. Have you ever woken up several hours late, only to find that your alarm clock did go off at the scheduled time, but you disabled it and resumed sleeping before fully waking up?
andai|1 year ago
My friend (an absolute bear of sleepiness) had a "wifi alarm clock" back in the day: he had to actually stumble over to his router (get a certain wifi signal level) for the alarm to switch off!
Semaphor|1 year ago
I got an alarm app that required solving math questions to do more than snooze. I had set it to three digit numbers +/- another. Worked great. Until I partied a bit too hard, and had to repeatedly snooze it, because even on the bus to university, I was too hungover to figure out the answer ;)
But in general, I was very grateful for the app.
neilv|1 year ago
A student once made a whimsical motorized alarm clock that could drive around the bedroom, the idea being that the drowsy person would wake up in course of chasing it.
Another student made an alarm clock on the computer, which would require them to be alert enough to solve a differential equation.
StableAlkyne|1 year ago
A legitimate reason to do this would be if you're on a red-eye flight somewhere, and your alarm goes off. You can't turn it off because your special object or QR code or whatever is in your checked bag. Your only option is to either turn off your phone or uninstall.
grishka|1 year ago
It worked, until I figured out I could just "force stop" the app lol.
dylan604|1 year ago
BoppreH|1 year ago
The buzzer would ring until the distance sensor could see the opposite wall, and restart if I went back to bed. As a bonus, it took a few measurements during the night to track sleep quality.
Unfortunately the whole thing was running from a finicky breadboard and needed frequent calibration.
unknown|1 year ago
[deleted]
StableAlkyne|1 year ago
Especially if the flag doesn't expire, a bad actor could upload a flashlight app with this requirement, let the 20% or whatever tech savvy users balk at the permission, then update later to constantly serve ads or spy or whatever to the remaining 80%, who are now unable to uninstall.
Alternatively, a standard skinner-box inspired mobile game that refuses to uninstall after you've become addicted and traded the ability to uninstall for 500 PremiumBucks or whatever.
I'm legitimately surprised this is a permission that exists outside of the root user
HnUser12|1 year ago
pityJuke|1 year ago
(Don't know how this works outside of the App Store, which is an interesting question.)
labcomputer|1 year ago
[deleted]
UniverseHacker|1 year ago
I suspect this is almost always not a great solution to this problem. When I was a young adult I used aggressive alarm measures to get out of bed on time, such as having a very loud alarm clock on the far end of the room, where I had to actually get out of bed to silence it.
I discovered realized needing to do this was caused by a number of fixable health/lifestyle issues: going to bed too late, not getting enough daylight and exercise to sync my circadian rhythm correctly, too much screen time and bright lights before bed, too much coffee late in the day, etc. Nowadays I go to bed by ~8pm everyday, fall asleep quickly, and am up early. I haven't needed an alarm even for important very early events in almost a decade.
sunaookami|1 year ago
Couldn't you just forcefully turn the phone off? https://support.apple.com/guide/iphone/iph8903c3ee6/ios
kvmet|1 year ago
My sleep has gotten consistent enough over the years that I could probably get by without it, but it did help significantly with building the habits in the first place.
ratg13|1 year ago
If you forget to disable either, the result is the the same.
I do agree with your other observations, and done the same to regulate my sleep to not need an alarm.
black_puppydog|1 year ago
mcdeltat|1 year ago
vivzkestrel|1 year ago
cobertos|1 year ago
rolph|1 year ago
i hope they can dial 911 or hit the link to security cams.
bdavbdav|1 year ago
benatkin|1 year ago
It makes me think of this article I recently read about web components as machines. Perhaps it’s only loosely related, but I feel like it’s worth the tradeoff for the system to create the illusion of components being in charge, even though everything goes through the system, whether it be a web server, a web page, or an operating system. https://www.abeautifulsite.net/posts/component-machines/
What this app attempts to do is to make the alarm be a little bit more like clocky which could do what it did because it was a physical machine. https://en.m.wikipedia.org/wiki/Clocky
nesk_|1 year ago
Really effective!
When I didn’t power off the phone.
jtbayly|1 year ago
Surely there is a workaround, right?
atrus|1 year ago
yjftsjthsd-h|1 year ago
> The key is using Screen Time API of iOS.
> After getting approval from the user, the developer can set a flag to deny app removal.
> This feature must be opt-in. To enable the flag, you should explicitly get approval from the user.
naltroc|1 year ago
Can this line of code be always running? What if the app launches itself as a background process?
For a feature I just learned about so many questions, but it's Apple in their store so hedges betting it isn't as dangerous as it sounds. But perks your ears up
littke|1 year ago
Once you know, it’s easy to do.
Most people don’t know, so this probably does what the author is intending.
mst|1 year ago
Then again, back on my N900 half awake brain once managed to pop a root shell, ps | grep, and kill -9 the alarm clock app without me having any memory of it (the shell was still open when I woke up naturally some time later or I'd never have known what happened).
EGreg|1 year ago
Also, what about force-quitting the app? Couldn't users just do that?
unknown|1 year ago
[deleted]
turtlebits|1 year ago
paxys|1 year ago
kassner|1 year ago
v2.5.1
pests|1 year ago
dkarras|1 year ago
whereismyacc|1 year ago
I was just terrified that one day I'd set the wrong alarm and have it blaring during a university lecture when I couldn't turn it off.
playingalong|1 year ago
ipsento606|1 year ago
DistractionRect|1 year ago
Past self has implemented a mandate that future self get up at this time. Future self is a sleepy, lazy, point of sale that can't be trusted.
Sample size of 1. I used to "wake up" and turn off my alarm and have zero recollection of it. I got the most annoying mechanical clock and packed it in a box that I had to unpack before I could turn it off. It got louder as I removed the packaging. The prolonged activity in order to shut off the alarm is ultimately what helped me fully wake up.
m463|1 year ago
micromacrofoot|1 year ago
rockbruno|1 year ago
prmoustache|1 year ago
Why would people do that? And why should we prevent this it if that is what they want. I don't understand.
greyface-|1 year ago