Skip to content

DavidRuizE/IMDb-Android

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

5 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

🎬 IMDb Android App — Movie Browser & Details

Kotlin • Android Studio • MVVM • Clean Architecture • Retrofit • Coroutines

A modern Android application that allows users to browse and explore movies using a public movie API.
Built to practice Clean Architecture, MVVM, modular design, and modern Android development best practices.


🚀 Features

  • 🔍 Browse popular and trending movies
  • 📝 Detailed movie information (rating, overview, release year, etc.)
  • ⭐ Display genres, scores, and poster images
  • ⚡ Asynchronous loading with Kotlin Coroutines
  • 🧭 Jetpack Navigation for intuitive navigation
  • 🧱 Clean Architecture with separation of concerns
  • 📦 Repository pattern for data management
  • 🌙 Modern UI using XML layouts

🧱 Tech Stack

Languages & Frameworks

  • Kotlin
  • Android SDK
  • Jetpack Components

Architecture

  • MVVM (Model–View–ViewModel)
  • Clean Architecture
  • Repository Pattern

Libraries

  • Retrofit — HTTP networking
  • Gson / Moshi — JSON serialization
  • Coroutines & Flow — async operations
  • ViewModel & LiveData / StateFlow
  • Glide / Coil — image loading

📌 Project Structure

com.example.imdbapp │ ├── data

│ ├── api # Retrofit service

│ ├── model # API data models

│ └── repository # Repository implementation

│ ├── domain

│ ├── model # Domain entities

│ └── usecases # Use cases (optional)

│ └── ui

├── home # Movie list screen

├── details # Movie detail screen

└── viewmodel # ViewModels

🔌 API Setup

Add your API key in local.properties:

API_KEY=your_api_key_here

kotlin Copy code

Or create a Constants.kt file:

kotlin const val API_KEY = "your_api_key"

▶️ How to Run the Project

Clone the repository:

Copy code git clone https://github.com/DavidRuizE/IMDb-Android.git Open the project in Android Studio

Add your API key

Build & run:

Run ➝ Run ‘app’

🎯 What I Learned

Implementing MVVM with clean state management

Using Retrofit + Coroutines for network operations

Structuring apps following Clean Architecture

Handling images efficiently with Coil/Glide

Navigating screens using Jetpack Navigation

Managing UI state with ViewModel + LiveData/Flow

👤 Author

David Ruiz 📧 Email: david02ruiz@hotmail.com

🔗 GitHub: https://github.com/DavidRuizE

🔗 LinkedIn: https://www.linkedin.com/in/david-ruiz-echeverri/

About

This project is an IMDb-style web application that allows users to browse, search, and discover detailed information about movies and TV shows. It integrates with a movie database API to fetch up-to-date content, including posters, ratings, genres, release dates, and cast details.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages