Skip to content

๐Ÿ› Playground for Android projects

License

Notifications You must be signed in to change notification settings

SimonMarquis/Android-Playground

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ย 

History

94 Commits
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 
ย 

Repository files navigation

๐Ÿ› Android Playground

Open in GitHub Codespaces

๐ŸŒ‘ โ˜€๏ธ
screenshot dark screenshot light

๐Ÿ˜ Gradle

Task Description
gradlew assembleDebug Build debug APK
gradlew assembleRelease Build release APK (optimized & minified)
gradlew apiCheck Checks project public API (BCV)
gradlew apiDump Dumps project public API (BCV)
gradlew dependencyGuard Checks project dependencies
gradlew dependencyGuardBaseline Dumps project dependencies
gradlew globalCiBadging CI badging checks
gradlew globalCiLint CI Lint checks (html/sarif/txt/xml)
gradlew globalCiUnitTest CI unit tests (html/xml)
gradlew generateBaselineProfile Generates Baseline & Startup profiles
gradlew connectedBenchmarkAndroidTest Runs benchmark tests
gradlew assembleRelease -Pplayground.compose.compilerMetrics Compose compiler metrics
gradlew assembleRelease -Pplayground.compose.compilerReports Compose compiler reports
gradlew --write-verification-metadata pgp,sha256 --export-keys Generates verification metadata & keyring

๐Ÿ™ GitHub workflows

  • ๐Ÿญ CI
  • โ™ป๏ธ Clear GitHub Actions cache
  • ๐Ÿค– Dependabot auto-merge
  • ๐Ÿค– Dependabot Gradle dependencies
  • ๐Ÿ˜ Gradle dependency submission
  • ๐Ÿ˜ Gradle experiments
  • ๐Ÿ˜ Gradle Wrapper updater
  • โšก Startup & Baseline Profiles

๐Ÿ™ GitHub composite actions

๐Ÿ•ต๏ธ Lint checks

  • AssertionsDetector
    • Prefer using kotlin.test assertions instead of JUnit's in Kotlin unit tests.
    • Prefer using kotlin.test assertions instead of assert in unit tests. Its execution requires a specific JVM option to be enabled on the JVM.
  • GradleVersionCatalogDetector
    • Dependencies should be sorted alphabetically to maintain consistency and readability.
    • Dependencies should follow the configured regex.
    • Extracting a version in the [versions] section is useful only if it is used more than once or referenced elsewhere.
    • Dependency declaration should use the simplest form possible, omitting unnecessary inline tables.
  • NamedParametersDetector
    • Not specifying parameters name using the same type can lead to unexpected results when refactoring methods signature.
      Enforcing explicit named parameters also helps detecting mistakes during code review.
      Quick fix: โŒฅโŽ (macOS) or Alt+Enter (Windows/Linux) โž Add names to call arguments.
  • TestMethodBannedWordsDetector
    • Test methods name should not contains banned words. The default behavior checks for failure,failed words to reduce collisions when searching through logs.
  • TypographyDetector
    • Escaped character are impossible to decipher for a human. Using unescaped character is generally self explanatory.
    • Typography can be replaced with a better alternative.
    • Curly quotes must be replaced with straight quote as Talkback does not properly handle them.

๐Ÿ—๏ธ Architectureโ€ฆ

graph LR
  :app[app]:::android
  subgraph :feature
    :feature:home[home]:::android
  end
  subgraph :domain
    :domain:dice[dice]:::jvm
    :domain:settings[settings]:::jvm
  end
  subgraph :data
    :data:dice[dice]:::jvm
    :data:settings[settings]:::jvm
  end
  subgraph :core
    :core:android[android]:::android
    :core:datastore[datastore]:::jvm
    :core:di[di]:::jvm
    :core:ui[ui]:::android
    :core:utils[utils]:::jvm
  end

  :app -.-> :core:android
  :app -.-> :core:di
  :app -.-> :core:ui
  :app -.-> :data:dice
  :app -.-> :data:settings
  :app -.-> :feature:home
  :core:android -.-> :core:di
  :core:android -.-> :core:utils
  :core:datastore -.-> :core:di
  :core:utils -.-> :core:di
  :data:dice -.-> :core:datastore
  :data:dice -.->|test| :core:datastore
  :data:dice -.-> :core:di
  :data:dice -.->|test| :core:utils
  :data:dice -.-> :domain:dice
  :data:settings -.-> :core:datastore
  :data:settings -.->|test| :core:datastore
  :data:settings -.-> :core:di
  :data:settings -.->|test| :core:utils
  :data:settings -.-> :domain:settings
  :feature:home -.-> :core:android
  :feature:home -.-> :core:di
  :feature:home -.-> :core:ui
  :feature:home -.-> :domain:dice
  :feature:home -.-> :domain:settings

  classDef android fill:#3ddc84,stroke:#fff,stroke-width:2px,color:#fff;
  classDef jvm fill:#7F52FF,stroke:#fff,stroke-width:2px,color:#fff;
Loading

About

๐Ÿ› Playground for Android projects

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published