/weather-forecast-android-mvvm

It is a weather application that shows the weather conditions of cities in Turkey instantly, hourly and daily.

Primary LanguageKotlinApache License 2.0Apache-2.0

App Presentation

weatherapp

Architecture

  • Single Activity
  • MVVM Pattern
  • Clean Code
  • Repository Pattern

View: Renders UI and delegates user actions to ViewModel

ViewModel: Can have simple UI logic but most of the time just gets the data from UseCase

UseCase: Contains all business rules and they written in the manner of single responsibility principle

Repository: Single source of data. Responsible to get data from one or more data sources

Tech Stack

Dependencies

  • Fragment: Independent screens that are hosted within an Activity
  • LiveData: Lifecycle aware observable and data holder
  • ViewModel: Holds UI data across configuration changes
  • Databinding: Binds UI components in layouts to data sources
  • Dagger-Hilt: Dependency injector
  • Coroutines: Asynchronous programming
  • Kotlin-Flow: Asynchronous programming
  • Retrofit: Type safe HTTP client
  • Glide: Media management and image loading framework
  • KTX: A set of Kotlin extensions

License

Copyright tolganacar

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

    http://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.