Android TV App powered by TMDb
It is a easy way to find the best TV content, the top movies, series... all of that in your TV.
The goal of the project is to be a guide line about Android TV, that shows how to use the Leanback library from Google. The project also uses the popular libraries and tools from the Android ecosystem.
The main widgets from Android TV are used: BrowseSupportFragment
, SearchSupportFragment
, DetailsSupportFragment
, VerticalSupportFragment
.
- 100% Kotlin
- Android TV
- Clean Architecture
- Android Architecture Components
- Dependency Injection
This project uses the popular libraries and tools from the Android ecosystem.
- Tech-stack
- Architecture
- Tests
- Gradle
BESTV uses the version 3 of The Movie Database (TMDb) API. You can find all the documentation about the requests and the responses responses there.
BESTV uses The Movie DB API in order to fetch all the data, but is not endorsed or certified by TMDb.
To be able to run this application you have to create an API KEY from The Movie DB and place it in your gradle file.
buildConfigField "String", "TMDB_API_KEY", "YOUR API KEY HERE"
- Show the top movies and tv shows
- Show the top movies and tv shows by genre
- Details about a work including the casts, the videos, the similar and recommended works
- Details about a cast including the credits
- Search the movies and the tv shows by title
The app is modularized. We can see the dependency graph with all the modules.
- Improve the test coverage
- Give support to more languages
- Create a introduction guide to show the features when the users open the app the first time
- Android TV Leanback
- Google Codelab TV Recommendations
- Android TV application hands on tutorial
- Unit Testing asynchronous RxJava code
- Lifecycle Architecture Component
- Dagger2: @Component.Factory and @SubComponent.Factory
- Why you need Use Cases/Interactors
- Modularization - Lessons learned
- Gradle dependency management with Kotlin (buildSrc)
- Using Dagger in Android apps
Copyright (c) 2018 Marcus Pimenta
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.