halkyon/apps/train/halkyon_train_flutter/pubspec.yaml
Tizian 「ティツィアーン」 3336fe4eca
feat(train): signing in to Jellyfin and marking playlists (ADR 0030, D47)
Music's decisions as D47, and its first part: the music screen from the
account sheet, on Android, signs in to the person's Jellyfin with Quick
Connect, else a password, and lists their playlists of music to mark
for running. The token is in the keyring, the server and the marks in
the person's music.json, nothing on Train's server.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Signed-off-by: Tizian 「ティツィアーン」 <raisondetredev@pm.me>
2026-10-30 15:53:03 +01:00

127 lines
4.7 KiB
YAML

name: halkyon_train_flutter
description: Halkyon Train, the app.
publish_to: none
# <version>+<build>: the build rises with every release, and the instance asks apps below
# its minimum build to update (halkyon_base's instance basics).
version: 0.1.0+1
environment:
sdk: '^3.13.0'
flutter: '^3.44.4'
resolution: workspace
dependencies:
clock: ^1.1.3
# What a route's map kept offline was made for (ADR 0030, D45).
crypto: ^3.0.7
equatable: ^3.0.0
# A GPX file brought in (ADR 0030, D45), the platform's own dialog, as
# Learn and halkyon_app open and save files.
file_selector: ^1.1.0
flutter:
sdk: flutter
flutter_bloc: ^9.1.1
# What every Halkyon app is built around (a shared package): the instances a
# device keeps accounts on, signing in through halkyon_base, each person's
# dependencies opened and closed, with texts of its own.
# Workouts' tracks over the map (ADR 0030, D11, D23): the map widget, the
# vector tiles of the instance's source (OpenFreeMap without a setting, D22),
# and its coordinates.
flutter_map: ^8.3.2
# The Jellyfin token in the keyring (ADR 0030, D47), as halkyon_app keeps
# the account's keys.
flutter_secure_storage: ^10.0.0
halkyon_app:
path: ../../../packages/halkyon_app
# The device's half of signing in with OpenID Connect (ADR 0023): the
# browser that SimpleLogin's sign-in opens, and on Linux and Windows the
# loopback it comes back to, which the app builds with its name.
# Running Health Connect's writes and reads one at a time (a shared package,
# ADR 0030, D31).
halkyon_core:
path: ../../../packages/halkyon_core
halkyon_oidc_flutter:
path: ../../../packages/halkyon_oidc_flutter
halkyon_train_client:
path: ../halkyon_train_client
# Halkyon's look, shared by its apps (a shared package): the theme, the bundled
# Noto Sans and the widgets every screen is built of.
halkyon_ui:
path: ../../../packages/halkyon_ui
# A route's map kept offline (D45): its style, sprites and tiles asked
# for directly, as vector_map_tiles asks for them.
http: ^1.6.0
# gen-l10n's output imports it.
intl: ^0.20.3
latlong2: ^0.10.1
lucide_icons_flutter: ^3.1.20
material_ui: ^1.5.0
package_info_plus: ^10.2.2
path: ^1.9.1
path_provider: ^2.1.6
serverpod_auth_idp_flutter: 4.0.4
serverpod_flutter: 4.0.4
serverpod_offline_sync_client: 0.0.10
url_launcher: ^6.3.2
# Pinned: the 9 line is beta, the only one for flutter_map 8 (D23); moves to
# 9.0.0 once it is released.
vector_map_tiles: 9.0.0-beta.13
# Reads a style kept offline (D45), which vector_map_tiles reads only from
# the network; the version vector_map_tiles takes.
vector_tile_renderer: ^6.1.0
# Routes as GPX, written and read (D45).
xml: ^7.0.1
dev_dependencies:
flutter_driver:
sdk: flutter
# Writes the app's icons for every platform from assets/icon/halkyon_train_icon.png,
# run through the repository's tool/app_icons.py (see the section below).
flutter_launcher_icons: ^0.14.4
flutter_test:
sdk: flutter
flutter:
# Generates AppLocalizations from lib/l10n (see l10n.yaml).
generate: true
# Material's icon font, which serverpod_auth_idp_flutter's widgets ask for
# (it sets this itself): without it every build and test run warns, and
# Material's icons would draw as boxes.
uses-material-design: true
assets:
# The instance the build names, unless --dart-define=SERVER_URL=… does
# (serverpod_flutter's getServerUrl).
- assets/config.json
# The app's icon, Lucide's bike (ADR 0031), and Lucide's licence for the
# licence list (the repository's tool/app_icons.py writes both).
- assets/icon/halkyon_train_icon.png
- assets/icon/LICENSE-lucide.txt
# Polar's BLE SDK, which the Android app links for the Loop (ADR 0030,
# D36): its licence and the notices of what it bundles, verbatim from its
# 8.3.0 tag (line ends made Unix's), for the licence list.
- assets/licences/Polar_SDK_License.txt
- assets/licences/Polar_ThirdPartySoftwareListing.txt
# The app's icons, written by the repository's tool/app_icons.py: it prepares the
# rounded images in build/icons/ first, then runs `dart run flutter_launcher_icons`.
# Android: the adaptive icon, on white, for the launcher to cut to its shape, and the
# square one older Androids show. iOS: without its alpha channel, on white. macOS and
# Windows: the rounded tile.
flutter_launcher_icons:
image_path: "assets/icon/halkyon_train_icon.png"
android: true
adaptive_icon_background: "#ffffff"
adaptive_icon_foreground: "assets/icon/halkyon_train_icon.png"
ios: true
remove_alpha_ios: true
background_color_ios: "#ffffff"
macos:
generate: true
image_path: "build/icons/macos.png"
windows:
generate: true
image_path: "build/icons/rounded.png"
icon_size: 256