MovieNight is a sample Android application that uses the clean architecture approach and is written in Kotlin.
Switch branches/tags
Clone or download
Latest commit 7df52e6 Sep 10, 2018
Permalink
Type Name Latest commit message Commit time
Failed to load latest commit information.
data no message Sep 10, 2018
domain Fixed caching mechanism .isEmpty() always running on main thread May 4, 2018
gradle/wrapper Misc updates Sep 10, 2018
presentation Replaced old MoviesRepositoryImpl with MoviesRepositoryImpl2 + renamed Sep 10, 2018
screenshots fixed screenshots Feb 23, 2018
.gitignore init Feb 23, 2018
README.md added blog post link to readme Mar 14, 2018
build.gradle Misc updates Sep 10, 2018
dependencies.gradle init Feb 23, 2018
gradle.properties init Feb 23, 2018
gradlew init Feb 23, 2018
gradlew.bat init Feb 23, 2018
settings.gradle init Feb 23, 2018

README.md

MovieNight

Summary:

MovieNight is a sample Android application that uses the clean architecture approach and is written in Kotlin.

P.S: I've written a blog post about this project.

Screenshots

The Motivation behind the app:

During the work on this app, my goal was to leave my comfort zone as much as I could, intentionally tackling subjects I'm less familiar with or, at times, entirely new to me. Some of those subjects include:

  • The Kotlin programming language
  • Clean architecture
  • Test-driven development
  • Dagger2
  • Android architecture components (ViewModels, LiveData, Room, etc.)

How to run the app:

This app uses The MovieDB public API. Register (its free) and grab your API key, then paste it inside: .../res/values/api_key.xml

//TODO:

  • Few fixes and teaks
  • Add UI tests
  • Maybe expand the app functionality

Used libraries:

License:

Copyright 2018 Yossi Segev

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.