Back to blog
PolarHQProduct
iOSMobileProduct

PolarHQ on iOS — a native client with crypto parity

by Marques · June 6, 2026

A private cloud you can only reach from a laptop isn't much of a cloud. So alongside the web app, PolarHQ now has a native iOS client — SwiftUI, built for iOS 26 — and getting it right meant solving the hard part first: encryption parity.

Crypto parity was the gate

The web app encrypts everything with libsodium. For the iOS app to read the same library, its crypto had to produce byte-for-byte identical results. So before building any UI, we built OrbitCrypto — a Swift libsodium module — and verified it against the JavaScript implementation using shared test vectors.

No screen shipped until the Swift crypto matched the web's output exactly. Decryption parity isn't a feature you can fake.

It compiles cleanly under Swift 6 strict concurrency, and the test vectors run on every change. Only once that passed did the rest of the app get built on top.

An immersive library

Photos on iOS leans into the platform: an Apple-Photos-style library with Liquid Glass chrome, pinch-to-zoom between Years / Months / All, and a proper photo viewer with a filmstrip and action bar. Originals are decrypted on-device; thumbnails stream in and stay sharp.

We paginate the full library (an early build capped it at one page — now it loads everything) and sort by parsed capture date so the mobile timeline matches the web exactly.

Drive, sessions, and sign-in

  • A Files-app-style Drive with rename, delete, new folder, and decrypted names and types.
  • Device & session management, so you can see and revoke every signed-in client.
  • Native sign-in via bearer tokens, with login and E2E keys persisted reliably in the Keychain.

Live sync

Upload a photo on your phone and it appears on the desktop moments later — and vice versa. Live sync broadcasts changes for Photos and Drive across every connected client, so the web app and the iOS app stay in lockstep without a manual refresh.

What's next for mobile

Android is on the roadmap, along with background upload and offline caching. But the milestone that mattered is done: a native app that decrypts your real, end-to-end encrypted library — because it shares the exact same crypto as the web. Everything else is product on top of that foundation.