MasterHead

? Native Android Anime App

? Description

This is a native Android app designed to showcase anime content. It was built using Android Studio and the Kotlin programming language. In the app’s user interface (UI) layer, Jetpack Compose and XML are employed. In the data layer, Room is utilized for local database management, and Retrofit is used for remote database interactions. The primary purpose of this app is to display information about anime and manga, including detailed descriptions. Developing this project was an enjoyable endeavor, and it took approximately 40 days to complete. To ensure optimal performance, benchmarking was employed to test the app’s efficiency. Additionally, a baseline profiler was utilized to enhance performance metrics, such as startup time and navigation frame rates.

Features

  • Search Anime
  • Search Manga
  • Show top animes
  • Show top mangas
  • Anime Movies
  • Desplay Anime Episodes
  • Show Anime and manga details
  • Add anime or manga to favorit
  • offline mode
  • Show creator details
  • and more …

? Preview

Image 1 Image 2 Image 3 Image 3

Image 2 Image 3 Image 3

Image 2 Image 3 Image 3

In this app, I used


?️ Tools

This is a simple overview of the tools I used in this project, such as Android Studio, Git, GitHub, and Postman

Image 1

Postman

I used Postman to test the API and verify if all requests are working or not

Image 1

Git

I used Git to manage versions and updates in this project.

Image 1

Android Studio

I used Android Studio to create this app. It is an important tool for every Android developer


?️ Tech Stack & Open Source Libraries

Image 1

Jetpack Compose

I used Jetpack Compose in this project to create beautiful UI/UX

Image 1

Kotlin

I used Kotlin as the main language in this app.

Image 1

Leak canary

I used this library to verify if there are any memory leaks

  • Minimum SDK level 26.
  • 90% Jetpack Compose based + Coroutines + Flow for asynchronous.
  • Jetpack
    • Compose: Android’s modern toolkit for building native UI.
    • ViewModel: UI-related data holder and lifecycle aware.
    • Navigation: For navigating screens and Hilt Navigation Compose for injecting dependencies.
    • Room: Constructs Database by providing an abstraction layer over SQLite to allow fluent database access.
    • Hilt: Dependency Injection.
  • Landscapist Glide, animation, placeholder: Jetpack Compose image loading library that fetches and displays network images with Glide, Coil, and Fresco.
  • accompanist: A collection of extension libraries for Jetpack Compose.
  • Retrofit2 & OkHttp3: Construct the REST APIs and paging network data.
  • ksp: Kotlin Symbol Processing API.
  • Baseline Profiles: To improve app performance by including a list of classes and methods specifications in your APK that can be used by Android Runtime.

?️ Architecture

Anime App follows Google’s official architecture guidance.

The overall architecture is composed of two layers; UI Layer and the data layer. Each layer has dedicated components and they each have different responsibilities. The arrow means the component has a dependency on the target component following its direction.

Image 1

GitHub

View Github