256 lines
11 KiB
YAML
256 lines
11 KiB
YAML
name: halkyon_learn_flutter
|
|
description: A new Flutter project with Serverpod.
|
|
|
|
# The following line prevents the package from being accidentally published to
|
|
# pub.dev using `pub publish`. This is preferred for private packages.
|
|
publish_to: 'none' # Remove this line if you wish to publish to pub.dev
|
|
|
|
# The following defines the version and build number for your application.
|
|
# A version number is three numbers separated by dots, like 1.2.43
|
|
# followed by an optional build number separated by a +.
|
|
# Both the version and the builder number may be overridden in flutter
|
|
# build by specifying --build-name and --build-number, respectively.
|
|
# In Android, build-name is used as versionName while build-number used as versionCode.
|
|
# Read more about Android versioning at https://developer.android.com/studio/publish/versioning
|
|
# In iOS, build-name is used as CFBundleShortVersionString while build-number used as CFBundleVersion.
|
|
# Read more about iOS versioning at
|
|
# https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html
|
|
version: 0.25.0+28
|
|
|
|
environment:
|
|
sdk: '^3.13.0'
|
|
flutter: '^3.44.4'
|
|
|
|
resolution: workspace
|
|
|
|
dependencies:
|
|
# Our fork of the editor's main branch, moved to win32 v6 so the app can stay in the pub
|
|
# workspace, pinned to a signed commit of its branch halkyon/win32-v6.
|
|
appflowy_editor:
|
|
git:
|
|
url: https://code.halkyon.app/project-halkyon/appflowy-editor.git
|
|
ref: 81c3006c74e789ed2e470b8612529541b358fd26
|
|
# Anki packages are zip files.
|
|
archive: ^4.0.7
|
|
# Sounds in content (pronunciations): one package for all five platforms; on
|
|
# Linux it plays through GStreamer, whose development files a Linux build needs.
|
|
audioplayers: ^6.8.1
|
|
clock: ^1.1.3
|
|
crypto: ^3.0.7
|
|
# The following adds the Cupertino Icons font to your application.
|
|
# Use with the CupertinoIcons class for iOS style icons.
|
|
cupertino_icons: ^1.0.5
|
|
# The Pomodoro timer on Linux talks to the desktop's notification server over
|
|
# the session bus; the version the network packages bring along already.
|
|
dbus: ^0.7.15
|
|
equatable: ^3.0.0
|
|
expressive_loading_indicator: ^0.0.1
|
|
# Saves exports on Android and iOS, where file_selector has no save dialog
|
|
# (the system's through it: Android's Storage Access Framework); the editor
|
|
# brings this version along already.
|
|
file_picker: ^13.1.0
|
|
# Picks the files to import (and later the images to add), and saves exports
|
|
# on the desktop: flutter.dev's own.
|
|
file_selector: ^1.1.0
|
|
flutter:
|
|
sdk: flutter
|
|
flutter_bloc: ^9.1.1
|
|
flutter_localizations:
|
|
sdk: flutter
|
|
flutter_math_fork: ^0.7.4
|
|
# Keeps the token of a Jellyfin server in the system's keyring; Serverpod's
|
|
# sign-in keeps its session there with it already.
|
|
flutter_secure_storage: ^10.0.0
|
|
fractional_indexing_dart: ^1.0.7
|
|
# Pinned exactly: every device on one app version must compute the same
|
|
# schedules.
|
|
fsrs: 2.0.1
|
|
go_router: ^18.0.2
|
|
# 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
|
|
# data opened and closed, and syncing it, with texts of its own.
|
|
halkyon_app:
|
|
path: ../../../packages/halkyon_app
|
|
# The client side of halkyon_base: people's public profiles, which the
|
|
# instance's register keeps (ADR 0016).
|
|
halkyon_base_client:
|
|
path: ../../../packages/halkyon_base_client
|
|
# Halkyon's low-level parts (a shared package): the queues the repositories
|
|
# run their work in (SerialQueue, CoalescingRunner).
|
|
halkyon_core:
|
|
path: ../../../packages/halkyon_core
|
|
halkyon_learn_client:
|
|
path: ../halkyon_learn_client
|
|
# Language models' APIs (a shared package, ADR 0021, D15): the protocols a
|
|
# person's own assistant is asked in, which their settings keep.
|
|
halkyon_llm:
|
|
path: ../../../packages/halkyon_llm
|
|
# 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.
|
|
halkyon_oidc_flutter:
|
|
path: ../../../packages/halkyon_oidc_flutter
|
|
# Halkyon's look, shared by its apps (a shared package): the theme, the bundled
|
|
# Noto Sans, window sizes and the widgets every screen is built of.
|
|
halkyon_ui:
|
|
path: ../../../packages/halkyon_ui
|
|
# Anki's fields are HTML; the editor brings this parser along already.
|
|
html: ^0.15.6
|
|
# Talks to Jellyfin servers; Serverpod's client brings it along already.
|
|
http: ^1.6.0
|
|
# Photos for an assistant's question, taken with the camera's own app or
|
|
# picked from the system's photo picker (the developer's review of 3 Nov
|
|
# 2026): flutter.dev's own, no permission asked on Android.
|
|
image_picker: ^1.2.4
|
|
intl: ^0.20.3
|
|
lucide_icons_flutter: ^3.1.20
|
|
material_ui: ^1.5.0
|
|
# Cuts Japanese into words on the device (ADR 0012): MeCab 0.996 (BSD), which
|
|
# the package's build hook compiles from its C++, so every build, `flutter
|
|
# test` too, needs a C++ compiler; its dictionary, IPADIC, comes from the
|
|
# instance once the person asks for it.
|
|
mecab_for_dart: ^2.0.5
|
|
# Videos from a Jellyfin server on Linux and Windows, where video_player has
|
|
# no player: libmpv (MIT; libmpv LGPL), the system's on Linux (a Linux build
|
|
# needs libmpv-dev), bundled on Windows. Used directly rather than behind
|
|
# video_player, which can't keep libmpv from drawing the video's own
|
|
# subtitles. Not fvp, whose libmdk is closed.
|
|
media_kit: ^1.2.6
|
|
media_kit_libs_linux: ^1.2.1
|
|
media_kit_libs_windows_video: ^1.0.11
|
|
media_kit_video: ^2.0.1
|
|
package_info_plus: ^10.2.2
|
|
path: ^1.9.1
|
|
# SVG path data, for the strokes KanjiVG draws characters with.
|
|
path_parsing: ^1.1.0
|
|
path_provider: ^2.1.6
|
|
# Modern Anki packages are zstd-compressed, every frame without its content
|
|
# size, which upstream's v1.0.0 refuses. Our fork decodes them, pinned to a
|
|
# signed commit of its branch halkyon/unknown-content-size; back to upstream
|
|
# once it decodes them too.
|
|
pdfrx: ^2.6.5
|
|
pure_zstd:
|
|
git:
|
|
url: https://code.halkyon.app/project-halkyon/pure-zstd.git
|
|
ref: 596b63d5741d479073fbfc78377cc7dbdd342da3
|
|
serverpod_auth_idp_flutter: 4.0.4
|
|
serverpod_flutter: 4.0.4
|
|
serverpod_offline_sync_client: 0.0.10
|
|
# Anki collections are SQLite databases (the sync engine already bundles it).
|
|
sqlite3: ^3.6.0
|
|
url_launcher: ^6.3.2
|
|
# Videos from a Jellyfin server elsewhere: flutter.dev's player (ExoPlayer on
|
|
# Android, AVPlayer on iOS and macOS).
|
|
video_player: ^2.14.1
|
|
youtube_player_iframe: ^6.0.2
|
|
|
|
dev_dependencies:
|
|
fake_async: ^1.3.3
|
|
# The flags halkyon_app draws where an instance keeps its data, which the
|
|
# whole-app tests look for.
|
|
flag: ^7.1.0
|
|
# Used for agents to drive the app through the Dart MCP
|
|
flutter_driver:
|
|
sdk: flutter
|
|
# Writes the app's icons for every platform from assets/icon/halkyon_learn_icon.png,
|
|
# run through the repository's tool/app_icons.py (see the flutter_launcher_icons
|
|
# section below).
|
|
flutter_launcher_icons: ^0.14.4
|
|
flutter_test:
|
|
sdk: flutter
|
|
# Checks on a device what no widget test can see (integration_test/).
|
|
integration_test:
|
|
sdk: flutter
|
|
# The sync tests (test/sync/) sign in like the app and read the server's database.
|
|
postgres: ^3.5.16
|
|
serverpod_auth_core_client: 4.0.4
|
|
yaml: ^3.1.4
|
|
|
|
# For information on the generic Dart part of this file, see the
|
|
# following page: https://dart.dev/tools/pub/pubspec
|
|
|
|
# The following section is specific to Flutter.
|
|
flutter:
|
|
# Generates AppLocalizations from lib/l10n (see l10n.yaml).
|
|
generate: true
|
|
|
|
# The following line ensures that the Material Icons font is
|
|
# included with your application, so that you can use the icons in
|
|
# the material Icons class.
|
|
uses-material-design: true
|
|
|
|
# To add assets to your application, add an assets section, like this:
|
|
# assets:
|
|
# - images/a_dot_burr.jpeg
|
|
# - images/a_dot_ham.jpeg
|
|
|
|
# An image asset can refer to one or more resolution-specific "variants", see
|
|
# https://flutter.dev/assets-and-images/#resolution-aware.
|
|
|
|
# For details regarding adding assets from package dependencies, see
|
|
# https://flutter.dev/assets-and-images/#from-packages
|
|
assets:
|
|
- assets/config.json
|
|
# What each release changed, one file a release and language
|
|
# (<version>.<language>.txt), drafted by tool/release.dart and edited
|
|
# (Halkyon Train's ADR 0030, D61): halkyon_app's What's new shows them.
|
|
- assets/whats_new/
|
|
# The app's icon (ADR 0031), the window's on Linux, atop the navigation rail and
|
|
# on the launch screen (D6), and Lucide's notice for it.
|
|
- assets/icon/halkyon_learn_icon.png
|
|
- assets/icon/LICENSE-lucide.txt
|
|
# Region maps for map questions (see assets/maps/ATTRIBUTION.md).
|
|
- assets/maps/japan_prefectures.geojson
|
|
- assets/maps/world_countries.geojson
|
|
- assets/maps/LICENSE-CLDR.txt
|
|
# The CJK fonts' licence, for the licence list (see assets/fonts/ATTRIBUTION.md).
|
|
- assets/fonts/OFL-NotoSansCJK.txt
|
|
# The licences of MeCab, its dictionary IPADIC and Ve's rules, which cut Japanese
|
|
# into words on the device (ADR 0012).
|
|
- assets/mecab/
|
|
# How kanji and kana are written, from KanjiVG (see assets/kanjivg/ATTRIBUTION.md).
|
|
- assets/kanjivg/
|
|
# How Chinese characters are written, from Make Me a Hanzi (see
|
|
# assets/makemeahanzi/ATTRIBUTION.md), and the Hangul letters.
|
|
- assets/makemeahanzi/
|
|
- assets/hangul/
|
|
|
|
# The CJK fonts, the same on every device and never fetched: Noto Sans JP, SC, TC
|
|
# and KR for Japanese, Chinese and Korean, behind halkyon_ui's Noto Sans, in the
|
|
# order a studyset's language asks for (halkyon_ui's appFontFallbackFor, which
|
|
# names them by these families). Each file holds every weight (variable fonts).
|
|
fonts:
|
|
- family: Noto Sans JP
|
|
fonts:
|
|
- asset: assets/fonts/NotoSansJP-Variable.otf
|
|
- family: Noto Sans SC
|
|
fonts:
|
|
- asset: assets/fonts/NotoSansSC-Variable.otf
|
|
- family: Noto Sans TC
|
|
fonts:
|
|
- asset: assets/fonts/NotoSansTC-Variable.otf
|
|
- family: Noto Sans KR
|
|
fonts:
|
|
- asset: assets/fonts/NotoSansKR-Variable.otf
|
|
|
|
# The app's icons, written by the repository's tool/app_icons.py: it prepares the
|
|
# images derived from Lucide's graduation cap in build/icons/ first, then runs `dart
|
|
# run flutter_launcher_icons` with this. Android: an adaptive icon, the cap on white
|
|
# for each launcher to cut to its shape, and the square one older Androids show. iOS: without
|
|
# transparency, as Apple requires. macOS: the rounded tile on Apple's grid. Windows:
|
|
# the rounded tile (tool/app_icons.py then writes its .ico with every size).
|
|
flutter_launcher_icons:
|
|
image_path: "assets/icon/halkyon_learn_icon.png"
|
|
android: true
|
|
adaptive_icon_background: "#ffffff"
|
|
adaptive_icon_foreground: "assets/icon/halkyon_learn_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
|