Skip to content

khaboshama/Weather-app

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

12 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Weather-app

A simple android application to display current weather conditions. This app will show

  • Search for a city by name.
  • Detect the weather of current user location incase the user enabled device GPS.

project structure

This project implements clean architecture, MVVM structure pattern, Retrofit for APIs, Coroutines, LiveData and DataBinding.

Screenshots resources


Guide to app architecture



The app has the following packages

  1. common: It contains all the base classes of the application.
  2. data: It contains the database, shared preference, network classes of the application.
  3. di: It contains setup of koin dependency injection.
  4. feature: It contains the packages of each feature in the application. Each feature contains two packages, one for module and one for screens.
  5. utils: It contains the utils classes of the application.
  6. constants: It contains any constants values in the application.

Library reference resources

  1. Coroutines: https://codelabs.developers.google.com/codelabs/kotlin-coroutines/
  2. Retrofit: https://square.github.io/retrofit/
  3. DataBinding: https://developer.android.com/topic/libraries/data-binding
  4. Koin: https://insert-koin.io/docs/quickstart/android/
  5. Glide: https://github.com/bumptech/glide

License

   Copyright (C) 2019 khaled Aboshama

   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.