Skip to content

Latest commit

 

History

History
71 lines (45 loc) · 3.33 KB

README.md

File metadata and controls

71 lines (45 loc) · 3.33 KB

WeatherApp

This Android project, built using Kotlin and the OpenWeather API , provides users with detailed weather information for a selected city. It displays current weather conditions, pollution levels, and a 5-day weather forecast. The app aims to offer a comprehensive view of weather and air quality in a simple interface.

Screen Shot

w3.webm

Technologies

  • MVVM Architecture
  • Kotlin Coroutines
  • Room Database
  • Kotlin Flow
  • LiveData
  • Dynamic Query
  • Single activity pattern
  • REST API
  • Safe Args
  • Kotlin Parcelize
  • Base Activity ,Fragment
  • Dependency injection

Built with

Kotlin - First class and official programming language for Android development.

Room - Save data in a local database using Room.

Font Calligraphy - View Inflation you can intercept.

Retrofit + OkHttp - RESTful API and networking client.

Hilt - Dependency injection.

ViewBinding - View binding is a feature that allows you to more easily write code that interacts with views.

Android Architecture Components - A collections of libraries that help you design robust, testable, and maintainable apps.

ViewModel - UI related data holder, lifecycle aware.

Navigation component - Fragment routing handler.

Coroutines - Concurrency design pattern for asynchronous programming.

Flow - Stream of value that returns from suspend function.

Coil - Image loading.

DynamicSize - New units of measure for support all of screen devices.

Architectures

android-mvvm-architecture

  • View: The purpose of this layer is to inform the ViewModel about the user’s action. This layer observes the ViewModel and does not contain any kind of application logic.

  • ViewModel: It exposes those data streams which are relevant to the View. Moreover, it serves as a link between the Model and the View.

  • Model: This layer is responsible for the abstraction of the data sources. Model and ViewModel work together to get and save the data.

Contact

Have a project? DM me at

hossein.arabameri69@gmail.com

Acknowledgments

Special thanks to Mr Mohammad Nouri for providing the course that helped me.