halkyon/apps/train/halkyon_train_flutter/pubspec.yaml
Tizian 「ティツィアーン」 d4d749eb9f
feat(train): Home, Maps, Record, Groups and Profile in Learn's frame, washed in carrot (ADR 0030, D60)
Train's tabs are Strava's five where one screen with four tabs at its
top had held workouts, days, plans and routes: Home the workouts, Maps
the routes, Record recording and the interval plans, Groups a screen
saying they come later, Profile the days and the way to the account.
A device that doesn't record has no Record tab, its plans beside the
days in Profile.

The frame is halkyon_ui's NavigationFrame, driven by go_router as
Learn's: a workout's page opens in Home and a day's in Profile with the
tabs beside them; the route and plan editors and the recording cover
them, their content handed over as it is. Every tab washes down from the
top in carrot, the warm end of Train's icon, as Learn's in cobalt.

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

129 lines
4.8 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
# The five tabs and the screens over them (ADR 0030, D60), as Learn's.
go_router: ^18.0.2
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