Our vision for the Rick and Morty app is to create an ultimate platform for fans to explore and experience the multidimensional world of Rick and Morty. Our app will provide an interactive and engaging experience that captures the spirit of the show while also providing valuable content and features for fans to enjoy.
With the Rick and Morty app, fans will have access to a comprehensive database of characters, episodes, and locations that make the show so iconic. In the Rick and Morty Characters section, users will be able to view details such as name, status, species, type, gender, origin, locations, episodes, and a large picture of a character they want to see. Users will also be able to filter characters by gender (male, female, genderless, unknown) or status (dead, alive, unknown).
In the Rick and Morty Episodes section, users can explore episode details such as the name, episode code (e.g. S01E01), air date, and a list of characters featured in each episode. This section will enable fans to delve deeper into the show's universe and understand the intricacies of the storyline.
Similarly, the Rick and Morty Location section will provide users with a comprehensive list of all the locations in the show, along with details such as name, type, dimension, and a list of residents (characters) in each location.
Lastly, the Search section will allow users to search for anything by typing the name of a character or the name/type of a location. Users can click on their choice to get more information about the character or location.
Our goal is to provide an enjoyable and engaging experience that caters to the needs of all Rick and Morty fans. The Rick and Morty app will serve as a one-stop-shop for all things Rick and Morty on Android, providing exclusive content and interactive experiences that can't be found anywhere else. Whether you're a die-hard fan or a casual viewer, the Rick and Morty app is the ultimate destination for exploring and experiencing the multidimensional world of Rick and Morty.
We are following a strategy similiar to the Git branching strategy. The two main branches to be aware of are:
-
The
main
branch.- Where fully working releases for each iteration will be.
-
The
dev
branch.- Where current development is being done.
In addition to these two main branches, each new feature will have their own branch that is created from the dev
branch. The specific names of these branches are determined by the ticket number from Jira
followed by feature name. Once that branch has its work completed, it will then be merged into the dev
branch and deleted.
- The architecture used is Clean Architecture
- Go to GitHub and open the Rick and Morty repository
- You can either download the Zip or clone the repository to your local machine to work on the project.
- To clone repository from your local machine:
- Click on Code which is located in top-right of the github repository and copy the link.
- Then install git on your local machine from this link.
- Once the git is installed, open Git Bash.
- Clone the repository by typing
git clone [link]
.
- To clone repository from your local machine:
- After downloading the repository, the next step is to download and install Android Studio.
- You can follow the steps to download and install Android Studio in your machine.
- Open Android Studio and select
Open an existing Android Studio project
from the Welcome screen. - Navigate to the directory where you cloned the repository and select the
build.gradle
file for the app module. - Android Studio will import the project and build the Gradle files automatically. If there are any missing dependencies, Android Studio will prompt you to download them.
- Once the project is imported, You can then setup Android Emulator to run the app using the steps in this link
- Finally, you can run it by clicking the "Run" button in the Android Studio toolbar. You can choose a device or emulator to run the app on.
Final project of EON Mobile Incubator W23
Mobile app that consume the public RickyAndMorty GraphQL
- Make sure your device is turned on(Emulator or Physical).
- Get
Pixel 4 API 24
in Emulator to run test using the command below. - Run command
./gradlew createDebugCoverageReport
in Android Studioterminal
which is located on the bottom bar. - It will run all UI behaviour tests and system tests.
- Once it is done, it will generate a test coverage report in
build/reports/coverage
or you can copy/paste the linkterminal
provides to any browser to see the coverage. - To run UI tests locate
app/src/test [unitTes]
, right click andrun test with coverage
- You can also check
ManualTestsCoverage
excel file in the project directory to see the coverage of the overall project. - You can check the history of JacocoTestCoverage in
app/build/reports/coverage/androidTest/debug/connected/index.html
Ground Rules
- You must use Kotlin
- You must use MVVM as the app architecture
- You are free to use other patterns that build on top of MVVM (e.g. MVVM+Coordinators)
- You must use Jetpack Compose to create your views
- Your implementation should use asynchronous and reactive programming (i.e. Flows, Coroutines)
- You must use Apollo GraphQL to interact with the Ricky and Morty GraphQL API
- You should have test coverage over 70% on your view models
- You should explore both Unit and BDD testing
- You must setup KTLint locally and add it as a pre-commit hook to ensure your code is being linted
- Read more about git hooks here https://git-scm.com/book/en/v2/Customizing-Git-Git-Hooks
- KTLint must also be setup as a Github Check to run on all pull requests and this check must pass for a PR to be merged