Skip to content
Horologe / docs / ios-vs-android-comparison

iOS vs Android Comparison

Architecture, database persistence, design system, and technical distinctions between Horologe for iOS and Horologe for Android.

Two Native Implementations Compared

Horologe shares the same relational database schema (schema v11), the same relative image storage rules, the identical ZIP backup archive layout, and uniform timing math across iOS and Android. However, each build utilizes the optimal native paradigms of its platform.


Comparison Matrix

FeatureHorologe for iOSHorologe for Android
Language & UISwift 6, SwiftUI + @ObservableKotlin 2.4, Jetpack Compose
Design SystemApple HIG, adaptive layout on iPhone & iPadMaterial 3 (Black & Gold #FFE600 brand palette, Material You)
Database LibraryGRDB.swift on SQLite (schema v11)Native direct SQLite (WatchDatabase.kt, schema v11)
Photos & AttachmentsDocuments/watch_images/ with fallback logicRelative paths in app_flutter/watch_images/
Cloud SyncApple CloudKit (multi-record, SHA-256 deduplication)None (strictly offline-first)
App LockBiometric unlock via Face ID / Touch IDBiometric unlock via Android BiometricPrompt
PDF Sheet ExportNative Core Graphics / SwiftUI renderingNative Android PdfDocument with system typography
Service AlarmsLocal notifications via UserNotificationsAlarmManager with MY_PACKAGE_REPLACED boot receiver
Backup FormatCompressed ZIP (manifest.json v3 + photos folder)Compressed ZIP (manifest.json v3 + photos folder)

Platform-Specific Details

Horologe for iOS

  • Smart CloudKit Sync:
    • The primary-v2 record syncs the lightweight JSON manifest (watches, services, wrist time, accuracy).
    • Images upload independently as file-<sha256> records. If an image is already backed up, it is not re-uploaded (content-addressable storage).
    • Anti-Throttling (HTTP 429): large collections with hundreds of high-res photos pass through withServerRetry, honoring CKErrorRetryAfterKey to prevent server rate limits.
  • iPad Experience: large-screen navigation featuring adaptive sidebar controls (.sidebarAdaptable) and multi-column grid views.

Horologe for Android

  • Brand Palette & Material You:
    • Signature dark theme with pure blacks and gold/yellow #FFE600.
    • Custom Style: dynamic extraction from wallpaper (Android 12+) or 8 harmonized presets calculated via material-color-utilities.
  • Zero Internet Permissions: the Android app requests zero network access: all photos and databases remain completely sandboxed on-device.
  • Alarm Resilience: service reminders survive app updates via the MY_PACKAGE_REPLACED broadcast receiver.

Interchangeable ZIP Backups

The .zip archive exported by Horologe contains:

  1. manifest.json: version 3 JSON database dump.
  2. watch_images/: high-resolution watch photos named systematically (watch_1_cover.jpg, etc.).

You can export your watch collection from an iPhone and restore it instantly on an Android device, or vice versa, with zero data loss.