h2o_simple

H2OSync πŸ’§

A simple Flutter app to track your daily water intake with full internationalization support.

πŸ“± About the App

H2OSync is a hydration tracking app that helps you keep your water levels on track. With a clean and intuitive interface, you can easily log your water intake and monitor your progress over time. The app supports multiple languages and automatically adapts to your device’s language settings.

✨ Features

πŸ—οΈ Architecture

The project follows Clean Architecture principles with:

🌍 Internationalization (i18n)

The app features complete internationalization support using Flutter’s official l10n system:

πŸ“ Project Structure

lib/
β”œβ”€β”€ core/
β”‚   β”œβ”€β”€ events/           # Domain events
β”‚   β”œβ”€β”€ extensions/       # Utility extensions
β”‚   └── services/         # Core services
β”œβ”€β”€ data/
β”‚   β”œβ”€β”€ models/           # Data models
β”‚   └── repositories/     # Repository implementations
β”œβ”€β”€ domain/
β”‚   β”œβ”€β”€ entities/         # Business entities
β”‚   β”œβ”€β”€ repositories/     # Repository contracts
β”‚   └── use_cases/        # Use cases
β”œβ”€β”€ generated/l10n/       # Auto-generated localization files
β”œβ”€β”€ l10n/                 # Translation resource files (ARB)
β”‚   β”œβ”€β”€ app_en.arb       # English translations
β”‚   └── app_pt.arb       # Portuguese translations
└── presentation/
    β”œβ”€β”€ controllers/      # Business logic controllers
    β”œβ”€β”€ dialogs/          # Modal dialogs
    β”œβ”€β”€ pages/            # Application pages
    β”œβ”€β”€ providers/        # State management (Riverpod)
    β”œβ”€β”€ theme/            # Theme and colors
    └── widgets/          # Reusable components

πŸš€ Getting Started

Prerequisites

Installation

  1. Clone the repository:
    git clone https://github.com/eduardopahl/h2o_simple.git
    cd h2o_simple
    
  2. Install dependencies:
    flutter pub get
    
  3. Generate localization files:
    flutter gen-l10n
    
  4. Run the app:
    flutter run
    

πŸ› οΈ Main Dependencies

πŸ“¦ Build

Android APK

flutter build apk --release

iOS

flutter build ios --release

For detailed iOS setup instructions, see IOS_SETUP.md

🀝 Contributing

Adding New Features

  1. Fork the project
  2. Create a feature branch (git checkout -b feature/new-feature)
  3. Commit your changes (git commit -m 'Add new feature')
  4. Push to the branch (git push origin feature/new-feature)
  5. Open a Pull Request

Adding New Languages

  1. Create new ARB file in lib/l10n/ (e.g., app_es.arb for Spanish)
  2. Copy structure from app_en.arb and translate all strings
  3. Add new locale to supportedLocales in main.dart
  4. Run flutter gen-l10n to generate localization classes
  5. Test the new language thoroughly

πŸ“ License

This project is under the MIT license. See the LICENSE file for more details.

πŸ‘¨β€πŸ’» Author

Eduardo Pahl