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.
- Flutter (stable)
- Xcode (for the iOS Simulator on macOS)
flutter pub get
open -a Simulator
flutter devices
flutter runIf more than one device is listed, pick the simulator explicitly:
flutter run -d <device-id>Example:
flutter run -d 5C36231B-583A-4814-B04B-A907111C331EYou can also launch a specific simulator first:
xcrun simctl list devices available
open -a Simulator --args -CurrentDeviceUDID <simulator-udid>
flutter runWhile the app is running: r hot reload, R hot restart, q quit.
flutter testThis 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.dartWidget tests that mount the app use rituTestWidgets, which unmounts the widget tree before each test ends so Drift stream subscriptions cancel cleanly.
After changing Drift tables or the @DriftDatabase annotation:
dart run build_runner buildGenerated 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.
You need an Apple Developer Program membership and an app record in App Store Connect with bundle ID care.ritu.ritu.
-
Bump the build number in
pubspec.yamlbefore each upload (marketing version can stay the same):version: 0.1.0+2
Format is
x.y.z+build. Apple requires the+buildnumber to increase on every upload. -
Build the IPA:
flutter pub get flutter build ipa
The IPA lands in
build/ios/ipa/. -
Upload to App Store Connect (pick one):
- Open
ios/Runner.xcworkspacein Xcode → Product → Archive → Distribute App → App Store Connect → Upload - Or open Transporter / Xcode Organizer and upload the IPA from
build/ios/ipa/
- Open
-
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.