Meshtastic-Android/.github/instructions/kmp-common.instructions.md

916 B

applyTo
**/commonMain/**/*.kt

KMP commonMain Rules

  • NEVER import java.* or android.* in commonMain.
  • Use org.meshtastic.core.common.util.ioDispatcher instead of Dispatchers.IO.
  • Use Okio (BufferedSource/BufferedSink) instead of java.io.*.
  • Use kotlinx.coroutines.sync.Mutex instead of java.util.concurrent.locks.*.
  • Use atomicfu or Mutex-guarded mutableMapOf() instead of ConcurrentHashMap.
  • Use jetbrains-* catalog aliases for lifecycle/navigation dependencies.
  • Use compose-multiplatform-* catalog aliases for CMP dependencies.
  • Never use plain androidx.compose dependencies in commonMain.
  • Strings: use stringResource(Res.string.key) from core:resources. No hardcoded strings.
  • CMP stringResource only supports %N$s and %N$d — pre-format floats with NumberFormatter.format().
  • Check gradle/libs.versions.toml before adding dependencies.