/Tajawal-Hotels

Android code task with Clean Architecture, MVP, RxJava2, Dagger2, Repository Pattern and Kotlin.

Primary LanguageKotlinMIT LicenseMIT

Tajawal-Hotels


This is only a sample project and can be modified every time it needs.
After All nothing are wrote in the stones.

Implementation Details

MVP pattern with Repository Pattern and inspired by the Clean.

  • Model View Presenter pattern (MVP)
  • Repository Pattern
  • Reactive Programming with RxJava2
  • Responsive UI
  • Retrofit + GSON
  • Material Design pattern in available time
  • Glide for image loading
  • Dagger 2 for Dependency injection
  • Google maps
  • Mockito for Unit Testing
  • Rotation Support
  • Focus in performance

Three main packages: Commons, Data and Presentation.

  • Common: Responsible for all Commons files in project.
  • Data: Responsible for all API requests, database access, connections, persistence things, mapped entities and Repository pattern.
  • Presentation - Ui (View + Presenter): Responsible views and extencions. It is also responsible for the presentation (Presenter).

Model View Presenter

Model, View and Presenter, Unit Tests and single responsibility layers.

UX / UI

Material Design pattern in available time.

Libraries

  1. RxJava2 + RxAndroid2: This is the best way to work asynchronously and maintain the application scalable.
  2. Retrofit2 + OkHttp: For Network Request and Rx integration.
  3. Kotlin Extensions: For view binding.
  4. Glide: For image loading.
  5. Gson: Retrofit integration for deserialize.
  6. Dagger2: For dependency injection.
  7. PaperDb: For cache.

Installing

Just have the project and clean and build in your Android Studio

Versioning

We are using SemVer for versioning. For the versions available, see the tags on this repository.

Author

  • Renato Ramos - Initial work

License

This project is licensed under the MIT License - see the LICENSE.md file for details