On Android, the Loop through Polar's BLE SDK 8.3.0 (from JitPack, asked for Polar's group alone, its files pinned by SHA-256 in Gradle's verification metadata): LoopBridge.kt over app.halkyon.train/loop, the first-time use's figures mapped and checked in LoopSetup.kt, tested on the JVM. PolarLoop per person remembers the band in loop.json, connects while the app is open, sets its clock at each connection, keeps what it tells (battery, charging, firmware), offers a changed profile and sends it only when asked (D35: first-time use writes a new user identifier each time), and lets the band go by a factory reset after asking. The setup sheet finds Loops nearest first and asks only for what the profile lacks; Polar's defaults (60, 220 less the age, a VO2max from Polar's fitness tables) go to the band alone. Polar's SDK is not free software (D36, correcting D32): the app's AGPL gains a section 7 permission for linking it, LICENSE.md names it, and its licence and bundled notices join the licence list on Android. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Signed-off-by: Tizian 「ティツィアーン」 <raisondetredev@pm.me>
111 lines
4 KiB
YAML
111 lines
4 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
|
|
equatable: ^3.0.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
|
|
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
|
|
# 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
|
|
|
|
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
|