Soluklan

BEHIND THE SCENES

There is no third-party code in the app

Ad network, analytics tool, crash reporter, ready-made interface library — none of them. What that means and what it costs.

4 min read

Most iOS apps carry dozens of third-party packages inside them: analytics tools, ad networks, crash reporters, ready-made interface libraries.

Soluklan has none of these.

What isn't there

No ad network. No advertising is shown in the app and no advertising identifier is read.

No analytics tool. There is no tool tracking which screen you opened how many times, which button you tapped, or how long you stayed in the app.

No crash reporter. If the app crashes, no automatic report comes to us. Information arrives only through Apple's own system, to the extent you allow it in your device settings.

No ready-made libraries. The interface, the audio processing, the drawings, the animations — all written with Apple's own frameworks.

What is there

There are two places the app uses the network, and both are Apple's infrastructure:

iCloud. Your session history syncs in your own account. We have no developer access to that area.

Anonymous sharing. If you turned it on, session summaries come through — and, if you gave separate permission, an audio sample now and then. These sit on Apple's CloudKit infrastructure.

Beyond these the app connects to no server at all. Even notifications are scheduled on the device: we have no server for sending notifications.

What it costs

This choice has a price, and we won't hide it.

Less information. We don't know which feature gets used, where people get stuck, or on which screen they give up. Session summaries from users who turn on anonymous sharing are the only data we have.

Slower bug-finding. When a crash happens, we only learn about it if someone tells us or if we see it in Apple's reports.

More work. What a ready-made library would do in a day takes several days to write.

Why it is still this way

The app's job is to listen to your breath. The sound of a breath is data passing through a microphone, and putting third-party packages into an app that holds that data means trusting what those packages do.

If the privacy policy says "no ads, no tracking, no third-party analytics", that has to have a counterpart on the code side. Writing the sentence is easy; keeping the sentence true is a matter of not adding packages.

How to check for yourself

What data an app collects is written on its privacy label in the App Store. And if you turn on iOS's Settings → Privacy & Security → App Privacy Report, you can see on your own device which app connected to which domains.

← Behind the scenes