Skip to content

Latest commit

 

History

History
197 lines (151 loc) · 5.92 KB

File metadata and controls

197 lines (151 loc) · 5.92 KB

Contributing to Ultimate Android WebView Wrapper

We love your input! We want to make contributing to this project as easy and transparent as possible, whether it's:

  • Reporting a bug
  • Discussing the current state of the code
  • Submitting a fix
  • Proposing new features
  • Becoming a maintainer

🚀 Quick Start for Contributors

Development Setup

  1. Fork the repository
  2. Clone your fork:
    git clone https://github.com/yourusername/WebView-App.git
    cd WebView-App
  3. Open in Android Studio or VS Code
  4. Create a feature branch:
    git checkout -b feature/amazing-feature

Build Requirements

  • Android Studio 2024.1.1 or later
  • Java 17 or later
  • Android SDK API 29+
  • Gradle 8.0+ (included in wrapper)

🐛 Reporting Bugs

We use GitHub issues to track bugs. Report a bug by opening a new issue.

Great Bug Reports tend to have:

  • A quick summary and/or background
  • Steps to reproduce (be specific!)
  • What you expected would happen
  • What actually happens
  • Device and Android version information
  • Screenshots/GIFs if applicable

✨ Suggesting Features

We use GitHub issues to track feature requests. Suggest a feature by opening a new issue.

Great Feature Requests include:

  • Clear problem description
  • Proposed solution
  • Use cases and examples
  • Implementation ideas (if any)

💻 Code Contributions

Pull Request Process

  1. Update the README.md with details of changes if needed
  2. Update version numbers in any examples files and the README.md
  3. Ensure all tests pass
  4. Request review from maintainers

Development Guidelines

Code Style

  • Java code style follows Google Java Style Guide
  • 4 spaces for indentation (no tabs)
  • Line length: 100 characters max
  • Naming: camelCase for variables/methods, PascalCase for classes

Architecture Patterns

  • Modular Design: Each feature in its own manager class
  • Separation of Concerns: UI, Business Logic, and Data layers
  • Clean Code: Self-documenting code with minimal comments
  • SOLID Principles: Single responsibility, Open/closed, etc.

File Structure

app/src/main/java/com/monstertechno/webview/
├── config/          # Configuration files
├── core/            # Core WebView functionality  
├── managers/        # Feature managers
├── bridge/          # JavaScript bridge
├── services/        # Background services
├── receivers/       # Broadcast receivers
├── workers/         # Background workers
└── ui/              # User interface

Commit Messages

Follow Conventional Commits:

feat: add biometric authentication
fix: resolve status bar theme detection
docs: update README with new features
style: format code according to guidelines
refactor: improve WebViewManager structure
test: add unit tests for JavaScriptBridge
chore: update dependencies

Testing

  • Unit Tests: Write tests for business logic
  • Integration Tests: Test feature interactions
  • Manual Testing: Test on multiple devices/Android versions
  • Performance Testing: Ensure smooth operation

Testing Checklist

  • App builds successfully
  • No lint warnings/errors
  • Unit tests pass
  • Manual testing on real device
  • WebView loads target website correctly
  • JavaScript bridge works (if enabled)
  • Theme adaptation works
  • External links open in Custom Tabs
  • File upload/download works
  • Permissions are requested properly

🏷️ Versioning

We use SemVer for versioning. For the versions available, see the tags on this repository.

  • MAJOR: Breaking changes
  • MINOR: New features (backwards compatible)
  • PATCH: Bug fixes (backwards compatible)

📄 License

By contributing, you agree that your contributions will be licensed under the MIT License.

🎯 Priority Areas

We're especially looking for contributions in:

High Priority

  • 🔐 Security enhancements
  • 🐛 Bug fixes
  • 📱 Android compatibility
  • Performance optimizations

Medium Priority

  • New WebView features
  • 🎨 UI/UX improvements
  • 📚 Documentation improvements
  • 🧪 Test coverage

Low Priority

  • 🛠️ Developer tools
  • 📈 Analytics integration
  • 🌍 Internationalization

🚀 Feature Roadmap

Version 2.0

  • Kotlin support
  • Dark mode detection
  • Custom splash screens
  • Advanced JavaScript APIs

Version 2.1

  • Push notification handling
  • Offline mode support
  • Progressive Web App features
  • Multi-window support

🤝 Community

Getting Help

Code of Conduct

This project follows the Contributor Covenant Code of Conduct. By participating, you are expected to uphold this code.

🏆 Contributors

Thanks goes to these wonderful people (emoji key):

📞 Contact

Suman Dey - @imsumandey - www.sumandey.com

Project Link: https://github.com/MonsterTechnoGits/WebView-App


Happy Coding! 🚀