MovieMagic is an iOS app built using SwiftUI, Combine, and MVVM architecture that allows users to explore movies and access information about them using the MovieDB API. This README file provides an overview of the project and guides you through the setup process.
- Browse popular,upcoming,trending,top rated movies.
- Search for movies by title or keyword.
- Users can filter movies to discover movies within specific categories.
- View detailed information about movies/tvshow, including overview, rating.
[Screenshots1] , [Screenshots2] , [Screenshots3]
MovieMagic follows the MVVM (Model-View-ViewModel) architectural pattern. Here's a brief explanation of the different components:
Model: Contains the data models used in the app.
View: Defines the user interface components and their layout using SwiftUI.
ViewModel: Acts as an intermediary between the View and Model, providing data and handling user interactions. It also abstracts the API calls and data processing logic using Combine.
Service: Handles network requests to the MovieDB API and provides data to the ViewModel.
The project is organized as follows:
Models: Contains the data models used in the app.
Views: Contains the SwiftUI view files.
ViewModels: Contains the ViewModel files.
Services: Contains the networking code to interact with the MovieDB API.
Utilities: Contains utility classes.
Extensions: Contains Swift extensions that add extra functionality to existing classes or types.
To get started with MovieMagic, follow the instructions below:
- Clone the repository:
git clone https://github.com/OranLevi/MovieMagic.git
-
Open the MovieMagic.xcodeproj file in Xcode.
-
Obtain an API key from The MovieDB and replace the placeholder value in ConstantsTemplate.swift file:
static var API_KEY = ""
Build and run the app in the Xcode simulator or on a physical device.
Contributions are always welcome! If you have any ideas for features, bug fixes, or other improvements, please submit a pull request.