An Android application designed to help a 44-year-old transgender woman incrementally become physically stronger, faster, and build better stamina — while also growing mentally across multiple knowledge domains and becoming more conscious of recovery nutrition.
The app is built for a user with a specific health profile:
- ~195 lbs, sedentary background (Engineering Manager, Cybersecurity Zero Trust)
- ~7 years without exercise
- Injuries: both rotator cuffs, metal plate in left clavicle, slightly torn MCL (right knee), arthritis
- Health conditions: Crohn's Disease, aversion to fibrous green foods
Every workout, nutrition recommendation, and progression plan is tailored to these constraints.
This project was bootstrapped with the help of AI code generation tools. The AI assisted in generating boilerplate code, suggesting architecture patterns, and providing code snippets for common Android development tasks. All AI-generated code was reviewed and modified by the developer to ensure it met the specific requirements of the project. Changes should be validated with software composition analysis (SCA), code review, and testing to help maintain the quality and security of the application.
Please submit any issues or pull requests if you find bugs, security vulnerabilities, or areas for improvement. Your contributions are welcome and appreciated.
- Daily rotating motivational message (7 affirmations)
- Today's workout preview
- Crohn's-friendly daily nutrition tip
- Daily knowledge challenge
- Quick stats: current week, workouts completed, streak
All exercises include injury-specific modifications:
- Phase 1 – Foundation (Weeks 1–4): Gentle reactivation — wall push-ups, gentle walks, bird dogs, glute bridges, resistance band pull-aparts
- Phase 2 – Building (Weeks 5–12): Gradual intensity increase — seated rows, Pallof press, partial wall sits, hip abduction
- Phase 3 – Advancing (Weeks 13+): Progressive challenges — walk/jog intervals, incline push-ups, band deadlifts
Injury considerations enforced throughout:
- No overhead pressing or behind-the-neck movements (rotator cuffs + clavicle plate)
- No deep squats or high-impact jumping (MCL)
- Joint-friendly warm-ups for arthritis
18 food items filtered by category (Protein, Recovery, Anti-Inflammatory, Fat, Carb, Avoid):
- Crohn's-friendly, low-fiber options prominently labeled
- Anti-inflammatory foods for arthritis and injury recovery (salmon, turmeric, ginger, bone broth)
- Clear "Avoid" section for Crohn's flare triggers
- Protein timing guidance for muscle building
- Phase journey indicator
- Strength / Stamina / Wellbeing score bars
- Workout logger
- 8 milestone badges (First Workout, One Week Strong, etc.)
- 5 knowledge domains tracked: Cybersecurity, Exercise Science, Nutrition, Mind-Body, Trans Health
- Language: Kotlin
- Architecture: Single Activity + Navigation Component + ViewBinding + ViewModel/LiveData
- UI: Material Design 3 + BottomNavigationView
- Min SDK: 26 (Android 8.0) | Target SDK: 34
Before you can build or run the app, install the following on your computer:
The Android Gradle plugin 8.x requires JDK 17.
- macOS (Homebrew):
brew install openjdk@17
- Windows: Download the installer from Adoptium and run it.
- Linux (Ubuntu/Debian):
sudo apt update && sudo apt install openjdk-17-jdk
Verify the install:
java -version # should show openjdk 17.x.xAndroid Studio bundles the Android SDK, platform tools, and ADB automatically.
- Download Android Studio Hedgehog (2023.1) or newer from developer.android.com/studio
- Run the installer and follow the setup wizard
- In the SDK Manager (Android Studio → Settings → Languages & Frameworks → Android SDK), ensure the following are installed:
- Android SDK Platform 34 (API 34, Android 14)
- Android SDK Build-Tools 34.0.0
- Android SDK Platform-Tools (includes ADB)
Alternative — Command-line tools only (no Android Studio UI): Download the command-line tools and set
ANDROID_HOMEto your SDK directory.
Used to clone the repository.
- macOS:
brew install gitor install Xcode Command Line Tools (xcode-select --install) - Windows: Download from git-scm.com
- Linux:
sudo apt install git
# 1. Clone the repository
git clone https://github.com/mmarti8895/evolutions.git
cd evolutions
# 2. (macOS/Linux) Make the Gradle wrapper executable
chmod +x gradlew
# 3. Build a debug APK
./gradlew assembleDebug # macOS / Linux
# .\gradlew.bat assembleDebug # Windows (PowerShell)The debug APK will be generated at:
app/build/outputs/apk/debug/app-debug.apk
This method uses ADB (Android Debug Bridge), which is included with Android Studio's Platform Tools.
- Open Settings → About phone
- Tap Build number seven times in a row
- You'll see "You are now a developer!" ✅
- Go back to Settings → System → Developer options (location varies by phone/Android version)
- Enable USB debugging
- Plug your phone into your computer with a USB cable
- On the phone, tap Allow when prompted "Allow USB debugging?"
- Verify the connection:
You should see your device listed, e.g.:
adb devices
List of devices attached R3CN90XXXXX device
# Build + install in one command:
./gradlew installDebug
# — OR — install a pre-built APK directly:
adb install app/build/outputs/apk/debug/app-debug.apkThe Evolutions app icon will appear in your app drawer immediately.
- Open Android Studio and choose Open → select the cloned
evolutionsfolder - Let Gradle sync finish (first run downloads ~500 MB of dependencies — be patient)
- Connect your phone via USB with USB debugging enabled (see Option A, Steps 1–2)
- In the toolbar, select your device from the device drop-down
- Click the green ▶ Run button (or press
Shift+F10)
Android Studio will build, install, and launch the app automatically.
- In Android Studio, open Device Manager (the phone icon in the right toolbar)
- Click Create Device
- Choose a phone profile (e.g., Pixel 7) → click Next
- Select a system image — download API 34 (Android 14) if not already installed → click Next → Finish
- Click the ▶ button next to your new virtual device to start it
- Run the app via the ▶ Run button in the toolbar — Android Studio will deploy to the emulator
If you want to share the app with someone without them needing a development environment:
- Build the APK:
./gradlew assembleDebug
- Send
app/build/outputs/apk/debug/app-debug.apkto the target device (via email, Google Drive, a USB file transfer, etc.) - On the Android device:
- Open Settings → Apps → Special app access → Install unknown apps
- Grant permission to your file manager or browser
- Tap the APK file to install it
⚠️ Note: The debug APK is signed with a debug key and is fine for personal use. For sharing more broadly, build a release APK and sign it with your own keystore.
Android Studio is not required. You can use Visual Studio Code as your editor. VS Code won't give you a visual XML layout editor or a one-click emulator launcher, but everything needed to write code, build, and deploy to a real device (or a command-line emulator) works perfectly.
| Capability | Android Studio | VS Code |
|---|---|---|
| Kotlin syntax highlighting & code completion | ✅ Full IntelliJ engine | ✅ Via extension (good, not identical) |
| Gradle build / run tasks | ✅ Built-in | ✅ Via Gradle extension or terminal |
| Deploy to physical device | ✅ One-click | ✅ ./gradlew installDebug in terminal |
| Visual XML layout editor | ✅ | ❌ Not available |
| AVD (emulator) manager UI | ✅ Built-in | ❌ Use avdmanager CLI (see below) |
| Logcat viewer | ✅ Built-in | adb logcat in terminal or extension |
| Android SDK bundled | ✅ | ❌ Must install separately |
Because VS Code does not bundle the Android SDK, you need to install it manually.
- Go to developer.android.com/studio#command-tools and download the Command-line tools only package for your OS.
- Unzip the download. Move the contents to a permanent location — for example:
- macOS/Linux:
~/android-sdk/cmdline-tools/latest/ - Windows:
C:\android-sdk\cmdline-tools\latest\
- macOS/Linux:
- Set environment variables (add these to your shell profile —
~/.zshrc,~/.bashrc, or Windows System Environment Variables):export ANDROID_HOME=$HOME/android-sdk export PATH=$PATH:$ANDROID_HOME/cmdline-tools/latest/bin export PATH=$PATH:$ANDROID_HOME/platform-tools export PATH=$PATH:$ANDROID_HOME/emulator
- Reload your shell (
source ~/.zshrcetc.) and then install the required SDK components:sdkmanager "platform-tools" "platforms;android-34" "build-tools;34.0.0" "emulator" sdkmanager --licenses # accept all licenses
Verify ADB is available:
adb versionOpen VS Code, press Ctrl+Shift+X (or Cmd+Shift+X on macOS) to open the Extensions panel, and install:
| Extension | Publisher | Purpose |
|---|---|---|
| Kotlin | fwcd | Syntax highlighting, code navigation, basic IntelliSense for Kotlin |
| Extension Pack for Java | Microsoft | Java language server required by the Kotlin extension |
| Gradle for Java | Microsoft | Run Gradle tasks from the sidebar without typing commands |
Optional but useful:
- Android iOS Emulator (DiemasMichiels) — launch AVDs from the VS Code status bar
- Todo Tree — highlights TODO/FIXME comments across the codebase
# Clone (if you haven't already)
git clone https://github.com/mmarti8895/evolutions.git
cd evolutions
# macOS/Linux — make Gradle wrapper executable
chmod +x gradlew
# Open in VS Code
code .Once VS Code opens, the Gradle for Java extension will detect the project automatically. You can either:
- Use the Gradle sidebar (elephant icon on the left): expand
evolutions → app → build → Tasks → build, then double-click assembleDebug - Or run it directly in the VS Code integrated terminal (`Ctrl+`` to open):
./gradlew assembleDebug # macOS / Linux .\gradlew.bat assembleDebug # Windows
The debug APK is output to app/build/outputs/apk/debug/app-debug.apk.
Enable USB debugging on your phone (see Option A — USB Cable above), then from the VS Code integrated terminal:
# Build and install in one step
./gradlew installDebug
# — OR — install an already-built APK
adb install app/build/outputs/apk/debug/app-debug.apk
# Stream logs while the app is running
adb logcat -s "Evolutions"Since VS Code has no built-in AVD manager, create and start virtual devices using the command-line tools installed in Step 1.
# List available system images
sdkmanager --list | grep "system-images;android-34"
# Download a system image (Google APIs x86_64 is fastest on modern hardware)
sdkmanager "system-images;android-34;google_apis;x86_64"
# Create an AVD named "Pixel7"
avdmanager create avd -n Pixel7 -k "system-images;android-34;google_apis;x86_64" -d "pixel_7"emulator -avd Pixel7Leave that terminal running. In a second terminal, deploy the app:
./gradlew installDebugThe app will install and appear in the emulator's app drawer.
avdmanager list avd| Problem | Fix |
|---|---|
JAVA_HOME not set / wrong JDK |
Set JAVA_HOME to your JDK 17 directory or configure it in Android Studio → Settings → Build → Gradle |
adb: command not found |
Add $ANDROID_HOME/platform-tools to your PATH |
Device not listed by adb devices |
Try a different USB cable, switch USB mode to "File Transfer" on the phone, and re-authorize debugging |
| Gradle sync fails on first open | Check your internet connection — Gradle downloads ~500 MB of Android SDK dependencies on the first build |
| App not installing: INSTALL_FAILED_UPDATE_INCOMPATIBLE | Uninstall any previous version of the app on the device first |
chmod +x gradlew fails on Windows |
Use .\gradlew.bat instead of ./gradlew |
| VS Code: Kotlin extension shows no IntelliSense | Ensure Extension Pack for Java is also installed; reload VS Code after install |
| VS Code: Gradle tasks panel is empty | Open the project folder directly (code . from the repo root), not a parent folder |
sdkmanager: command not found |
Confirm $ANDROID_HOME/cmdline-tools/latest/bin is on your PATH and the tools were unzipped to the latest/ subfolder |
| Emulator won't start (HAXM/WHPX error on Windows) | Enable hardware virtualization in your BIOS, or use an ARM system image instead of x86_64 |
emulator: command not found |
Add $ANDROID_HOME/emulator to your PATH |
Progress over perfection. Every single step forward — no matter how small — is a victory.