Contributing to Wammy
We welcome contributions of all shapes and sizes! Whether you want to fix a bug, polish the UI, add a new built-in source, or translate the app into your language, here is how you can get started.
Where You Can Help
- Built-in Sources & Parsers (
app/.../source/builtin/):- Add view count and star rating parsing for new websites.
- Fix broken scrapers or API endpoints when upstream sites change their layouts.
- Improve Cloudflare bypass handling and clearance resilience.
- UI & Compose Components (
presentation/andapp/.../presentation/):- Polish animations, transitions, and gesture handling.
- Refine Material 3 styling and dark/light theme consistency.
- Improve tablet and foldable layout responsiveness.
- Novel Reader & Plugins (
app/.../source/builtin/novel/):- Enhance the novel reader engine, TTS audio controls, and EPUB/HTML rendering.
- Performance & Optimization:
- Memory profiling, list scrolling smoothness, and image caching improvements.
- Translations (i18n) (
i18n/andi18n-novel/):- Help localize Wammy into your native language.
Development Prerequisites
Before setting up the project locally, ensure you have:
- Android Studio: Ladybug (2024.2.1) or newer.
- JDK: Java 17+ (or Android Studio bundled JBR).
- Android SDK: API level 35.
Contribution Workflow
1. Fork & Branch
- Fork the repository on GitHub.
- Create your feature branch from
dev:bashgit checkout -b feat/my-new-feature dev Important: Please always branch from and target
dev, asmasteris reserved for stable production releases.
2. Verify Locally
Ensure the project compiles cleanly before submitting your changes:
bash
# Fast Kotlin compilation check
./gradlew :app:compileDebugKotlin
# Assemble debug APK
./gradlew :app:assembleDebug3. Commit & Pull Request
- Commit with descriptive commit messages following conventional commits (e.g.
feat(source): add ratings parsing for Webtoonsorfix(discover): prevent hero carousel freeze). - Push to your fork and open a Pull Request targeting the
devbranch. - Include a clear description of your changes, along with screenshots or recordings for any UI modifications.
Community & Questions
Have questions or want to discuss a feature idea before writing code?
- Discord: Join our Discord community to chat with developers and contributors.
- GitHub Issues: Open an issue on our GitHub repository for bug reports or feature proposals.
