core-time: shared date/time helpers (DayWindow + Instant formatting)
First module of floret-kit, the shared Material 3 Expressive design system + plumbing for the Floret app family. core-time is a pure-Kotlin JVM library (DayWindow local-day boundaries + locale/zone-aware Instant formatting), extracted from Agendula. Standalone build + 2 unit tests green. Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
This commit is contained in:
42
README.md
Normal file
42
README.md
Normal file
@@ -0,0 +1,42 @@
|
||||
# floret-kit
|
||||
|
||||
The shared **Material 3 Expressive design system + plumbing** for the Floret
|
||||
family of Android apps ([Calendula](https://gitea.jeanlucmakiola.de/makiolaj/calendula),
|
||||
[Agendula](https://gitea.jeanlucmakiola.de/makiolaj/agendula), and future siblings).
|
||||
|
||||
"Floret" is the family's design language: a Calendula flower head is a cluster of
|
||||
many small *florets*, and each app is one of them. This repo is the bloom they
|
||||
share — so a new app doesn't reinvent a settings screen, an edit form, or a theme;
|
||||
it draws from here.
|
||||
|
||||
## How it's consumed
|
||||
|
||||
Each app embeds this repo as a **git submodule** and wires it in with a Gradle
|
||||
**composite build**, so the kit is always built **from source** (no published
|
||||
artifacts — keeps every app reproducible for F-Droid):
|
||||
|
||||
```kotlin
|
||||
// app's settings.gradle.kts
|
||||
includeBuild("floret-kit")
|
||||
```
|
||||
```kotlin
|
||||
// app module's build.gradle.kts
|
||||
implementation("de.jeanlucmakiola.floret:core-time")
|
||||
```
|
||||
|
||||
Gradle's dependency substitution maps `de.jeanlucmakiola.floret:<module>` to the
|
||||
local source module — edit the kit and the app picks it up immediately.
|
||||
|
||||
## Modules
|
||||
|
||||
| Module | What it holds |
|
||||
|--------|---------------|
|
||||
| `core-time` | Pure-Kotlin date/time helpers: local-day windows (`DayWindow`) for smart-list logic and locale/zone-aware display formatting (`Instant.formatDate()` / `formatTime()` / `formatDateTime()`). No Android, no deps. |
|
||||
|
||||
_More modules (identity/theme, components, screen recipes, provider/prefs/reminders/crash plumbing) land as they're extracted from the apps._
|
||||
|
||||
## Build
|
||||
|
||||
```sh
|
||||
./gradlew :core-time:test
|
||||
```
|
||||
Reference in New Issue
Block a user