Skip to content

Movies demonstrates modern Android development with Hilt, RxJava3, Jetpack (Room, ViewModel,LiveData etc.), and Material Design based on MVVM clean architecture.

License

shamim-emon/Movies

Repository files navigation

Movies

Movies demonstrates modern Android development with Hilt, RxJava3, Jetpack (Room, ViewModel,LiveData etc.), and Material Design based on MVVM clean architecture.

License API


Tech stack & Open-source libraries

  • Minimum SDK level 21
  • Kotlin
  • Lifecycle: Observe Android lifecycles and handle UI states upon the lifecycle changes.
  • ViewModel: Manages UI-related data holder and lifecycle aware. Allows data to survive configuration changes such as screen rotations.
  • DataBinding: Binds UI components in your layouts to data sources in your app using a declarative format rather than programmatically.
  • Room: Constructs Database by providing an abstraction layer over SQLite to allow fluent database access.
  • Hilt: for dependency injection.
  • Navigation Component.
  • Gson is a serialization/deserialization library to convert objects into JSON and back.
  • DataStore: Jetpack DataStore is a data storage solution that allows you to store key-value pairs or typed objects with protocol buffers
  • Retrofit2: Construct the REST APIs and paging network data.
  • Glide: Loading images from network/resource.
  • Rxjava3: A library for composing asynchronous and event-based programs by using observable sequences.
  • Junit(Unit Test) : A simple framework to write repeatable tests.
  • Mockito(Unit Test) : A mocking framework that lets you write beautiful tests with a clean & simple API.

Architecture

This app uses MVVM clean Architecture.


Testing

Local Tests are done using Junit & Mockito.


How To Run The App

Add your TMDB API key in the local.properties file:

 api_key = YOUR_API_KEY 

How To Contribute

At the moment this repo only have unit/local tests.Contribution in androidTest/ UITest is welcome.


License

Designed and developed by 2023 shamim-emon (Shamim Shahrier Emon)

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.