Skip to content

Repository files navigation

Ritu

A private journal for your cycle.

For how on-device data is stored and how the schema is laid out, see docs/DATA.md.

For a browsable catalog of Ritu's reusable widgets and screens, see the live Widgetbook at components.ritu.care or widgetbook/ to run it locally.

Prerequisites

  • Flutter (stable)
  • Xcode (for the iOS Simulator on macOS)

Run on the iOS Simulator

flutter pub get
open -a Simulator
flutter devices
flutter run

If more than one device is listed, pick the simulator explicitly:

flutter run -d <device-id>

Example:

flutter run -d 5C36231B-583A-4814-B04B-A907111C331E

You can also launch a specific simulator first:

xcrun simctl list devices available
open -a Simulator --args -CurrentDeviceUDID <simulator-udid>
flutter run

While the app is running: r hot reload, R hot restart, q quit.

Run the tests

flutter test

This runs the widget tests (test/widget_test.dart) and repository unit tests (test/daily_log_repository_test.dart). To run a single file:

flutter test test/widget_test.dart

Widget tests that mount the app use rituTestWidgets, which unmounts the widget tree before each test ends so Drift stream subscriptions cancel cleanly.

Code generation

After changing Drift tables or the @DriftDatabase annotation:

dart run build_runner build

Generated output: lib/data/local/app_database.g.dart (committed to the repo).

Riverpod @riverpod codegen is not wired up yet — riverpod_generator currently conflicts with drift_dev on the shared build_runner / analyzer versions. Providers in lib/providers/ are hand-written Provider / StreamProvider declarations for now.

Generate an iOS test build (TestFlight)

You need an Apple Developer Program membership and an app record in App Store Connect with bundle ID care.ritu.ritu.

  1. Bump the build number in pubspec.yaml before each upload (marketing version can stay the same):

    version: 0.1.0+2

    Format is x.y.z+build. Apple requires the +build number to increase on every upload.

  2. Build the IPA:

    flutter pub get
    flutter build ipa

    The IPA lands in build/ios/ipa/.

  3. Upload to App Store Connect (pick one):

    • Open ios/Runner.xcworkspace in Xcode → Product → ArchiveDistribute AppApp Store ConnectUpload
    • Or open Transporter / Xcode Organizer and upload the IPA from build/ios/ipa/
  4. In App Store Connect → your app → TestFlight, wait for processing, then invite internal testers (fastest) or external testers (first build needs Beta App Review).

Testers install the free TestFlight app, accept the invite, and install Ritu from there. Builds expire after 90 days.

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages