Skip to content

The Weather App, a Flutter application, displays weather information based on user location and current date/time. It was developed to learn new Flutter concepts and reinforce Test-Driven Development (TDD) and Clean Architecture.

Notifications You must be signed in to change notification settings

nebiberke/flutter_weather_app

Repository files navigation

Flutter Weather App Clean Architecture

The Weather App is a Flutter application that shows weather information based on the user's location and the current date/time. This application has been developed for learning new concepts in Flutter and at the same time reinforcing Test-Driven Development (TDD) and Clean Architecture.The application offers support in two languages (English and Turkish) and allows users to switch between dark and light themes according to their preferences.

Features

  • 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.

Preview

Light Mode Dark Mode

Architecture

Folder Structure

[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]

Packages

Dependencies Overview

Development Dependencies

How to Use

Step 1:

Download or clone this repo by using the link below:

git clone https://github.com/nebiberke/flutter_weather_app.git
Step 2:

Go to project root and execute the following command in console to get the required dependencies:

flutter pub get
Step 3:

Place your own api key in the api key section found in the env/.env file.:

API_KEY = 'YOUR_API_KEY'
Step 4:

Execute the following scripts to generate files:

sh scripts/build_runner.sh
sh scripts/localization.sh
Step 4:

Run the project

About

The Weather App, a Flutter application, displays weather information based on user location and current date/time. It was developed to learn new Flutter concepts and reinforce Test-Driven Development (TDD) and Clean Architecture.

Topics

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published