All Projects → akoufa → Coolweather

akoufa / Coolweather

Licence: apache-2.0
Weather App that uses Android best practices. Android Jetpack, clean architecture. Written in Kotlin

Programming Languages

java
68154 projects - #9 most used programming language
kotlin
9241 projects

Projects that are alternatives of or similar to Coolweather

Wanandroid
🏄 基于Architecture Components dependencies (Lifecycles,LiveData,ViewModel,Room)构建的WanAndroid开源项目。 你值得拥有的MVVM快速开发框架:https://github.com/jenly1314/MVVMFrame
Stars: ✭ 410 (+166.23%)
Mutual labels:  mvvm, viewmodel, room, architecture-components, retrofit2, glide, databinding
Clean Mvvm Archcomponents
👽 Android app consuming Star Wars API.Built with clean architecture ,MVVM pattern, Koin , Coroutines + Flows ,Architecture Components, Data Binding , Firebase , Unit/UI Tests ,Motion Layout
Stars: ✭ 285 (+85.06%)
Mutual labels:  coroutines, mvvm, clean-architecture, android-architecture, architecture-components, retrofit2
Mvvmsmart
基于谷歌最新AAC架构,MVVM设计模式的一套快速开发库,整合ViewModel+Lifecycles+Navigation+DataBinding+LiveData+Okhttp+Retrofit+RxJava+Glide等主流模块,满足日常开发需求。使用该框架可以快速开发高质量、易维护的Android应用。 项目组会持续维护,请放心使用.欢迎Start并Fork交流.
Stars: ✭ 382 (+148.05%)
Mutual labels:  mvvm, viewmodel, room, retrofit2, glide, databinding
Popularmovies
🎥 Movie discovery app showcasing Android best practices with Google's recommended architecture: MVVM + Repository + Offline support + Android Architecture Components + Paging library & Retrofit2.
Stars: ✭ 142 (-7.79%)
Mutual labels:  android-app, mvvm, viewmodel, room, architecture-components, databinding
Jetpack github
基于Kotlin + Jetpack全家桶 + Coroutines(协程) + Flutter等架构实现的一款精简版Github客户端项目,望与广大小伙伴一起成长,欢迎start or fork!
Stars: ✭ 314 (+103.9%)
Mutual labels:  mvvm, viewmodel, room, retrofit2, glide, databinding
Movieapp Clean Architecture
Learning Project (Movie App) For Applying Android Architecture Components And Clean Architecture Using MVVM With Kotlin
Stars: ✭ 123 (-20.13%)
Mutual labels:  coroutines, mvvm, clean-architecture, viewmodel, architecture-components, databinding
Kotlinjetpackinaction
🔥🔥 Kotlin Jetpack zero to hero. 新手到高手
Stars: ✭ 264 (+71.43%)
Mutual labels:  coroutines, mvvm, clean-architecture, viewmodel, retrofit2, databinding
The Movie Db Kotlin
The Movie DB app using Kotlin with updated Android features
Stars: ✭ 176 (+14.29%)
Mutual labels:  coroutines, mvvm, room, architecture-components, retrofit2, glide
Mvvmframe
🏰 MVVMFrame for Android 是一个基于Google官方推出的Architecture Components dependencies(现在叫JetPack){ Lifecycle,LiveData,ViewModel,Room } 构建的快速开发框架。有了MVVMFrame的加持,从此构建一个MVVM模式的项目变得快捷简单。
Stars: ✭ 218 (+41.56%)
Mutual labels:  mvvm, viewmodel, room, architecture-components, retrofit2, databinding
Mvvmarms
Android MVVM Architecture Components based on MVPArms and Android Architecture Components.
Stars: ✭ 425 (+175.97%)
Mutual labels:  mvvm, android-architecture, viewmodel, room, retrofit2, databinding
Androidroom
Android example to show how to use Room to access SQLite database on device for reading and writing data. This example also shows how to use LiveData and ViewModel with Room to build reactive, well performing and easy to maintain applications.
Stars: ✭ 36 (-76.62%)
Mutual labels:  android-app, mvvm, android-architecture, viewmodel, room, android-development
modern-android
Modern Android Project Skeleton
Stars: ✭ 17 (-88.96%)
Mutual labels:  room, coroutines, mvvm, clean-architecture, viewmodel, databinding
News
A sample News 🗞 app built using Modern Android Development [Architecture Components, Coroutines, Retrofit, Room, Kotlin, Dagger]
Stars: ✭ 774 (+402.6%)
Mutual labels:  coroutines, android-architecture, viewmodel, room, architecture-components, retrofit2
News Sample App
A sample news app which demonstrates clean architecture and best practices for developing android app
Stars: ✭ 334 (+116.88%)
Mutual labels:  clean-architecture, viewmodel, room, architecture-components, retrofit2
Kotlin Modular Tdd Coroutines Mvvm
A sample Kotlin app which was built with modular structure, Kotlin DSL, Kotlin Coroutines, TDD and MVVM patterns.
Stars: ✭ 256 (+66.23%)
Mutual labels:  coroutines, clean-architecture, retrofit2, glide, databinding
Tdcapp
Sample app which access the TDC (The Developer's Conference) REST API.
Stars: ✭ 55 (-64.29%)
Mutual labels:  mvvm, clean-architecture, viewmodel, room, architecture-components
Modular App Core
Core implementations for a modular Android App
Stars: ✭ 127 (-17.53%)
Mutual labels:  coroutines, mvvm, clean-architecture, architecture-components, retrofit2
Base Mvvm
App built to showcase basic Android View components like ViewPager, RecyclerView(homogeneous and heterogeneous items), NavigationDrawer, Animated Vector Drawables, Collapsing Toolbar Layout etc. housed in a MVVM architecture
Stars: ✭ 18 (-88.31%)
Mutual labels:  mvvm, viewmodel, room, architecture-components, retrofit2
GitHubApplication
GitHubApplication 📱 is an Android application built to demonstrate the use of modern Android development tools - (Kotlin, Coroutines, Hilt, LiveData, View binding, Data Store, Architecture components, MVVM, Room, Retrofit, Navigation).
Stars: ✭ 11 (-92.86%)
Mutual labels:  room, coroutines, mvvm, glide, retrofit2
Marvelheroes
❤️ A sample Marvel heroes application based on MVVM (ViewModel, Coroutines, LiveData, Room, Repository, Koin) architecture.
Stars: ✭ 826 (+436.36%)
Mutual labels:  coroutines, mvvm, room, retrofit2, databinding

CoolWeather

An Android Clean Architecture app written in Kotlin, using Kotlin Coroutines and Android Architecture Components using Hilt for Dependency Injection.

Presentation Layer

The presentation layer was implemented using:

MVVM with ViewModels exposing LiveData that the Views consume. The ViewModel does not know anything about it's consumers. It exposes a single source of truth as a LiveData that the consumers can observe to get the events emitted. These events consist of entities, that are wrapped in a Result class that leverages the powerful Kotlin feature of sealed classes. This enables us to express the different states of the application's individual screens in an concise an expressive manner.

Domain Layer

The domain layer contains the UseCases that encapsulate a single and very specific task that can be performed. This task is part of the business logic of the application. A UseCase exposes suspend operator fun invoke that returns a Result after invocation. The ViewModels of the presentation layer use the UseCases to complete a business case. This layer also contains the Repository interfaces and the domain entities. These are the basic building blocks of the application and the ones that are least likely to change when something external changes. That also means that this layer should not depend on any other layer. The other layers must depend and reference the domain layer.

Data Layer

The data layer implements the repository interface that the domain layer defines. The components in this layer provide a single source of truth for data and hide the origin of the data. This allows effective caching using a custom cache implementation or/and the Sqlite Db without polluting the other layers with the implementation details.

Clean architecture layers

cleanrings

Architecture overview and rules

architecture

Build Instructions

In order to run this project, you'll need to setup several things beforehand:

  • This application uses the OpenWeatherMap API to obtain information about current weather and forecasts, you'll need to register and obtain an API Key

  • You'll need to set the values found in the gradle.properties file. This involves the OpenWeatherMap Api Key (apiToken)

License

See LICENSE file

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].