All Projects → Gaket → Earthquakes

Gaket / Earthquakes

Demo application showing alerts about Earthquakes. Built using Clean Architecture and MVP approach.

Programming Languages

java
68154 projects - #9 most used programming language

Projects that are alternatives of or similar to Earthquakes

idreminder
Simple reminder app build with Kotlin + Clean Architecture + RxJava + Dagger2 + MVP + Room
Stars: ✭ 29 (-14.71%)
Mutual labels:  mvp, clean-architecture
Alligator
Alligator is a modern Android navigation library that will help to organize your navigation code in clean and testable way.
Stars: ✭ 287 (+744.12%)
Mutual labels:  mvp, clean-architecture
Clean Marvel Kotlin
This repository contains a detailed sample app that implements Clean architecture and MVP in Kotlin using RxJava2, Retrofit
Stars: ✭ 27 (-20.59%)
Mutual labels:  mvp, clean-architecture
CleanArchitecture-SocketIO
CleanArchitecture with SocketIo 📡
Stars: ✭ 32 (-5.88%)
Mutual labels:  mvp, clean-architecture
Android Mvp
Android Model View Presenter
Stars: ✭ 28 (-17.65%)
Mutual labels:  mvp, clean-architecture
QueryMovies
This repository shows a Android project with Clean Architecture, Functional Reactive Programming and MVP+Dagger
Stars: ✭ 16 (-52.94%)
Mutual labels:  mvp, clean-architecture
UTair-MVP-Sample
Android Clean Architecture + MVP Sample written in Kotlin
Stars: ✭ 27 (-20.59%)
Mutual labels:  mvp, clean-architecture
Eva
Eva and Wall-e
Stars: ✭ 131 (+285.29%)
Mutual labels:  mvp, clean-architecture
Ribble
Simple Dribbble Client using Dribbble API, fully written in Kotlin 😱 ❤️
Stars: ✭ 872 (+2464.71%)
Mutual labels:  mvp, clean-architecture
Firebucket
Glimpse into Firebase, with a simple TODO list app built around Dagger, RxJava 2, Clean architecture and of course, Firebase.
Stars: ✭ 376 (+1005.88%)
Mutual labels:  mvp, clean-architecture
dagger2-clean-mvp-example
Sample project with a basic approach to CLEAN architecture on Android
Stars: ✭ 41 (+20.59%)
Mutual labels:  mvp, clean-architecture
Ios Mvp Clean Architecture
Demo iOS application built to highlight MVP (Model View Presenter) and Clean Architecture concepts
Stars: ✭ 637 (+1773.53%)
Mutual labels:  mvp, clean-architecture
Swift-MVP-Sample
It's an iOS simple project that how I implement MVP (Model-View-Presenter) and Clean Architecture in Swift.
Stars: ✭ 27 (-20.59%)
Mutual labels:  mvp, clean-architecture
GithubApp-android-architecture
Let's learn a deep look at the Android architecture
Stars: ✭ 16 (-52.94%)
Mutual labels:  mvp, clean-architecture
Klean-ArchiteKture
Kotlin Android clean-architecture demo project for a meetup talk. Slides: https://docs.google.com/presentation/d/1CxnntHf3CorNDicx_cDN5s1t5pEbUwjwWHZ5PNmfe6Y/edit?usp=sharing
Stars: ✭ 10 (-70.59%)
Mutual labels:  mvp, clean-architecture
KotlinMvpTemplateGenerator
Android Studio template for Kotlin with MVP + Dagger2 + Retrofit2
Stars: ✭ 65 (+91.18%)
Mutual labels:  mvp, clean-architecture
Android-Starter-Kit
This is up-to-date android studio project for native android application, that is using modern tools and libraries.
Stars: ✭ 16 (-52.94%)
Mutual labels:  mvp, clean-architecture
Starwars-clean
Simple project with clean architecture
Stars: ✭ 34 (+0%)
Mutual labels:  mvp, clean-architecture
Crazydaily
[开源项目] 一款程序员日常放松的App,基于Material Design + MVP-Clean + Weex + Flutter + RxJava2 + Retrofit + Dagger2 + Glide + Okhttp + MTRVA + BRVAH + 炫酷控件 + 炫酷动画
Stars: ✭ 294 (+764.71%)
Mutual labels:  mvp, clean-architecture
Viabus Architecture
让 Android 开发可以像流水线一样高效的,职责分离架构 ⚡ 不同于 MVP 的配置解耦,也不能和 似是而非 的 MVVM - Clean 同日而语。VIABUS 是世界范围内首个明确提出,通过职责分离,来真正实现 UI 和 业务并行开发的 Android 项目级开发架构和设计模式理念。
Stars: ✭ 485 (+1326.47%)
Mutual labels:  mvp, clean-architecture

Earthquakes Alert

Code maintainability Codacy Badge

About

Demo app, that helps you to be aware of earthquakes nearby. Based on data from http://earthquake.usgs.gov/

The app demonstrates principles of Clean Architecture in Android. You can read the original post from Uncle Bob or one of the first thoughts about it in Android. MVP pattern is used for the presentation layer.

The app was written as an example for a talk about Clean Architecture, given in Russian language: https://youtu.be/MYXt_9d_2ps

Features

  1. The main screen notifies users if there are any earthquakes with given from settings magnitude and distance from them. If there is more than one earthquake satisfying settings, only the closest one is shown.
  2. The settings screen gives a possibility to set maximal distance, to which we should show the alert and minimal magnitude needed to show the alert. Both of these parameters are used as filters for Earthquakes alert.
  3. The list of all earthquakes in the last day sorted by the distance from the user without filtering. It supports offline mode and will show cached data even in a case of lack of internet connection. If users click on an earthquake, a webpage with more details is opened through the default browser.
  4. Simple info screen, containing basic application info.

Technology

To show some of the nowadays Android developer toolkits and facilitate the development process, the project uses some libraries:

  1. Retrofit 2 is the #1 library for network calls at the moment.
  2. RxJava 2 brings the possibility to work with streams of data and helps to connect different Clean Architecture layers with each other.
  3. Dagger 2 helps to achieve Dependency Inversion principle through Dependency Injection mechanisms.
  4. Moxy helps to handle Android Activities and Fragments lifecycle so that you don't have to think about them in your views and presenters.
  5. RxPermissions helps to work with permissions directly from the business logic using usual Context and not a concrete Activity.
  6. Timber helps to create a different logic of logging depending on build types. In the example, we turn on the logging only in debug.
  7. ObjectBox (beta) helps to store objects in a (more or less :) convenient way.
  8. MapStruct reduces the boilerplate needed to map one class to other.
  9. LeakCanary watches for memory leaks.
  10. (Branch conductor) Conductor provides a more convenient way to create Android View-based applications.
  11. (Branch conductor) ButterKnife tries to reduce the boilerplate needed to inflate views.

Testing

There are some example tests of Interactors and Presenters that show how we can create local tests without instrumentation. These tests cover the most complex logic in the app.

Notes

In the example, we have two Dagger components regardless the fact that actually, their lifecycle in the application is the same. This was made for a demo purpose.

Next steps

There are next features that may be made to do these example even more complete as a Clean Architecture example.

  1. Make logic of GPS permissions more complex and suggest user open Settings screen if there are problems with them.
  2. Add possibility to manually change the default location.
  3. Add Android Service or BroadcastListener that will check if there are new earthquakes alerts.
  4. In addition to 3, push a system notification about it.
  5. Show earthquakes on Google Map.
  6. Add filtering to the "All earthquakes" screen.
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].