MoviesApp
MoviesApp is a Kotlin-based Android application that allows users to search for movies, view details, and watch trailers. The app uses Compose Multiplatform for the UI and Koin for dependency injection and supports IOS, Android and JVM.
Features
- Search Movies: Search for movies, TV shows, and people.
- View Details: View detailed information about movies.
- Watch Trailers: Watch trailers of movies.
- Popular Movies: Browse popular movies.
- Top Rated Movies: Browse top-rated movies.
- Upcoming Movies: Browse upcoming movies.
- Now Playing Movies: Browse movies that are currently playing.
- Search: Search Movies
Technologies Used
- Kotlin: Programming language used for development.
- Multiplatform Compose: Modern toolkit for building native Android UI.
- Koin: Dependency injection framework.
- Voyager: Navigation library for Jetpack Compose.
- Gradle: Build automation tool.
- Ktor: HTTP client for networking.
- Coroutines: Asynchronous programming.
- Serialization: JSON serialization library.
- Coil: Image Loading and Caching
- JavaFX: JVM WebView
Project Structure
src/commonMain/kotlin/com/kashif/common/presentation/
: Common presentation logic.
src/commonMain/kotlin/com/kashif/common/data/
: Common data logic.
src/commonMain/kotlin/com/kashif/common/domain/
: Common domain logic.
src/commonMain/kotlin/com/kashif/common/di/
: Common dependency injection logic.
src/androidMain/kotlin/com/kashif/android/
: Android-specific logic.
src/ioMain/kotlin/com/kashif/ios/
: iOS-specific logic.
src/jvmMain/kotlin/com/kashif/jvm/
: JVM-specific logic.
iosApp
: iOS-specific configuration and entry point.
androidApp
: Android-specific configuration and entry point.
jvmMain
: JVM-specific configuration and entry point.
Screen Shots
Getting Started
Prerequisites
- Android Studio Koala | 2024.1.1 Patch 2
- Kotlin 2.0.0+
- Gradle 8.0+
Installation
-
Clone the repository:
git clone https://github.com/yourusername/MoviesApp.git
cd MoviesApp
-
Run in Android Studio:
- Open the project in Android Studio.
- Build and run the project.
Usage
- Search for Movies: Use the search bar to find movies, TV shows, or people.
- View Movie Details: Click on a movie to view its details.
- Watch Trailers: Click on the play button to watch a movie trailer on ios, android and JVM.
- Browse Movies: Scroll through the lists of popular, top-rated, upcoming, and now-playing movies.
Contributing
- Fork the repository.
- Create a new branch:
git checkout -b feature/your-feature-name
- Make your changes.
- Commit your changes:
git commit -m 'Add some feature'
- Push to the branch:
git push origin feature/your-feature-name
- Open a pull request.
License
This project is licensed under the MIT License - see the LICENSE
file for details.
Acknowledgements
Contact
If you have any questions, please contact [kashismails@gmail.com].