Thank you for your interest in contributing to the Artsy Android App! This document provides guidelines and information for contributors.
- Android Studio Hedgehog (2023.1.1) or later
- JDK 11 or later
- Git
- Basic knowledge of Kotlin and Jetpack Compose
- Fork the repository
- Clone your fork:
git clone https://github.com/yourusername/artsy-android-app.git - Open the project in Android Studio
- Sync the project with Gradle files
- Run the app to ensure everything works
- Use the GitHub issue tracker
- Provide detailed information about the problem
- Include steps to reproduce the issue
- Add screenshots if applicable
- Open an issue with the "enhancement" label
- Describe the feature and its benefits
- Consider the impact on existing functionality
- Create a feature branch:
git checkout -b feature/your-feature-name - Make your changes
- Write or update tests as needed
- Ensure all tests pass
- Commit your changes with clear messages
- Push to your fork:
git push origin feature/your-feature-name - Open a Pull Request
- Follow Kotlin Coding Conventions
- Use meaningful variable and function names
- Add KDoc comments for public APIs
- Keep functions small and focused
- Use
@Composablefunctions for UI components - Follow Material Design principles
- Use proper state management
- Add preview functions for components
/**
* Displays artist information in a card format.
*
* @param artist The artist data to display
* @param onArtistClick Callback when artist is clicked
*/
@Composable
fun ArtistCard(
artist: Artist,
onArtistClick: (String) -> Unit
) {
Card(
modifier = Modifier
.fillMaxWidth()
.clickable { onArtistClick(artist.id) }
) {
// Card content
}
}# Unit tests
./gradlew test
# Instrumented tests
./gradlew connectedAndroidTest
# All tests
./gradlew check- Write unit tests for business logic
- Add UI tests for critical user flows
- Maintain test coverage above 80%
- Use descriptive test names
- Code follows the project's style guidelines
- Self-review of your code has been performed
- Tests have been added/updated and pass
- Documentation has been updated if needed
- No merge conflicts exist
## Description
Brief description of changes
## Type of Change
- [ ] Bug fix
- [ ] New feature
- [ ] Breaking change
- [ ] Documentation update
## Testing
- [ ] Unit tests pass
- [ ] UI tests pass
- [ ] Manual testing completed
## Screenshots (if applicable)
Add screenshots for UI changes
## Checklist
- [ ] Code follows style guidelines
- [ ] Self-review completed
- [ ] Documentation updatedUse conventional commit format:
type(scope): description
[optional body]
[optional footer]
feat: New featurefix: Bug fixdocs: Documentation changesstyle: Code style changesrefactor: Code refactoringtest: Adding or updating testschore: Maintenance tasks
feat(ui): add artist search functionality
fix(api): resolve authentication timeout issue
docs(readme): update installation instructions
When reporting bugs, please include:
-
Environment
- Android version
- Device model
- App version
-
Steps to Reproduce
- Clear, numbered steps
- Expected vs actual behavior
-
Additional Context
- Screenshots or videos
- Logcat output
- Related issues
For feature requests, please provide:
-
Problem Description
- What problem does this solve?
- Why is this feature needed?
-
Proposed Solution
- How should it work?
- Any design considerations?
-
Alternatives Considered
- Other approaches you've thought about
- GitHub Discussions: For questions and general discussion
- Issues: For bug reports and feature requests
- Pull Requests: For code contributions
- Performance optimizations
- Accessibility improvements
- Test coverage expansion
- Documentation updates
- UI/UX enhancements
- New features
- Code refactoring
- Dependency updates
- Code style improvements
- Minor bug fixes
- Documentation typos
By contributing to this project, you agree that your contributions will be licensed under the MIT License.
Contributors will be recognized in:
- README.md contributors section
- Release notes
- Project documentation
Thank you for contributing to the Artsy Android App! 🎨