Location privacy in CritiCal
One of Strange Magic’s founding principles is that user privacy is a fundamental part of the product. We never want to have access to your personal data if we can possibly help it. Critical’s privacy policy is clear on this front.
Apple’s frameworks are generally designed to be privacy-respecting. When an app needs to access something personal to you, we define which permissions it needs, and the OS prompts you to grant or deny them. This is a good system, but it can lead to some confusion when the app’s actual use of the data is more limited than the permission level suggests.
CritiCal uses your location for exactly two things, and on first launch the system permission prompt is the only sign you ever see of it. It is worth explaining what those features are, because the implementation is rather more privacy-respecting than the prompt itself suggests.
The short version: CritiCal never actually receives your location. The longer version is below.
How CritiCal on iPhone uses your location
On iPhone, CritiCal uses location data for two features.
The first is travel time estimates. When you look at a venue’s information in your events diary, CritiCal can show you how long it would take to get to the venue right now. In Settings, you can choose your preferred mode of transport (car, public transit, etc.) and Apple Maps will caulcate an approximate travel time.
The second is geofenced venue reminders. If you opt in, CritiCal can send a notification as you approach the venue. If you have e-tickets stored in the app, tapping the notification will automatically show you the tickets ready to be scanned. If not, a tap will open the event’s page in CritiCal with all the information you’ve saved in there.
This is also true for the iPad version, which uses all the same code as the iPhone one. Unless you make a habit of relying on iPad notifications while you are on the go, it’s unlikely you’ll want to turn on geofencing reminders there.
How CritiCal on Mac uses your location
On Mac, CritiCal only uses location for travel time estimates. There are no geofenced reminders.
Why iOS asks for “When in Use” and macOS asks for “Always”
If you install CritiCal on both platforms, you may notice something odd: iOS — which does the more powerful thing — only asks for your location when the app is in use.
In contrast, macOS — which only does travel time — asks for permanent access.
This is not a choice made by CritiCal. macOS simply does not offer a “When in Use” tier for location access; the only grant available is “Always”, so it’s the only one we can ask for.
The Mac is built on the assumption that apps can and routinely do work while they are not the frontmost window – background processes, menu bar items, widgets, multiple windows on multiple Spaces. So the OS does not pretend there is a meaningful distinction between “in use” and “always”.
That means that even when a Mac app only needs to access your location in very limited circumstances, it has to ask you for the same permission level as an app that is accessing your location all the time.
On iPhone, CritiCal asks for “When in Use” and never needs to escalate, because the part of the app that needs to react to your location while CritiCal is closed — the geofenced reminder — is not really CritiCal at all. It is iOS doing the work on CritiCal’s behalf. Which brings us to the next section.
Why CritiCal never receives your location
Here is the part that matters. Both location-aware features are implemented in such a way that on all platforms, the CritiCal application never sees your coordinates.
Venue-based reminders
When you turn on arrival reminders for a venue, CritiCal automatically constructs a list of your forthcoming venues, which it passes to the OS. Along with the location, we pass the text to display in the reminders, and the type of action to take when the user clicks the notification.
As you approach a venue, iOS decides whether to show a notification from the supplied list. If it does, it fires the notification with the text we provided. If you tap it, iOS opens CritiCal and tells it “the user tapped the reminder for this venue”. CritiCal then looks up the venue in its database and shows you the relevant information.
So you get information that’s specific to your location, but CritiCal never actually knows where you are. The app can’t tell that you even saw the notification. If you tap it, the information that iOS sends back to CritiCal only includes the event ID, and it determines the correct information to show you.
Travel times
When CritiCal needs to show “It will take you 35 minutes to get there”, it asks Apple’s mapping API, MapKit, for directions between your current location and the venue and how long it will take.
Crucially, it does this in a way that does not require CritiCal to know your location. MapKit’s concept of locations, including their coordinates, address information, etc., is called a “map item” – and there is a special type of map item that represents “whatever the user’s current location is”. That special map item doesn’t contain any specific position – it’s just a placeholder. We pass that placeholder to MapKit’s directions API, together with the location of the venue. MapKit then internally works out where you are and calculates a plausible route between you and the venue, returning a time estimate.
That means that your exact position is information that is completely confined to MapKit. We can’t eavesdrop on your location because we never see it. We get a time estimate, which we display but never store.
Getting full directions
As well as getting travel time estimates from Apple Maps, CritiCal can also point you towards full directions to a venue. This is done by directing you to other apps that can show you directions across a variety of transit modes: Apple Maps, Google Maps, Citymapper or Transit.
When we do so, we pass details of your destination to the other app, which can include coordinates, name and address (depending on the app). The other app then uses its own location services to work out where you are and how to get you to the venue. Again, CritiCal never sees your location, and the other app is doing all the work.
In short
For both venue reminders and travel times, the actual use of your location is managed by Apple’s internal OS and its location services. Even though CritiCal never sees your location, though, we have to declare that we’re using your location to fully inform you that the system is doing the work on CritiCal’s behalf.
If you decide that you don’t want to use CritiCal’s location-based features, you can turn them off in Settings. You can also revoke the permission to use your location at any time through the iOS Settings app, or the Mac’s System Settings. If you do, the features will simply stop working, but CritiCal will continue to function as normal otherwise.
We will always do our best to respect your privacy. June will see the announcement of iOS 27 and macOS 27, and it is possible that those operating systems may allow us to fine tune the permission requests we make to more accurately reflect how we actually use your location.
In the meantime, we hope that this explanation will help you understand how CritiCal uses your location, and that you will be able to use the app’s location-based features with confidence that your privacy is being respected.