- Dart 99.7%
- Makefile 0.3%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
|
|
||
| .forgejo/workflows | ||
| packages | ||
| .gitignore | ||
| .tool-versions | ||
| analysis_options.yaml | ||
| CHANGELOG.md | ||
| LICENSE | ||
| Makefile | ||
| pubspec.lock | ||
| pubspec.yaml | ||
| README.md | ||
AppFoundation
AppFoundation bevat kleine, productneutrale Dart- en Flutter-bouwstenen die OciDeck, Keiko en Limi gezamenlijk gebruiken. Verbeteringen landen hier één keer, worden hier getest en bereiken de toepassingen daarna via een gepinde versie.
De workspace bevat kleine, los versioneerbare packages:
app_appearance: de profielen Basic, Europa en Donker, een stateless Material-themabouwer,AppPalette, kleurhelpers en de contrastpoort voor een uiterlijkprofiel.app_localizations: de gedeelde taalset, frameworks-terugval, taalkeuze en productneutrale vertalingen. Productspecifieke teksten blijven overlays in de toepassingen; de gedeelde catalogus wint bij overlap.secret_storage: het productneutrale opslagcontract, een uitsluitend voor tests en vluchtige sessies bedoelde geheugenimplementatie, en een adapter voor de sleutelhanger van het besturingssysteem. Browseropslag wordt bewust geweigerd, omdat die geen gelijkwaardige veilige sleutelbos biedt.
Nieuwe packages worden pas toegevoegd zodra ten minste twee toepassingen dezelfde bewezen implementatie nodig hebben. Productmodellen, schermen, teksten en beleid blijven in de toepassingen.
Geheimopslag
Applicaties mogen hun eigen sleutelnamen en levenscyclus bepalen, maar gaan via
het gedeelde SecretStore-contract. De Flutter-adapter sluit de poort op het
web: schrijven werpt een fout zonder sleutel of waarde te onthullen, lezen
geeft null, en wissen raakt geen browseropslag. Fouten van een beschikbare
OS-sleutelhanger worden niet verborgen en bereiken de applicatie.
MemorySecretStore is nadrukkelijk geen beveiligde opslag en mag alleen voor
tests of bewust vluchtige gegevens worden gebruikt. Een applicatie mag er in
productie nooit stilzwijgend op terugvallen wanneer de veilige adapter niet
beschikbaar is.
Gebruik
dependencies:
app_appearance:
git:
url: https://pawprint.vigilis.online/LibreKAT/AppFoundation.git
ref: app_appearance-v0.1.0
path: packages/app_appearance
final theme = const AppThemeBuilder().build(AppAppearanceProfile.europa);
De fontFamily van een profiel is nullable. null betekent het systeemfont;
een consumer die een eigen font kiest, moet dat font zelf bundelen. De package
doet geen netwerkverzoeken om fonts op te halen.
Ontwikkelen
Flutter is gepind in .tool-versions. Vanaf de repository-root:
make setup
make check
De root is een native Dart-workspace. Alle packages delen daardoor één
pubspec.lock en één dependency-resolutie.
Herkomst
De eerste packages zijn in 2026 geëxtraheerd uit de actuele EUPL-1.2-code van
OciDeck en Keiko. In app_appearance zijn de ingebouwde profielwaarden en de
contrastregels behouden; Keiko's focusgedrag en OciDecks uitgebreide
uiterlijkcontrastmeting zijn samengebracht. De globale AppTheme.isDark-toestand
is bewust niet overgenomen: thema-opbouw is hier deterministisch en stateless.
De geheimopslag combineert Keiko's kleine opslagcontract met OciDecks
fail-closed platformpoort, zonder de app-specifieke sleutelcatalogi over te
nemen.
Zie de Git-historie van OciDeck en Keiko voor de eerdere auteursbijdragen.
Licentie
European Union Public Licence 1.2 (EUPL-1.2), zie LICENSE.