Hub documentation. Version-agnostic. Strategy names are shared across docs; public syntax differs by submodule. Confirm tokens in the submodule README before copying snippets.
Full Android ↔ synonym table (constants, formulae refs): IMPLEMENTATION_ALIGNMENT_APPDIMENS_DYNAMIC.md. Migrating 1.x/2.x names → 3.x packages: NAMING_AND_MIGRATION_1X_2X_TO_3X.md (FIXED/DEFAULT→scaled, DYNAMIC→percent, BALANCED→auto).
This hub names strategies (BALANCED, DEFAULT, PERCENTAGE, …). Concrete APIs ship in repositories linked from the main README submodule map—not in this row.
Jetpack Compose for Android is implemented in appdimens-dynamic and typically does not mirror legacy unified chains such as .balanced().dp / .defaultDp from older tutorials—use submodule DOCUMENTATION/ and Compose extensions instead.
See also DOCS/README.md for the conceptual index.
flowchart LR
concept["Scaling concept"] --> submodule["Submodule README"]
submodule --> codegen["Codegen or resources"]
| Concept | Android — appdimens-dynamic (Compose) |
iOS — AppDimens |
Web — webdimens |
Flutter — appdimens |
React Native — appdimens-react-native |
|---|---|---|---|---|---|
| Primary balanced hybrid (linear then compressed growth on larger axes) | Auto axis tokens: asdp / ahdp / awdp, assp, … (import com.appdimens.dynamic.compose.auto.*). See auto.md. |
AppDimens.shared.balanced(_).toPoints() (verify in submodule examples). |
useWebDimens() → balanced(_) on WebDimensBuilder (WebDimensBuilder.ts). |
AppDimens.fixed(...), .fx, builder .calculate(context)—see appdimens.dart. |
useAppDimens() → balanced(_) (AppDimensBuilder.ts). |
| SDP-style baseline (legacy FIXED + hub DEFAULT) | 16.sdp, 100.wdp, 48.hdp, 16.ssp, … (import com.appdimens.dynamic.compose.scaled.*). |
iOS builders—see submodule. | Helpers on web builder | AppDimens.fixed / .fx per Flutter submodule |
Builders + defaultScaling helpers |
Hub “Fixed” logarithmic compensation narrative (math differs from raw scaled—see alignment) |
Prefer explicit compose.logarithmic / scaled per use case—no single defaultDp token mirrors all stacks. |
AppDimens.shared.defaultScaling(_).toPoints() |
defaultScaling(_) |
Fixed-style builders (AppDimens.fixed) |
defaultScaling(_) |
| PERCENTAGE / legacy DYNAMIC (axis-fraction growth) | compose.percent (psdp, …)—follow submodule README. |
AppDimens.shared.percentage(_).toPoints() |
percentage(_) |
Dynamic builders / .dy (appdimens_dynamic.dart) |
percentage(_) |
| XML-only SDP/SSP | appdimens-sdps, appdimens-ssps (@dimen/_*sdp, @dimen/_*ssp) — separate artifacts. |
— | — | — | — |
| Games / native runtime | appdimens-games C++/Kotlin façade (README). |
Submodule notes for Metal/game paths where present. | — | — | — |
| Smart / element-aware inference | Android dynamic tree may omit smart() style chains shown in docs for web/iOS/RN—verify Kotlin sources. |
.smart(...).forElement(...) variants |
Equivalent builder hooks | Check Flutter submodule | Equivalent hooks |
Upstream sources of truth
- Android Compose: appdimens-dynamic/README.md, DOCUMENTATION/README.md
- Flutter: appdimens.dart
- Web: WebDimensBuilder.ts
- React Native: AppDimensBuilder.ts
- iOS:
appdimens-ios/Examples,USAGE_GUIDE.md