Developer Guide
CRITICAL: Build Crashes
A self-built debug build can crash immediately on launch because the Aptabase analytics client is included in debug builds and throws when its API key is missing or invalid.
Workaround: Either provide a valid Aptabase key, or remove/disable the analytics modules for local development. See the commits in this branch for a ready-made patch.
Prerequisites
- Android Studio: Latest stable version.
- JDK: JDK 21 or higher (the project toolchain targets JVM 21).
- Android SDK: Latest SDK tools and platforms.
Building from Source
- Clone:
git clone https://github.com/LinkSheet/LinkSheet.git - Open: Open the project in Android Studio and wait for Gradle sync.
- Run: Select a build variant and click Run.
Build Variants
LinkSheet uses product flavors and build types:
- Flavors:
foss: Recommended for development. No proprietary services or telemetry.pro: Includes Pro functionality. Requires API keys where applicable.
- Build types:
debug: Development build with debugging enabled.release: Minified release build.nightly: Release build published under thefe.linksheet.nightlyapplication id.releaseDebug: A debuggable release build, useful for reproducing release-only issues.migrate: Release build used for database/settings migrations.benchmark: Release build for benchmarking.
To build via CLI:
./gradlew assembleFossDebugProject Layout
LinkSheet is highly modular. The main application module is app; shared code lives under lib/, feature implementations under features/, and third-party integration wrappers under integration/. See Project Structure for the full breakdown.
Nightly Builds
The project uses a nightly release model via GitHub Actions. Builds are released to the LinkSheet/nightly repository and can be installed with Obtainium.
License
LinkSheet is licensed under the LPL (LinkSheet Public License, based on MPL 2.0), excluding strings.xml and plural.xml files. All string resources are licensed under GPL-3.0.