- Location-Based Weather: Real-time weather information based on the user's current location.
- Current Date and Time: Date and time information that is dynamically updated according to the user's current location.
- Two Language Support: The application automatically adapts to the language settings of the user's device, offering support in two languages, English or Turkish.
- Dark and Light Theme Options: Allows users to easily switch between dark and light themes according to their visual preferences.
- Clean Architecture: The application has been developed using a layered structure and clearly defining the responsibility of each layer.
- Testing Processes: The application is supported by comprehensive tests to develop quality and reliable software. With Unit and BLoC tests, every aspect of the application is checked. Unit tests confirm the accuracy of functions, while BLoC tests verify the appropriateness of business logic and state management.
Light Mode | Dark Mode |
- This app is developed with Clean Architecture.
[lib]
│
├── [app]
│ ├── [constants]
│ ├── [env]
│ ├── [initializer]
│ ├── [l10n]
│ └── [theme]
│ ├── [colorscheme]
│ ├── [cubit]
│ ├── [dark]
│ └── [light]
│
├── [core]
│ ├── [clients]
│ │ └── [network]
│ ├── [enums]
│ ├── [error]
│ ├── [services]
│ └── [utils]
│ └── [extension]
│
└── [features]
└── [home]
├── [data]
│ ├── [datasources]
│ ├── [model]
│ └── [repositories]
├── [domain]
│ ├── [entities]
│ ├── [repositories]
│ └── [usecases]
└── [presentation]
├── [bloc]
├── [view]
└── [widgets]
- Networking
- Location
- State Management
- UI
- Utility
- Dependency Injection
- JsonParsing
- Caching
- Localization
- Linter
- Testing
- Code Generation
Download or clone this repo by using the link below:
git clone https://github.com/nebiberke/flutter_weather_app.git
Go to project root and execute the following command in console to get the required dependencies:
flutter pub get
Place your own api key in the api key section found in the env/.env file.:
API_KEY = 'YOUR_API_KEY'
Execute the following scripts to generate files:
sh scripts/build_runner.sh
sh scripts/localization.sh
Run the project