I’ve started integrating Apple frameworks into Kapowski.
By being a dickhead, you uncover all sorts of problems in your app that should be fixed. Good QA people are, yes, dickheads. If you’re not totally annoyed with your QA almost always, they’re not good QA.
Almost everyone thinks about just the Happy Path within a feature. The happy path, if you haven’t heard the term, is when the user instantly grasps what they must do and use a feature exactly as the design intended. This almost never happens. If you only account for the happy path in your design, you discover all the other terrible, error-riddled paths when actual users use your app.
Integrating parts of iOS into your app have the potential to really hamstring the experience. Apple requires getting permission from the user for apps to use parts of the system. This is best for users. As a user, I want developers to jump through hoops to do something, to consider the ramifications of their decision to work with that particular part of the system.
For shits and giggles, go into Settings -> Privacy -> Camera and deselect Instagram or Facebook or something popular. I’ll use Instagram as an example since I just did this with Instagram, while writing this sentence. You just suddenly revoked Camera access to an app that’s all about Photos. Open the app. They handle it okay: my audio got all screwed up and I just see a black square when I launch the camera. But I didn’t crash and the other tabs worked just fine.
This may be intentional on Instagram’s part; I suspect it is: there’s no way they haven’t tested this part of their app.
Anyway, try it in less popular apps and with other services, you might not get very far in that app with that stuff turned off.
You can get into all sorts of shenanigans by tapping “Don’t Allow”.
You can wish they didn’t tap “Don’t Allow”, but some will; I even recommend you tap Don’t Allow with push notifications in almost all apps—except Kapowski, of course.
You have to handle the Disallow case in your app. Not crashing is the bare minimum.
For some features, like Push Notifications, the app should function exactly the same with or without permission. Push notifications are a good way to get timely information or have a shortcut into a part of the app that’s relevant at the time. Disallowing push should have very little impact on the user.
But other services require hassling the user a little more. Kapowski is a mobile app because of taking photos with the built-in camera. This app needs permission to use the camera to do its job. The user can deny access. What then?
First, don’t assume they’re a dickhead. They may have tapped “Don’t Allow” by mistake, or perhaps they are wary users because they’ve been burned before; there’s a reason Apple introduced asking for permission for the camera. They need a way to recover from tapping “Don’t Allow”.
Apple doesn’t make this easy for app developers to do for a user; the user has to do it on their own. The most an app developer can do is prompt them with an alert to open Settings and give permission. This is what Kapowski does now for the Camera and the Health app. And, I just realized while writing this post, I need to do the same with Photos for the advanced setting of adding photos to the camera roll.
So it goes.
I’m coming to a sad realization that there’s more work to do. Cancel or allow?