Skip to content

Developer Setup

Utsha Basak edited this page Oct 11, 2026 · 1 revision

Developer Setup

The short path to building and running the app. The README and the contributing guide have the details.

You need

  • JDK 21, for example Eclipse Temurin
  • The Android SDK command-line tools with platform 37 and build tools 37, and ANDROID_HOME pointing at the SDK
  • A phone with USB debugging on, or an emulator (a system image for API 26 or newer)

Android Studio is optional: everything builds from the command line with the Gradle wrapper, which downloads the right Gradle version itself.

Build and install

git clone https://github.com/UtshaBasak/BookStoreBD-Android.git
cd BookStoreBD-Android

./gradlew assembleGithubDebug
adb install -r app/build/outputs/apk/github/debug/app-github-debug.apk

The debug app is called BookStoreBD and installs as io.github.utshabasak.bookstorebd.debug, next to the release app.

Checks

./gradlew ktlintCheck detekt                         # code style and static analysis
./gradlew ktlintFormat                               # fix most style findings
./gradlew lintGithubDebug lintPlayDebug lintDebug    # Android Lint
./gradlew test                                       # unit and Compose UI tests

CI runs the same checks on every push and pull request.

Using a local server

Debug builds use the live API by default. To use your own copy of the website and API, start it as its Developer Setup explains (with demo data from npm run seed), then:

adb reverse tcp:4000 tcp:4000
./gradlew assembleGithubDebug -Pbookstore.debugSite=http://127.0.0.1:4000
adb install -r app/build/outputs/apk/github/debug/app-github-debug.apk

adb reverse works the same for a phone and an emulator. Sign in with one of the demo accounts the seed prints.

An emulator without Android Studio

sdkmanager "system-images;android-37.0;google_apis_playstore;x86_64" "emulator" "platform-tools"
avdmanager create avd -n BookStoreBD -k "system-images;android-37.0;google_apis_playstore;x86_64"
emulator -avd BookStoreBD

Useful Gradle properties

Property Effect
-Pbookstore.debugSite=<url> The server a debug build uses

Release signing reads keystore.properties locally or environment variables in CI; see Building and Releasing.

Clone this wiki locally