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 third-party analytics tool. There is no ready-made package reporting to someone else which screen you opened, which button you tapped or how long you stayed in the app. We share data with no such company.
Instead we have our own counter, and it arrives switched off. If you turn on Share anonymous usage summary in Settings, a single anonymous summary is sent each time you leave the app: which screens were opened, how long you stayed on them, which features were used. Your identity, your writing, your location and your health answers are never sent. Switching it off also deletes what has been collected. The details are in the privacy policy.
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, anonymous session and usage summaries come through, and, if you gave separate permission, audio samples from up to ten sessions a day. 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 can only see which features get used and where people get stuck from the summaries of those who turn on anonymous sharing. About those who don't, we know nothing.
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.
On Google Play the same information is in the Data safety section of the app's page.