Thanks for your interest in contributing! Here's how to get started.
- Fork the repository
- Clone your fork:
git clone https://github.com/YOUR_USERNAME/GroqAndroid.git - Open in Android Studio and let Gradle sync
- Create a branch:
git checkout -b feature/your-feature
- JDK: 17 (Temurin recommended)
- Android SDK: API 35 (Android 15)
- Min SDK: 26 (Android 8.0)
- IDE: Android Studio (latest stable)
- Language: Kotlin
- Formatting: Default Android Studio / ktlint settings
- Error handling: Wrap
currentInputConnectionandEncryptedSharedPreferencescalls in try/catch - No unused imports: Clean up before committing
- One feature/fix per PR — keep changes focused
- Descriptive title — e.g., "Add haptic feedback on mic tap" not "Update GroqIME.kt"
- Test on a real device — emulators don't fully replicate IME behavior
- Include a summary — what changed and why
- Screenshots/video if UI changed
feature/description— new featuresfix/description— bug fixesdocs/description— documentation only
- Build with
./gradlew assembleDebug - Test IME activation, recording, transcription, and keyboard switching
- Test on multiple Android versions if possible (especially API 26 and latest)
- Verify on Xiaomi/MIUI if you have access (known quirks)
- Use GitHub Issues
- Include: device model, Android version, steps to reproduce
- Attach logs if possible (
adb logcat -s GroqAndroid)
See CLAUDE.md for detailed architecture documentation, including:
- File structure and responsibilities
- Known issues and design decisions
- Recording flow and keyboard layout