This Android application is a comprehensive movie browsing platform developed as part of the Android Programming course for Spring 2024. It showcases a wide range of Android development best practices and modern architectural patterns.
- Splash Screen: Custom-designed introduction screen
- User Registration: Secure sign-up process with input validation
- Home Screen: Dynamic movie list with genre-based filtering and auto-scrolling slider
- Movie Details: In-depth information about each movie
- Search Functionality: Real-time search capabilities
- Favorites: Ability to save and view favorite movies
- Responsive Design: Supports various device sizes and orientations
- Architecture: MVVM (Model-View-ViewModel)
- Design Principles: Adheres to SOLID principles
- Networking: Retrofit2 with OkHttp for API communication
- Local Storage: Room Database for persistent data
- UI Components: Fragments for modular UI design
- Asynchronous Programming: Coroutines for background tasks
- Image Loading: Glide library for efficient image handling
- Animation: Lottie for smooth, vector-based animations
- Real-time Search Implementation: Developed an efficient algorithm to provide instant search results without overwhelming the API.
- Complex UI Layouts: Created a responsive design that maintains integrity across various screen sizes and orientations.
- Data Persistence: Implemented a robust local database system to store user favorites and cache movie data for offline access.
- Memory Management: Optimized image loading and caching to prevent out-of-memory errors on devices with limited resources.
- Seamless User Experience: Balanced between local data and API calls to ensure smooth navigation and quick load times.
- Implement Dependency Injection using Hilt for improved modularity
- Add pagination support for movie listings to handle large datasets efficiently
- Introduce a dark theme option for better user experience in low-light conditions
- Implement more advanced animations for smoother transitions between screens
- Clone the repository
- Open the project in Android Studio
- Sync Gradle files
- Run the application on an emulator or physical device
- Retrofit2: REST API communication
- OkHttp: HTTP client for Retrofit
- Room: SQLite database abstraction
- Glide: Image loading and caching
- Lottie: Vector-based animations
- CircleImageView: Circular image views
- Coroutines: Asynchronous programming
- Lifecycle components: ViewModel and LiveData support
This project is part of an academic assignment and is not open for external contributions at this time.
This project is for educational purposes only and is not licensed for commercial use.
- Android Programming Course Instructors
- Open-source community for the invaluable libraries and tools