Skip to content

F-103: hybrid targets progressive example (flat api/impl/stub) - #227

Merged
stepango merged 1 commit into
v2from
forma/F-103-hybrid-targets
Jul 27, 2026
Merged

F-103: hybrid targets progressive example (flat api/impl/stub)#227
stepango merged 1 commit into
v2from
forma/F-103-hybrid-targets

Conversation

@stepango

Copy link
Copy Markdown
Collaborator

Summary

  • Adds examples/android/15-hybrid-targets teaching co-located feature/{hello,world}/{api,impl,stub-impl} (GH Create hybrid targets example #44).
  • Stubs are real impl modules (packageName …stub); bare stub/ is invalid under the -impl suffix rule — documented.
  • Composition roots default to api + impl; commented manual swap to stub-impl is an F-104 teaser only.
  • Curriculum: progressive matrix row 15, examples ladder, forma-project-layout skill; F-103 → done.

Non-goals

  • No F-104 IDE swap APIs
  • No plugins/ / matrix engine changes
  • No androidLibrary

Verify

source scripts/env-mac.sh
cd examples/android/15-hybrid-targets
printf 'sdk.dir=%s\n' "$ANDROID_HOME" > local.properties
./gradlew :binary:assembleDebug
# BUILD SUCCESSFUL
./gradlew :feature-hello-stub-impl:compileDebugKotlin :feature-world-stub-impl:compileDebugKotlin

Test plan

  • :binary:assembleDebug green locally
  • Stub modules compile
  • Project names: :feature-hello-{api,impl,stub-impl}, :feature-world-{api,impl,stub-impl}
  • Curriculum links present; no engine churn

Add examples/android/15-hybrid-targets teaching co-located
feature/{api,impl,stub-impl} for multi-module navigation (GH #44).
Stubs are real impl modules; roots wire api+impl; manual swap teaser for F-104.
Curriculum + tickets/progress updated. No engine or androidLibrary changes.
@stepango
stepango merged commit 00627cc into v2 Jul 27, 2026
8 checks passed
@stepango
stepango deleted the forma/F-103-hybrid-targets branch July 27, 2026 08:17
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant