secant-android-wallet/docs/Architecture.md

1.1 KiB

Architecture

TODO This is a placeholder for describing the app architecture.

Gradle

  • Versions are declared in gradle.properties. There's still enough inconsistency in how versions are handled in Gradle, that this is as close as we can get to a universal system. A version catalog is used for dependencies and is configured in settings.gradle.kts, but other versions like Gradle Plug-ins, the NDK version, Java version, and Android SDK versions don't fit into the version catalog model and are read directly from the properties
  • Much of the Gradle configuration lives in build-conventions to prevent repetitive configuration as additional modules are added to the project
  • Build scripts are written in Kotlin, so that a single language is used across build and the app code bases
  • Only Gradle, Google, and JetBrains plug-ins are included in the critical path. Third party plug-ins can be used, but they're outside the critical path. For example, the Gradle Versions Plugin could be removed and wouldn't negative impact building, testing, or deploying the app