oka 0.2.0
oka: ^0.2.0 copied to clipboard
No-Gradle build system for Flutter Android. Runs `flutter assemble` with direct Android SDK tools (aapt2, d8, apksigner) — no Gradle daemon — with plugin packaging, AAB support, and dependency recovery.
Changelog #
All notable changes to the Oka project will be documented in this file.
0.2.0 #
Added #
-
Composable cache diagnostics with detailed device, profile, session and registry records,
--kindfiltering, and structured observations in JSON. -
Global
oka cacheoverview,cleanpreview/apply, bounded project discovery with--scan, saved cleanup plans, optional terminal confirmation, and a machine-readableschemawith next-action argv arrays. -
oka cache statsreports storage by path/platform, including emulator and simulator data;oka cache prunepreviews scoped cleanup and applies it only with--apply. JSON output supports agent workflows.
Fixed #
-
Cache size help accepts KB/GB and KiB/GiB suffixes; indexed-store GC handles absent stores and measures extracted artifact payloads.
-
Use Dart for release and stewardship tooling, without a Python runtime dependency.
-
Harden release PR automation against shell interpretation of PR metadata.
-
Synchronize and publish the complete seven-package release train, including compatible internal dependency constraints.
-
Correct contributor setup commands and add enforced real-build CI validation.
0.1.6 - 2026-07-29 #
Added #
- Complete no-Gradle plugin packaging (
PluginPackager):- Compile plugin Java/Kotlin sources into the app DEX
- Parse Gradle deps + Maven/AAR resolve with limited POM transitives
- Generate per-plugin
BuildConfig - CMake/NDK build for
jni→libdartjni.so - Real non-empty
GeneratedPluginRegistrantby default
- d8 classpath: runtime vs compile-only jars; version/KMP artifact dedupe
Changed #
- Default
oka build apkpackages all plugins (no empty soft-shell registrant) --soft-pluginshidden escape hatch only
0.1.5 - 2026-07-18 #
Added #
oka get android-sdk/ packaging SDK bootstrap under~/.oka/android-sdk(cmdline-tools + build-tools 35 + platforms 34–36)oka clean --android-sdkfor oka-managed SDK cleanup--soft-pluginsbuild flag: skip jni/unsupported hard-fail; soft packaging uses empty plugin registrant- Prefer oka-managed SDK root /
OKA_ANDROID_SDKin locator
Fixed #
- Embedding classes extracted for d8 (avoid natives-in-jar)
- Platform jar fallback when compileSdk platform missing
- Metadata-only AndroidX AARs no longer abort dependency resolve
0.1.4 - 2026-07-18 #
Added #
- No-Gradle Flutter APK pipeline (default
oka build apk)flutter assembleorchestration (debug/profile/release targets)- Host codegen:
MainActivity+GeneratedPluginRegistrant - APK layout staging/validation (
classes.dex,assets/flutter_assets/**,lib/<abi>/libflutter.so) - Engine
libflutter.soextraction from Flutter SDKflutter.jar - Minimal AndroidX + AAR
classes.jardependency cache (DependencyCache) - Plugin discovery from
.flutter-plugins-dependencieswith clear unsupported failures - Release multi-ABI +
libapp.sopackaging paths - Phase checklist:
docs/PHASE_CHECKLIST.mdx - Unit tests under
test/for all phases
Changed #
- Default build no longer uses cargo-apk hybrid or
flutter build apk(Gradle) fallback rust_wrapperdemoted; Cargo.toml valid and unused by default--flutteris a no-op alias; use--native-androidfor legacy non-Flutter pipeline
0.1.0 - 2025-01-10 #
Added #
-
Phase 1: Foundation & AI Infrastructure
- Project structure with CLI support
- Extension type models for configuration (OkaConfig, AndroidConfig, Dependency, etc.)
- AI agent integration with Apple Foundation Models and Gemini fallback
- Prompt templates for Gradle conversion and manifest merging
- Configuration caching system
-
Phase 2: Core Build Pipeline
- Android SDK tool locator (aapt2, d8, r8, kotlinc, javac, etc.)
- APK builder with resource compilation, Kotlin/Java compilation, DEX conversion
- APK packaging and signing with debug keystore
- Basic incremental build support
-
CLI Commands
oka init- Initialize oka.yaml from Gradle or create default configoka build apk- Build debug or release APKoka doctor- Check system requirements and configurationoka clean- Clean build cachesoka dev- Stub for development mode (planned)
-
Documentation
- README with quick start guide
- Architecture overview
- Extension type model patterns
- Configuration examples
Known Limitations #
- Dev mode (hot reload) not yet implemented
- AAR dependency processing not implemented
- Plugin discovery not implemented
- Manifest merging needs testing
- No AAB (Android App Bundle) support yet
Next Steps #
- Complete Phase 3: Dependency Resolution
- Complete Phase 4: Plugin Integration
- Complete Phase 5: Hot Reload
- Create example app with monetization + crashlytics
- Integration testing