Overview
CycleOne is a high-performance, open-source period tracker designed for users who value privacy above all else.
In an era of cloud-connected health apps, CycleOne takes a stand: Your health data is yours alone. Built with a strict "local-only" architecture, it provides professional-grade cycle prediction, symptom tracking, and historical analysis without ever requesting network access, requiring an account, or charging a subscription fee.
Advanced Prediction Engine
Period Projection: Intelligent estimations for start dates and duration based on historical averages.
Ovulation Tracking: Automatic calculation of ovulation and fertile windows.
Irregularity Alerts: Identifies significant cycle variances to help you remain aware of physiological shifts.
Holistic Logging
Flow Intensity: Categorical tracking from spotting to heavy flow.
Symptom Database: Track physical, emotional, and digestive indicators.
Mood & Energy: Document biometric indicators with a streamlined, premium UI.
Notes: Local-only annotations for detailed record-keeping.
Premium User Experience
Native Calendar: Leveraging UICalendarView for a high-contrast, interactive experience.
Dynamic Themes: 5 custom accent color themes (Rose, Lavender, Ocean, Sage, Sunset) to match your style.
Smooth Animations: High-fidelity transitions and staggered animations for a premium app feel.
Zero Emojis: A consistent, professional aesthetic using high-quality SF Symbols.
Localization
In-app language switcher in Settings with runtime locale updates.
Supported languages: English (en), Filipino/Tagalog (fil), Japanese (ja).
Coverage guardrails: localization parity and source-key coverage tests in CycleOneTests/LocalizationCoverageTests.swift.
Localized custom pages: Privacy Policy HTML is shipped per language resource bundle.
Organized resources: language folders are grouped under CycleOne/LocalizationResources/ in source.
Legend correctness: Calendar legend labels resolve localized values (not raw string keys).
Round-trip stability: UI tests validate language switching Japanese -> English and verify localized legend text remains correct.
Note on folder structure:
Source files are grouped in CycleOne/LocalizationResources for maintainability while preserving runtime localization behavior.
The Privacy Manifesto
CycleOne was built from the ground up to be safe:
No Cloud Sync: Your data never leaves your device.
No Accounts: No email, no password, no login required.
No Analytics: Zero third-party tracking or telemetry.
No Network Entitlements: The app doesn't even ask for internet permissions.
Data Sovereignty: Export your entire history to CSV anytime.