Filmoteca
Movie saving app
A native Android app developed in Kotlin for saving, managing, and exploring movies.
🧠 Project Overview
Filmoteca is a movie-saving application built using Android Studio and Kotlin. This project was developed during my Master's program and served as my first complete native Android application. The app allows users to search, save, and organize their favorite movies, acting as a personal catalog and watchlist.
🎯 Objectives
- Learn to structure and build an Android app from scratch using industry-standard practices.
- Understand how to use native Android components for UI, navigation, and data persistence.
- Explore the MVVM architecture, fragment-based navigation, and UI responsiveness across devices.
🛠️ Technologies Used
- Kotlin: Main programming language.
- Android Studio: IDE used for development and testing.
- Room Database: For storing and retrieving saved movies.
- RecyclerView & Fragments: For dynamic lists and structured navigation.
- Material Design Components: For consistent and modern UI elements.
- ConstraintLayout: For responsive design across devices.
📱 Key Features
- Add, view, and delete movies from a personal list.
- Search functionality for quick navigation.
- Adaptable layout: Optimized views for phones and tablets.
- Dark mode support using native theme switching.
- Persistent storage with Room and LiveData.
🚀 What I Learned
- How to use Android's fragment and activity lifecycle effectively.
- The importance of clean architecture and separation of concerns using MVVM.
- Responsive design: handling multiple screen sizes and orientations.
- Creating custom UI components and working with RecyclerView adapters.
- Debugging and testing using Android emulators and physical devices.
💬 Final Thoughts
Filmoteca was a milestone project in my development journey. It helped me solidify my understanding of native Android development, introduced me to project modularization, and taught me the essentials of building scalable, user-friendly mobile applications. It also inspired me to further explore mobile development for real-world applications.