The developer's decisions of 10 Nov 2026 for calendar feeds, recorded as D39: a project links to a calendar's iCal feed, its events shown beside tasks, read-only; each device fetches it, the address sealed in the project's payload, the last copy kept on the device. This lays the ground: `readIcal` reads a feed's events (title, start, end or duration, all-day, place, cancelled, the dates a recurrence leaves out and the occurrences changed on their own), on the device's clock through `timezone`, and expands their recurrence with pub.dev's `rrule` (Apache-2.0, the developer's choice); `ProjectContent` gains `calendarUrl`, its payload staying schema 1. Nothing shows it yet. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com> Signed-off-by: Tizian 「ティツィアーン」 <raisondetredev@pm.me>
129 lines
4.8 KiB
YAML
129 lines
4.8 KiB
YAML
name: halkyon_todo_flutter
|
|
description: Halkyon Todo, 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.4.0+4
|
|
|
|
environment:
|
|
sdk: '^3.13.0'
|
|
flutter: '^3.44.4'
|
|
|
|
resolution: workspace
|
|
|
|
dependencies:
|
|
clock: ^1.1.3
|
|
# Reactions on comments (ADR 0033, D36): every emoji, searched, recents on
|
|
# the device.
|
|
emoji_picker_flutter: ^4.5.4
|
|
equatable: ^3.0.0
|
|
flutter:
|
|
sdk: flutter
|
|
flutter_bloc: ^9.1.1
|
|
# Tasks' reminders, scheduled with the system on the device (ADR 0033, D5):
|
|
# the instance reads no task, so it can't remind of one.
|
|
flutter_local_notifications: ^22.3.3
|
|
# A task's location picked on a map (ADR 0033, D32), as Train's maps: the
|
|
# map widget, OpenFreeMap's vector tiles and their coordinates.
|
|
flutter_map: ^8.3.2
|
|
# The tabs, each with its own stack of screens, and Settings over them
|
|
# (ADR 0033, D1), as Learn's and Train's.
|
|
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
|
|
# dependencies opened and closed, with texts of its own.
|
|
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.
|
|
# Primitives every Halkyon package shares: `CoalescingRunner`.
|
|
halkyon_core:
|
|
path: ../../../packages/halkyon_core
|
|
# Comments and descriptions as rich text (ADR 0033, D38).
|
|
halkyon_editor:
|
|
path: ../../../packages/halkyon_editor
|
|
halkyon_oidc_flutter:
|
|
path: ../../../packages/halkyon_oidc_flutter
|
|
halkyon_todo_client:
|
|
path: ../halkyon_todo_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
|
|
# This build's version and number, for Settings' foot and what's new.
|
|
package_info_plus: ^10.2.2
|
|
path: ^1.9.1
|
|
path_provider: ^2.1.6
|
|
rrule: ^0.2.18
|
|
serverpod_auth_idp_flutter: 4.0.4
|
|
serverpod_flutter: 4.0.4
|
|
serverpod_offline_sync_client: 0.0.10
|
|
# The instant a reminder is scheduled at, as flutter_local_notifications
|
|
# takes it (in UTC).
|
|
timezone: ^0.11.2
|
|
url_launcher: ^6.3.2
|
|
# Pinned as Train's: the 9 line is beta, the only one for flutter_map 8.
|
|
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_todo_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
|
|
|
|
test: any
|
|
vector_tile_renderer: ^6.1.0
|
|
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
|
|
# What each release changed, one file a release and language
|
|
# (<version>.<language>.txt), drafted by tool/release.dart and edited
|
|
# (Train's ADR 0030, D61): halkyon_app's What's new shows them.
|
|
- assets/whats_new/
|
|
# The app's icon, Lucide's list-todo (ADR 0031), and Lucide's licence for the
|
|
# licence list (the repository's tool/app_icons.py writes both).
|
|
- assets/icon/halkyon_todo_icon.png
|
|
- assets/icon/LICENSE-lucide.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_todo_icon.png"
|
|
android: true
|
|
adaptive_icon_background: "#ffffff"
|
|
adaptive_icon_foreground: "assets/icon/halkyon_todo_icon.png"
|
|
adaptive_icon_monochrome: "build/icons/monochrome.png"
|
|
ios: true
|
|
remove_alpha_ios: true
|
|
background_color_ios: "#ffffff"
|
|
image_path_ios_dark_transparent: "build/icons/ios_dark.png"
|
|
image_path_ios_tinted_grayscale: "build/icons/ios_tinted.png"
|
|
macos:
|
|
generate: true
|
|
image_path: "build/icons/macos.png"
|
|
windows:
|
|
generate: true
|
|
image_path: "build/icons/rounded.png"
|
|
icon_size: 256
|