Android Anime App

As part of the UI2 course at KdG in May 2024, I developed a simple yet functional anime-themed mobile app using Android Studio, Kotlin, and Jetpack Compose. It was my first time working with Kotlin, and while the app's design is basic, this project taught me a lot about mobile development fundamentals, especially in areas like navigation, theming, state management, and using ViewModel with Compose.
Technologies used:
Kotlin
Jetpack Compose
Android Studio
Main screen
The main screen displays a list of all the anime currently stored in the app. Each anime entry shows a picture of the show, its genre, and a brief review. This overview allows users to easily browse through the available content at a glance.
At the bottom right, there's a floating action button that lets users add a new anime. On the top right, a cogwheel icon opens the settings menu.

Settings Menu
The settings menu provides two main options:
Switch to dark mode, which changes the entire app's theme.
Toggle display details, which lets the user choose whether to show more or less information on the main screen.
Working on this part of the app helped me better understand theming in Jetpack Compose and how to manage user preferences across the UI.

Add Anime Screen
When the user taps the add button, they are brought to a form where they can enter the following details for a new anime:
Title
Release date
Genre
Studio
Rating
Completion status
Image URL or upload
Once the form is submitted, the anime is added to the list and displayed on the main screen.

Anime Details Screen
When an anime from the list is tapped, the app navigates to a detailed view showing:
The anime's title
Release date
Genre
Studio
Rating
An image of the anime
From this screen, users also have the option to edit or delete the selected anime.

Technical Learnings
This project gave me valuable experience with modern Android development. I learned to:
Use Jetpack Compose for building UI declaratively
Implement navigation between different screens
Work with ViewModel and manage state efficiently
Handle basic GET, POST, PUT, and DELETE operations for managing anime data
Apply dark/light theming and customize the user interface
Create forms and user input handling in Compose
Conclusion
Although the app is simple, it represents a major learning step in my Android development journey. I started with no Kotlin experience and limited UI knowledge, but through this project, I became much more confident in using Jetpack Compose, structuring an app with ViewModel, handling navigation, and applying themes.