Welcome to Aflami, an Android application built to explore and display movie and TV show content powered by TMDB API.
This project is designed following Clean Architecture and modularized by component, ensuring scalability, maintainability, and high code quality.
WELCOME ABOARD!.. LEARN ABOUT THE APP'S KEY FEATURES AND GET READY TO EXPLORE MOVIES EFFORTLESSLY
-
Introduces the app’s key features
-
Simple visuals to guide new users
-
Clear buttons for next or skip
CHOOSE YOUR WAY TO START.. SIGN IN FOR A PERSONALIZED JOURNEY OR EXPLORE AS A GUEST
-
Sign in with your account
-
Option to create a new account
-
Option if you forgot password
-
Guest mode available for quick access
DISCOVER TRENDING.. MOVIES AND TV SHOWS WITH A PERSONALIZED BROWSING EXPERIENCE
-
Displays the latest featured content
-
Quick access to movies and TV shows
-
Includes a search bar and navigation tabs
SAVE YOUR FAVORITE MOVIES TO CUSTOM LISTS FOR QUICK ACCESS ANYTIME
-
Save movies
-
Organize your lists your way
-
Easy access to saved content later
CHALLENGE YOURSELF WITH MULTIPLE FUN MODES TO GUESS MOVIES, CHARACTERS, AND GENRES AGAINST TIME.
-
Pick your favorite games easily and increase your points
-
Interactive and visually engaging experience
-
Quick details preview for each game
PICK YOUR LANGUAGE.. SPEAK THE APP IN YOUR OWN LANGUAGE WITH ONE SIMPLE TAP (RTL included)
-
Select your preferred app language
-
Supports multiple languages (e.g., English/Arabic)
-
Changes applied instantly across the app
Switch seamlessly.. between light and dark mode for a personalized experience
- Toggle between Light and Dark modes
- Provides a personalized look and feel
- Remembers your last selected theme automatically
Prerequisites
Before you begin, make sure you have the following installed:
- Android Studio (latest version)
- Java Development Kit (JDK 17+)
- Gradle (comes with Android Studio)
- Android SDK with NDK installedFollow these steps to set up and run the project locally:
git clone https://github.com/team-berlin/Aflami.gitOpen the cloned project in Android Studio.
In the project root, create or edit a file named local.properties, then add the following keys:
apiKey="YOUR_API_KEY"
baseUrl="https://api.themoviedb.org/3/"
baseImageUrl="https://image.tmdb.org/t/p/w500"
ndkDir="~/Library/Android/sdk/ndk"
movieSignUp="https://www.themoviedb.org/signup"
movieResetPassword="https://www.themoviedb.org/reset-password"💡 How to get your
apiKey:
- Sign up at The Movie Database (TMDB)
- Navigate to Settings → API in your TMDB account
- Generate an API Key and paste it in place of
YOUR_API_KEY
- Open the project in Android Studio
- Sync the project with Gradle files
- Build the project (Build > Make Project)
- Run on device or emulator (Run > Run 'app')
- Enable USB debugging and connect your physical device
- Create an Android Virtual Device (AVD) with API level 24 or higher
| Area | Library |
|---|---|
| Language | Kotlin |
| UI Framework | Jetpack Compose |
| Networking | Retrofit + OkHttp |
| Dependency Injection | Dagger Hilt |
| Async/Coroutines | Kotlin Coroutines |
| pagination | Paging3 |
| Local Caching | Room |
| Image Loading | Coil |
| Navigation | Navigation-Compose |
| Testing | JUnit, MockK |
We’ve integrated:
- Crashlytics
- Analytics
- Firebase App Distribution (via GitHub Actions)
We use GitHub Actions for automated CI/CD:
- CI: Build and test on pull requests to
develop - CD: Auto-generate APK and upload to Firebase on merge to
develop
We've built a reusable image viewer module:
- Applies on-device blurring for inappropriate content
- Designed to respect cultural sensitivities
- Codebase is clean, modular, and scalable
- Follows SOLID principles and modern Android best practices
- Tested and production-ready structure
Made with ❤️ by Berlin squad