2025-03-17
This document provides instructions for setting up the development environment for the fitness tracking application. Following these steps will ensure a consistent development experience across the team.
Android Studio is our primary IDE for development.
For Windows:
For macOS:
For Linux:
tar -xzf android-studio-*.tar.gzandroid-studio/bin directory and execute ./studio.shAfter installation, configure Android Studio with the following settings:
config/codestyle/kotlin-codestyle.xmlGit is our version control system.
For Windows: 1. Download Git from git-scm.com 2. During installation, select “Use Git from the Windows Command Prompt” 3. For line endings, select “Checkout as-is, commit as-is”
For macOS: 1. Install with Homebrew: brew install git 2. Alternatively, download from git-scm.com
For Linux: 1. Ubuntu/Debian: sudo apt install git 2. Fedora: sudo dnf install git
Configure Git with your information:
JDK 17 is required for our project.
Option 1: Install through Android Studio 1. Open Android Studio > Settings/Preferences > Build, Execution, Deployment > Build Tools > Gradle 2. Set “Gradle JDK” to “Download JDK” 3. Select version 17 and vendor (Amazon Corretto, Eclipse Temurin, or Oracle OpenJDK)
Option 2: Manual Install 1. Download OpenJDK 17 from adoptium.net 2. Install following the platform-specific instructions 3. Set JAVA_HOME environment variable: - Windows: Set in System Properties > Environment Variables - macOS/Linux: Add to ~/.bash_profile or ~/.zshrc: export JAVA_HOME=/path/to/jdk
Our project uses Kotlin 1.8.0 or newer.
Room is our primary persistence library.
Our app uses Room for local persistence.
To inspect the database during development:
Use Database Inspector in Android Studio:
Export database for external inspection:
Use a SQLite browser like DB Browser for SQLite to open the exported database
For features requiring external services, API keys should be stored securely:
Create a file named apikeys.properties in the project root (this file is git-ignored)
Add your API keys in the format:
These keys are accessed through the build system and not committed to version control
We use a simplified GitFlow workflow:
main: Production-ready codedevelop: Integration branch for featuresfeature/feature-name: For new feature developmentbugfix/issue-description: For bug fixesrelease/X.Y.Z: For release preparationdevelopdevelopTo run quality checks locally:
We use the following format for commit messages:
type(scope): Short description
Longer description if needed
where type is one of: - feat: New feature - fix: Bug fix - docs: Documentation changes - style: Code style changes (formatting, etc.) - refactor: Code refactoring - test: Adding or modifying tests - chore: Maintenance tasks
To build a release APK/AAB:
build.gradle./gradlew bundleRelease for AAB or ./gradlew assembleRelease for APKIf Gradle sync fails:
If the emulator is slow or unstable:
For common build errors:
For environment setup issues, contact:
E. Bruno - Development Environment Setup