Skip to content

bodenberg/appdimens

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

235 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
AppDimens - Responsive Design Across All Devices

AppDimens

Central repository — documentation hub and multi-platform library family

Meta-repo License Platforms

Documentation index · Quick reference · Technical guide

Languages: English (this page) · Português (BR) · Español


What this repository is

This is the central meta-repository for AppDimens. It aggregates official documentation, theory, examples, and multilingual guides. Source code and releases for each platform live in separate Git repositories included here as Git submodules.

  • Clone with submodules: git clone --recurse-submodules https://github.com/bodenberg/appdimens.git
  • Update submodules: git submodule update --init --recursive

If you only need one platform, you can clone that repository directly (see table below).


Submodule map

Each row is a standalone repo (path in this clone = submodule directory). Version is the current published line documented in that repo’s README or build files at the submodule tip; always confirm in the submodule before pinning dependencies.

Submodule Platform Version (see submodule) Status Upstream / folder
appdimens-dynamic Android (Jetpack Compose, Kotlin/Java) 3.1.4 Stable appdimens-dynamic/
appdimens-dynamic-kmp Kotlin Multiplatform (Android, iOS, Desktop) 1.0.0 Work in progress appdimens-dynamic-kmp/
appdimens-sdps Android XML scalable DP (@dimen/_*sdp) 3.1.2 Stable appdimens-sdps/
appdimens-ssps Android XML scalable SP (@dimen/_*ssp) 3.1.2 Stable appdimens-ssps/
appdimens-games Android games (C++/NDK, OpenGL) 2.0.1 Work in progress (see module README) appdimens-games/
appdimens-flutter Flutter / Dart 2.0.0 Work in progress appdimens-flutter/
appdimens-ios iOS / macOS / tvOS / watchOS (Swift, SPM, CocoaPods) 2.0.0 Work in progress (rich docs inside repo) appdimens-ios/
appdimens-react-native React Native (TypeScript) 2.0.0 Work in progress appdimens-react-native/
appdimens-web Web / TypeScript (webdimens) 2.0.0 Work in progress appdimens-web/

GitHub mirrors: dynamic · kmp · sdps · ssps · games · flutter · ios · react-native · web


Quick overview

AppDimens provides responsive dimensions across phones, tablets, TVs, watches, and browsers, using perceptual scaling (e.g. Weber–Fechner, Stevens’ power law) and multiple strategies so you can pick the right curve for buttons, typography, containers, and games.

Central docs (this repo): strategy comparison, math, validation, and cross-platform examples live under DOCS/. Platform-specific installation, APIs, and changelogs live in each submodule (links in the table above).


Install snippets (confirm version in submodule README)

Android — dynamic (Compose / code)

dependencies {
    implementation("io.github.bodenberg:appdimens-dynamic:3.1.4")
}

→ Full setup, Compose, XML, performance: appdimens-dynamic/README.md

Android — SDP / SSP (XML resources)

implementation("io.github.bodenberg:appdimens-sdps:3.1.2")
implementation("io.github.bodenberg:appdimens-ssps:3.1.2")

appdimens-sdps/README.md · appdimens-ssps/README.md

Android — games (optional)

implementation("io.github.bodenberg:appdimens-games:2.0.1")

appdimens-games/appdimens_games/README.md

iOS

pod 'AppDimens', '~> 2.0.0'

appdimens-ios/ (see INSTALLATION.md, USAGE_GUIDE.md, DOCUMENTATION.md inside the submodule)

Flutter

dependencies:
  appdimens: ^2.0.0

appdimens-flutter/

React Native

npm install appdimens-react-native@2.0.0

appdimens-react-native/

Web (webdimens)

npm install webdimens@2.0.0

appdimens-web/ · Quick start

Kotlin Multiplatform

appdimens-dynamic-kmp/ (experimental; not production-ready per submodule notice)


Scaling strategies (summary)

The family documents 13 strategies (names may vary slightly by platform). For formulas, rankings, and when to use each:

Strategy Typical use
BALANCED (auto) Default recommendation for most UI
DEFAULT (scaled) Phone-first / legacy “fixed” style curve
PERCENTAGE Proportional / “dynamic” style growth
LOGARITHMIC, POWER Perceptual / TV / fine control
FLUID Bounded min–max (typography, spacing)
INTERPOLATED, DIAGONAL, PERIMETER Specialized geometry
FIT, FILL Game-style letterbox / cover
AUTOSIZE Container-aware text sizing
NONE No scaling

Details: Simplified theory · Full theory · Formula comparison


Documentation in this repo

Resource Description
DOCS/README.md Master documentation index
DOCS/EXAMPLES.md Cross-platform examples
DOCS/BASE_ORIENTATION_GUIDE.md Base orientation / rotation
DOCS/APPLICABILITY_OF_APPDIMENS.md When to use or avoid AppDimens
LANG/ Portuguese and Spanish mirrors
DOCS/html/ Interactive scaling comparison HTML demos

Contributing, security, license

Issues for this hub (docs structure, links, translations): appdimens issues. For library bugs, prefer the issue tracker of the relevant submodule on GitHub.


Author

Jean Bodenberg@bodenberg · appdimens-project.web.app


Made for developers worldwide

Documentation · Examples · Technical guide

About

Tired of screen fragmentation? AppDimens is the unified solution for responsive, pixel-perfect UI across all platforms and devices. It offers adaptive scaling (SDP, SSP, Dynamic, Fixed) for Kotlin, Compose, XML Views, Swift, and SwiftUI, ensuring layouts and fonts scale perfectly from the smallest to the largest device.

Topics

Resources

License

Code of conduct

Contributing

Security policy

Stars

Watchers

Forks

Packages

 
 
 

Languages