FastMask/CONTRIBUTING.md
Paweł Orzech 4a081300cb
Add templates, splash screen, and UI enhancements
Introduces GitHub issue and PR templates, contributing and security documentation. Adds Android 12+ splash screen support, updates theming and status color handling, and improves MaskedEmail card/detail UI with shared transitions and accessibility. Updates dependencies for Compose and Material3, and enhances README with detailed setup and contribution instructions.
2026-01-31 02:04:54 +01:00

3.3 KiB

Contributing to FastMask

First off, thank you for considering contributing to FastMask! It's people like you that make FastMask a great tool for managing Fastmail masked emails.

Code of Conduct

By participating in this project, you agree to maintain a respectful and inclusive environment for everyone.

How Can I Contribute?

Reporting Bugs

Before creating bug reports, please check existing issues to avoid duplicates. When you create a bug report, include as many details as possible:

  • Use a clear and descriptive title
  • Describe the exact steps to reproduce the problem
  • Describe the behavior you observed and what you expected
  • Include your Android version and device model
  • Include screenshots if applicable

Suggesting Features

Feature suggestions are welcome! Please:

  • Use a clear and descriptive title
  • Provide a detailed description of the proposed feature
  • Explain why this feature would be useful
  • Include mockups or examples if possible

Pull Requests

  1. Fork the repository
  2. Create a feature branch from main:
    git checkout -b feature/your-feature-name
    
  3. Make your changes
  4. Test your changes thoroughly
  5. Commit with a meaningful message:
    git commit -m "Add: description of your changes"
    
  6. Push to your fork:
    git push origin feature/your-feature-name
    
  7. Open a Pull Request

Development Setup

Prerequisites

  • Android Studio (latest stable version)
  • JDK 17 or higher
  • Android SDK with API 34

Building the Project

# Clone your fork
git clone https://github.com/YOUR_USERNAME/FastMask.git
cd FastMask

# Open in Android Studio or build via command line
./gradlew assembleDebug

Running Tests

# Run unit tests
./gradlew test

# Run instrumented tests (requires emulator or device)
./gradlew connectedAndroidTest

Code Style

Kotlin

  • Follow Kotlin coding conventions
  • Use meaningful names for variables, functions, and classes
  • Keep functions small and focused
  • Use Kotlin idioms (scope functions, extension functions, etc.)

Compose

  • Keep composables small and reusable
  • Use remember and derivedStateOf appropriately
  • Follow the Compose API guidelines

Architecture

  • Follow Clean Architecture principles
  • Keep the data, domain, and UI layers separate
  • Use use cases for business logic
  • ViewModels should only contain UI state logic

Commit Messages

Use clear, descriptive commit messages:

  • Add: new feature description
  • Fix: bug description
  • Update: what was changed
  • Refactor: what was refactored
  • Docs: documentation changes

Project Structure

app/src/main/java/com/fastmask/
├── data/           # Data layer (API, storage, repository implementations)
├── domain/         # Domain layer (models, repository interfaces, use cases)
├── di/             # Hilt dependency injection modules
└── ui/             # UI layer (screens, viewmodels, components, theme)

Questions?

Feel free to open an issue with the question label if you have any questions about contributing.

Thank you for contributing!