screen-locker/stronglift_replacement/workout_app/pubspec.yaml
2026-11-01 19:55:30 +01:00

89 lines
2.9 KiB
YAML

name: workout_app
description: "Workout tracker replacing StrongLifts"
publish_to: 'none'
version: 1.0.0+1
environment:
sdk: ^3.12.2
dependencies:
audioplayers: 6.8.1
crdt_sync:
git:
url: https://github.com/kuhyx/utils
ref: crdt_sync_dart-v0.11.3
path: crdt_sync_dart
# HMAC-SHA256 for the signed phone->PC workout poke (pc_poke_wire.dart).
crypto: 3.0.8
# Export/import file plumbing (Save-as picker, open picker), shared.
data_transfer_flutter:
git:
url: https://github.com/kuhyx/utils
ref: data_transfer_flutter-v0.2.0
path: data_transfer_flutter
flutter:
sdk: flutter
# Keeps the rest-period deadline ticking with the screen off, and owns the
# ongoing status-bar notification the user records sets from. A Dart timer
# in the UI isolate cannot do this: Android throttles it and Doze suspends
# it, which is why the break-end cue used to just never fire.
flutter_foreground_task: 11.0.3
# The break-end alert itself, on its own high-importance channel so the OS
# rings even if the Flutter isolate is busy.
flutter_local_notifications: 22.3.3
flutter_secure_storage: 11.2.0
# One-tap sign-in for the sync account. App-side only: crdt_sync stays pure
# Dart so it keeps working on Linux desktop and headless.
google_sign_in: 7.2.0
http: 1.6.0
path: 1.9.1
path_provider: 2.1.6
permission_handler: 13.0.2
shared_preferences: 2.5.6
sqflite: 2.4.5
# Linux desktop has no sqflite plugin; the FFI factory drives the same
# schema (and already backed the test suite before the desktop target).
sqflite_common_ffi: 2.4.5
sync_settings_ui:
git:
url: https://github.com/kuhyx/utils
ref: sync_settings_ui-v0.4.3
path: sync_settings_ui
url_launcher: 6.3.3
uuid: 4.6.0
vibration: 3.2.1
dev_dependencies:
audioplayers_platform_interface: 7.2.0
# Generates the Android launcher icons from assets/icon/ (see
# python_pkg/app_icons in testsAndMisc for the shared style).
flutter_launcher_icons: 0.14.4
flutter_lints: ^6.0.0
flutter_test:
sdk: flutter
# audioplayers copies an AssetSource into the temp dir before playing it,
# so a widget test that asserts the break-end cue actually sounded needs
# path_provider faked as well. Without it the play fails with
# MissingPluginException and is swallowed by _playBreakEndCue's catch.
path_provider_platform_interface: 2.1.3
very_good_analysis: ^11.0.0
flutter:
uses-material-design: true
assets:
- assets/sounds/break_end.mp3
# Launcher icon generation. Source art is produced by the shared generator:
# PYTHONPATH=~/src/testsAndMisc python3 -m python_pkg.app_icons generate --app <key>
# then run: dart run flutter_launcher_icons
flutter_launcher_icons:
android: true
ios: false
image_path: "assets/icon/icon.png"
adaptive_icon_background: "#211D1B"
adaptive_icon_foreground: "assets/icon/icon_foreground.png"
adaptive_icon_monochrome: "assets/icon/icon_monochrome.png"
min_sdk_android: 21