The "presentation" repository of Liken by KaosClub
Liken is a way to recommend movies and tv shows (user to user). It is a social network where users can create a recommendation of a content based on another content. For example: I recommend "Zodiac" for that users that liked "Memories of Murder".
- Recommendation: shows two contents liken, a text justifying why user created this recommendation and possible comments done by others users;
- Content detail: has poster, synopsis, the MovieDb rating, access to watch trailer and recommendations created for that;
- Home: list the main movies and tv contents now a days;
- Search: show contents and users based in a query;
- Trending: in the future, this tab must show the recommendations based in relevance, but because some limitations, this tab is showing the last recommendations created;
- Watchlist: this tab show the contents that user added on Watchlist, Watched list and Favorite list;
- Profile: user can see favorite list and some personal data of some user in the system;
- Mobile app: connect all parts in a beatiful UI;
- The MovieDb Api: provide the content database;
- Firestore of Firebase: store recommendations, user data, watchlist, upvotes and comments;
- Authentication with Firebase, Facebook and Twitter: authenticate users for create recommendations and create a watchlist.
Built using:
- Model-View-ViewModel (MVVM) archtecture (using LiveData library for View <- ViewModel);
- Dynamic fueature modules/multi-modules. Prepared for on-demand features or instant-apps, but not ready.
- Navigation: Navigation Archetecture Component
- Dependency injection: Insert Koin
- Animations: Lottie, Property Animation and "Animation Utils"
- Async operations: Coroutines
- Local database: Room
- Push notifictions: One signal
- HTTP requests: Retrofit
- the app born with Model-View-Presenter (MVP) archtecture and multiple activities based, using explicit intents by full name of the activity