Develop — Get Started
develop specs/develop/get-started.kmd
Cross-platform onboarding index para `kds.koder.dev/get-started/`. Lista 6 surfaces (Flutter / Compose / SwiftUI / Web / XR preview / Wear preview), decision tree "qual surface?", quickstart copy-paste por surface, cross-link com koder-app/behaviors.kmd.
When this spec applies
Primary triggers
- Provide entry-point doc for any Koder developer surface
All triggers
- New developer onboarding to Koder design system
- Render kds.koder.dev/get-started/ landing
Specification body
Spec — Develop / Get Started
Index curto onboarding cross-platform. Renderizado em
kds.koder.dev/get-started/viatools/design-gen#013(ticket pending). Esta spec define o contrato do conteúdo; design-gen ticket cobre a renderização.
R1 — Six canonical surfaces
| # | Surface | Tech stack | Spec |
|---|---|---|---|
| 1 | Flutter | Dart + Flutter SDK + koder_kit package | per-product Flutter spec; widgets em koder_kit/lib/* |
| 2 | Compose Android | Kotlin + Compose + koder-design-compose | android-compose.kmd |
| 3 | SwiftUI iOS | Swift + SwiftUI + koder-design-swift | ios-swiftui.kmd |
| 4 | Web | HTMX + Templ + koder_web_kit (templ-side) OR Flutter Web | per-product; web kit em engines/sdk/koder_web_kit/ |
| 5 | XR preview | Compose + Jetpack XR SDK | xr-preview.kmd + xr-composables.kmd |
| 6 | Wear preview | Compose Wear OS + koder_kit_wear | wear-os.kmd (status preview) |
R2 — Decision tree: which surface?
What's the target form factor?
├── Phone / tablet (consumer-facing)
│ ├── Cross-platform priority → Flutter (R1.1)
│ └── Native-only priority → Compose Android (R1.2) + SwiftUI iOS (R1.3) parallel
├── Web (admin dashboards, console UIs, marketing landings)
│ ├── Server-rendered HTMX + Templ → koder_web_kit (R1.4)
│ └── Highly interactive SPA → Flutter Web (R1.4)
├── XR (Vision Pro, Quest, Android XR)
│ └── Compose XR (R1.5) — preview
├── Wear OS
│ └── Compose Wear (R1.6) — preview, no Koder consumer yet
└── CLI / TUI
└── Go + bubbletea; design system minimal (text + ANSI colors)
R3 — Quickstart per surface
R3.1 — Flutter
# Create new product
mkdir -p ~/dev/koder/products/horizontal/my-product/app
cd ~/dev/koder/products/horizontal/my-product/app
flutter create .
# Add koder_kit
cat >> pubspec.yaml <<EOF
dependencies:
koder_kit:
path: ../../../engines/sdk/koder_kit
EOF
flutter pub get
import 'package:flutter/material.dart';
import 'package:koder_kit/koder_kit.dart';
void main() {
runApp(const KoderApp(
productId: 'my-product',
home: MyHomePage(),
));
}
R3.2 — Compose Android
// In your Activity / Compose root
import dev.koder.design.compose.theme.KoderDesignTheme
@Composable
fun MyApp() {
KoderDesignTheme {
// Your composables here; use Material 3 components with Koder skin
}
}
R3.3 — SwiftUI iOS
import SwiftUI
import KoderDesignSwift
@main
struct MyApp: App {
var body: some Scene {
WindowGroup {
ContentView()
.koderDesignTheme()
}
}
}
R3.4 — Web (Templ + HTMX)
<!-- In a templ template -->
{{ template "koder-app-shell" . }}
<main>
<koder-button variant="filled" hx-post="/action">Click me</koder-button>
</main>
R3.5 — XR
// Wrap your app root in Subspace + Koder XR overrides
KoderXrOverrides {
KoderUserSubspace {
KoderDesignTheme {
// 2D content; auto-spatializes per xr-composables.kmd R6
}
}
}
R3.6 — Wear OS (preview)
// Compose Wear OS
KoderWearTheme { // koder_kit_wear (futuro)
KoderPrimaryLayout(
titleSlot = { Text("My Watch") },
mainSlot = { /* content */ },
bottomSlot = { KoderEdgeButton(...) },
)
}
R4 — Cross-link com behaviors.kmd
Every surface MUST ratify koder-app/behaviors.kmd:
| Behavior | Apply how |
|---|---|
| §1 Login / sign-in | Use KoderSignInButton (Flutter) / KoderSignIn (Compose) / equivalent |
| §4 Auto-update | Settings toggle ON default; OS-native updater |
| §9 i18n | KoderL10n (Flutter) / LocalizedString (Compose) / String(localized:) (SwiftUI) |
Errors (errors/user-facing-messages.kmd) | KoderErrorBanner + structured KoderError |
Updates (koder-app/behaviors.kmd §4) | KoderUpdateBanner |
R5 — i18n
| Key | en-US | pt-BR |
|---|---|---|
get_started.title | "Get Started" | "Comece" |
get_started.subtitle | "Build with the Koder Design System" | "Construa com o Koder Design System" |
get_started.cta.quickstart | "Quickstart" | "Início rápido" |
get_started.surface.flutter | "Flutter" | "Flutter" |
get_started.surface.compose | "Compose Android" | "Compose Android" |
get_started.surface.swiftui | "SwiftUI iOS" | "SwiftUI iOS" |
get_started.surface.web | "Web" | "Web" |
get_started.surface.xr | "XR preview" | "XR (prévia)" |
get_started.surface.wear | "Wear preview" | "Wear (prévia)" |
get_started.decision.title | "Which surface should I use?" | "Qual plataforma usar?" |
R6 — Surface bindings (rendering)
Renderização gerenciada por tools/design-gen#013 (página /get-started/).
Esta spec é o conteúdo source; design-gen ticket cobre tabs por surface,
copy-paste code blocks, decision-tree component.
T-suite
Foundation-level — verified at content level:
- T1 All 6 surfaces listed in R1.
- T2 Decision tree (R2) covers all canonical form factors.
- T3 Quickstart per surface (R3) is copy-paste-runnable.
- T4 Cross-link com
behaviors.kmd(R4) actionable. - T5 i18n (R5) baseline en-US + pt-BR.
(T-suite por widget vive nas surface specs individuais.)
Cross-link
- Surface specs:
specs/develop/*.kmd - Behaviors:
../koder-app/behaviors.kmd - i18n:
../i18n/contract.kmd - Code samples toggle:
code-samples-toggle.kmd(#049.60) - Rendering ticket:
tools/design-gen/backlog/pending/013-kds-get-started-page.md
References
specs/develop/android-compose.kmdspecs/develop/ios-swiftui.kmdspecs/develop/xr-preview.kmdspecs/develop/xr-composables.kmdspecs/develop/wear-os.kmdspecs/develop/code-samples-toggle.kmdspecs/koder-app/behaviors.kmd