tahamajs's picture
|
download
raw
1.81 kB

AirMouse Android workspace guidelines

Goal

Keep the Android app modern, modular, and buildable while preserving the current app behavior until a replacement is ready.

Project structure

  • :app is the UI shell and feature entry point.
  • :network owns reusable socket/client code and shared network DTOs.
  • New reusable code should go into the smallest module that can own it.
  • Do not duplicate the same class in both :app and :network.

Android architecture rules

  • Prefer Kotlin, coroutines, Flow, and ViewModel-friendly APIs.
  • Keep networking off the main thread.
  • Use DataSender, AutoReconnect, and discovery helpers from :network instead of re-implementing sockets in :app.
  • PreferencesManager in :app implements com.airmouse.network.ConnectionStore so the network layer stays app-agnostic.

Build and validation

  • Keep Gradle files clean and declarative.
  • If a change touches build scripts or shared dependencies, validate the affected module before moving on.
  • Fix duplicate dependencies, stray snippets, and dead code before adding new work.

File placement

  • Put new Android source files in the module that owns the responsibility.
  • Keep package paths aligned with module ownership.
  • If a file is moved, remove the old copy instead of leaving a duplicate behind.

Workflow expectations

  • Make small, testable changes.
  • If more than 6 files are changed in one stretch, commit before continuing with the next batch.
  • Finish a batch by validating compile or lint errors for the touched area.
  • Prefer a single source of truth over compatibility wrappers unless the wrapper is intentionally temporary.

Notes

  • The modernization target is in MODERNIZATION_SPEC.md.
  • Preserve existing app behavior unless the task explicitly asks for a rewrite.

Xet Storage Details

Size:
1.81 kB
·
Xet hash:
998ace6a67f8fc1e236ffdcb9517376b166694f5567e308a9cc5e51b5dbbabfe

Xet efficiently stores files, intelligently splitting them into unique chunks and accelerating uploads and downloads. More info.