kirchhoff- / movies Goto Github PK
View Code? Open in Web Editor NEWMovies is open-source Android project for viewing Movies/TV shows information
Movies is open-source Android project for viewing Movies/TV shows information
The current API makes it possible to receive information about a person, in other languages โโ- also_known_as
. It is necessary to display this information on the detailed information screen about the person (PersonDetailsFragment
).
API link - https://developers.themoviedb.org/3/people/get-person-details
Split data classes - ReviewsListResponse
two with UI
and Network
prefix.
Split data classes - TvDetails
, TVCredit
, TvCredits
on two with UI
and Network
prefix.
Integrate - https://github.com/marketplace/codefactor
Create stub for MainScreen. There are should be 3 fragments (for displaying - movies, shows, persons) inside BottomNavigationView (https://material.io/develop/android/components/bottom-navigation-view/)
Display list of the popular Movies on the first tab of BottomNavigationView in MainScreen.
Api - https://developers.themoviedb.org/3/movies
Movies should be displayed in RecyclerView with 2 column. Each movie card should contains:
Move to CreditsView
TextViews with labels - "Cast Credits" an "Crew Credits". Make CreditsView
inherit from LinearLayout
and contains all recyclerView information inside.
Display list of the popular Tv shows on the second tab of BottomNavigationView in MainScreen.
Api - https://developers.themoviedb.org/3/tv/get-popular-tv-shows
Tv shows should be displayed in RecyclerView with 1 column. Each tv show card should contains:
Integrate - https://github.com/marketplace/codacy
Create TextView with the text- "Similar tv shows" on Tv Details Screen.
TextView should be placed below tv show description.
By click on textView user should be moved to new screen on which displayed similar tv shows.
Similar shows could be fetched from API by endpoint - https://developers.themoviedb.org/3/tv/get-similar-tv-shows
Design of the screen should be similar with the Tv shows on main screen.
Display list of the popular people on the third tab of BottomNavigationView in MainScreen.
For getting people use this api endpoint - https://developers.themoviedb.org/3/people/get-popular-people
Persons should be displayed in RecyclerView with 3 column. Each person should be displayed using a rounded avatar.
Write unit tests for TvDetailsVM
API allows to get list of videos that have been added to a movie - https://developers.themoviedb.org/3/movies/get-movie-videos
Should implements logic for getting videos and showing it on Movie details screen in the bottom of the screen.
Videos should take one row and implementing by using RecyclerView
If videos response is empty - block should be hidden.
Split data classes - TrailersListResponse
on two with UI
and Network
prefix.
API has information about genres for movies and TV series. Need to implement displaying genres on the correspondent screens
MovieDetailsFragment
and TvDetailsFragment
.
API links:
https://developers.themoviedb.org/3/tv/get-tv-details
https://developers.themoviedb.org/3/movies/get-movie-details
Create TextView with the text- "Similar movies" on Movie Details Screen.
TextView should be placed below trailers block (if it exist) if not - below movie description.
By click on textView user should be moved to new screen on which displayed similar movies.
Similar movies could be fetched from API by endpoint - https://developers.themoviedb.org/3/movies/get-similar-movies
Design of the screen should be similar with the Movies screen.
Split data classes - MovieDetails
on two with UI
and Network
prefix.
Should be done after - #78
Create extension method for LiveData
which will be used for shorten such record:
moviesResponse.observe(viewLifecycleOwner, Observer { obtainMoviesResponse(it) })
Also should be created class - BaseFragment
in which this method will be exist. BaseFragment
will be parent class for all fragments in the project.
Integrate - https://github.com/arturbosch/detekt
API allows to get list of reviews for tv - https://developers.themoviedb.org/3/tv/get-tv-reviews
Should create new screen with list of reviews. Transition to this screen should be provided from TvDetailsFragment
. Similar functionality already implemented for movie, so should consider variant to reuse it.
Summary:
TvDetailsFragment
After click on element on TvsFragment
should open screen with detailed information about tv show
Screen should contain:
Summary:
TvsFragment
Get information about credits for person from API - https://developers.themoviedb.org/3/people/get-person-combined-credits
and display it on the bottom of person details screen.
On click on review on ReviewsListFragment
should open whole review with possibility of scroll it
Write unit tests for ReviewsListVM
Create network related classes for communication with - https://developers.themoviedb.org/3/getting-started.
Should use retrofit + okHttp.
There are some code duplication in MovieDetailsScreen
and TvDetailsScreen
(more information here - https://codebeat.co/projects/github-com-kirchhoff-movies-master/all_similarities)
Need to remove this duplication by creating some base class or another way.
Right now there are code duplication for logic of obtaining information from ViewModel in details fragments. More information here - https://codebeat.co/projects/github-com-kirchhoff-movies-master/pull_requests/371949
Need to remove such code duplication.
Add - "androidx.core:core-ktx" (https://developer.android.com/kotlin/ktx) and use it for configure view's visibility and other useful things.
API allows to get list of reviews for movie - https://developers.themoviedb.org/3/movies/get-movie-reviews
Should create new screen with list of reviews. Transition to this screen should be provided from movie details screen.
Summary:
TextView
with the label - "Reviews" in MovieDetailsFragment
Split data classes - PersonDetails
, PersonCredit
, PersonCredits
on two with UI
and Network
prefix.
Create class - MainScreenVM
in which move all logic from classes - ParsonsVM
, MoviesVM
and TvsVM
.
That will reduce code duplication and make code more readable.
Create class MainScreenFragment
and moved all UI logic from classes - TvsFragment
, PersonsFragment
and MoviesFragment
there.
Should be done after - #39
Write unit tests for PersonDetailsVM
Write unit test for MovieDetailsVM
https://developers.themoviedb.org/3/tv/get-tv-credits - allows get information about persons who is participated in movie/tv show.
Should get this information and display it on tv show details screen (TvDetailsFragment
)
Integrate some CI service (Circle, Travis or etc).
API has vote count and vote avarage information for movies and TV shows. Need to create special view which will be display such information in MovieDetailsFragment
and TvDetailsFragment
.
API links:
https://developers.themoviedb.org/3/tv/get-tv-details
https://developers.themoviedb.org/3/movies/get-movie-details
Integrate - https://github.com/pinterest/ktlint
After click on element in PersonsFragment
should open screen with detailed information about person.
On screen should be:
Summary:
PersonFragment
After click on element on MoviesFragment
should open screen with detailed information about movie.
Screen should contain:
Summary:
MoviesFragment
https://developers.themoviedb.org/3/movies/get-movie-credits - allows get information about persons who is participated in movie. Should get this information and display it on movie details screen (MovieDetailsFragment
)
Should be done after finishing - #79
Removed ExampleInstrumentedTest and ExampleUnitTest
Add logic for reading api key from local.properties file
Integrate - https://github.com/marketplace/codebeat
A declarative, efficient, and flexible JavaScript library for building user interfaces.
๐ Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
An Open Source Machine Learning Framework for Everyone
The Web framework for perfectionists with deadlines.
A PHP framework for web artisans
Bring data to life with SVG, Canvas and HTML. ๐๐๐
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
Some thing interesting about web. New door for the world.
A server is a program made to process requests and deliver data to clients.
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
Some thing interesting about visualization, use data art
Some thing interesting about game, make everyone happy.
We are working to build community through open source technology. NB: members must have two-factor auth.
Open source projects and samples from Microsoft.
Google โค๏ธ Open Source for everyone.
Alibaba Open Source for everyone
Data-Driven Documents codes.
China tencent open source team.