An app with a simple feed for exploring the world of silver screen in your Android smartphone and much more (currrently in development). The whole app is developed using Kotlin in MVVM architecture, with Dagger for Dependency Injection and RxAndroid as Reactive Extension. The codebase also contains data binding, layers-by-features and other standard practices.
- A Simple App with a Feed
- Discovering Trending and Upcoming Movies
- A short movie plot as an appetizer to your hunger for movies
- A Native Android Application using Kotlin as the only and primary language
- An app using the APIs available at TMDB (The Movie DB)
- A possible full version web demo
- Responsiveness in layout designs
- Easy & Quick ways:
- A Simple ListView inside ViewHolder
- Recylarview+CardView
- Expandable item layout if possible
- More Complicated ways:
- Tabbed Layouts with each of the categories & data associated with it
- Grid Recycler Layout style for adapting a continuing number of features in the layout
The last option has been chosen and implemented in the app.
- Kotlin
- Android Jetpack
- Libraries (AndroidX) and Android Architecture Componenets
- Foundation - Components for core system capabilities, Kotlin extensions and support for
multidex and automated testing.
- AppCompat - Degrade gracefully on older versions of Android.
- Android KTX - Write more concise, idiomatic Kotlin code.
- Architecture - A collection of libraries that help you design robust, testable, and
maintainable apps. Start with classes for managing your UI component lifecycle and handling data
persistence.
- Lifecycles - Create a UI that automatically responds to lifecycle events.
- LiveData - Build data objects that notify views when the underlying database changes.
- ViewModel - Store UI-related data that isn't destroyed on app rotations. Easily schedule asynchronous tasks for optimal execution.
- UI - Details on why and how to use UI Components in your apps - together or separate
- Dependency Injection
- Reactive Extensions
- Foundation - Components for core system capabilities, Kotlin extensions and support for
multidex and automated testing.
This project uses the Gradle build system. To build this project, use the gradlew build
command or use "Import Project" in Android Studio.
- Android Studio 3.4. The latest version can be downloaded from here
- Build gradle 3.4.0+
- Android SDK 28
- JDK 8
- Kotlin Version 1.3.30
Head over to Releases
in the repo and download the apk file from the latest release.
The following is a high level overview of relevant files and folders.
MovieMashup/
βββ app/
β βββ build/
β βββ libs/
β βββ src/
β βββ build.gradle
β βββ proguard-rules.pro
β βββ ...
βββ build/
β βββ kotlin/
β βββ sessions/
β βββ ...
βββ gradle/
β βββ wrapper/
β βββ gradle-wrapper.jar
β βββ gradle-wrapper.properties
βββ Resources/
β βββ Screenshots
β β βββ ...
β βββ mvvm-architecture-lyst
βββ build.gradle
βββ _config.yml
βββ gradle.properties
βββ local.properties
βββ settings.gradle
βββ README.md
βββ ...
<PROJECT_ROOT>\build.gradle
: Top-level build file with configuration options common to all sub-projects/modules<PROJECT_ROOT>\app\build.gradle
: Gradle specific for app module with libraries used- If you use another module in your project, as a local library, you would have another build.gradle file:
<PROJECT_ROOT>\module\build.gradle
- If you use another module in your project, as a local library, you would have another build.gradle file:
_config.yml
for setting up jekyll environment- Change
<PROJECT_ROOT>\app\proguard-rules.pro
if you add Java codes, guard for kotline codes have been added. Uncomment lines if you want to preserve the line number information for debugging stack traces
git checkout master
from any folder in your localMovieMashup
repositorygit pull origin master
to ensure you have the latest main codegit checkout -b the-name-of-my-branch
(replacingthe-name-of-my-branch
with a suitable name) to create a branch
- Change/Add the codes
- Save the files and check the codes if it has successfl build config.
- If possible, test the codes the way you want.
git add -A && git commit -m "My message"
(replacingMy message
with a commit message, such asFixed App Crash
orAdded App Crash 28 Fix
) to stage and commit your changesgit push my-fork-name the-name-of-my-branch
- Go to the
MovieMashup
and you should see recently pushed branches. - Follow GitHub's instructions and open up a pull request.
- If possible, include screenshots of visual changes.
The code base is GNU GENERAL PUBLIC LICENSE v3.0 (GNU GPLv3)