FilmHubb is a movie exploration app uses The Movie Database. on FilmHubb, user can discover, track, and stay updated on current, upcoming, and popular movies and add to favorites their favorite movies
- Browse Movies: Seamlessly browse for movies which is on theatre or an upcoming date
- Search for Movies: User can search for any movie
- Detailed Information for a Movie: User can reach all the information about the movie
- Add to Favorite: Add favorite movies in a list to be able to browse it easier
- Xcode: Version 14.3.1
- Language: Swift 5.8.1
- Minimum iOS Version: 16.4
- Dependency Manager: SPM
In developing FilmHubb, I used the MVVM (Model-View-ViewModel) design pattern for these key reasons:
ChatGPT MVVM in Swift:
- Separation of Concerns: Divides responsibilities between Model, View, and ViewModel for clean code organization.
- Testability: Facilitates effective unit testing by isolating business logic in the ViewModel.
- Scalability: Enables easy addition of features and maintenance, promoting code agility.
- Data Binding: Automates View-ViewModel synchronization, reducing boilerplate code.
- Readability: Enhances code readability and maintainability through clear separation of components.
- Platform Support: Well-suited for cross-platform Swift development, with shared ViewModel and platform-specific Views.
I focused on testing ViewModels first, still working on it.
Before you begin, ensure you have the following:
- Xcode installed
Also, make sure that these dependencies are added in your project's target:
- JDProgressHUD: Used for displaying elegant and customizable progress indicators in your iOS application.
- SDWebImage: Simplifies the process of asynchronous image loading and caching in your app.
-
Clone the repository:
git clone https://github.com/lochmidth/FilmHubb.git
-
Open the project in Xcode:
cd FilmHubb open FilmHubb.xcodeproj
-
Add required dependencies using Swift Package Manager:
- JDProgressHUD - SDWebImage
-
Build and run the project.
- Open the app on your simulator or device.
- On the home screen, you can browse for movies in related sections.
- Use the search bar to find a spesific movie.
- Click on the movie to see detailed information
- On the 3. tabBar, user can access to favorite section
- While on the detailed movie screen, user can add or remove by clicking the star icon on the movie screenshot.
Pull requests are welcome. For major changes, please open an issue first to discuss what you would like to change. Please make sure to update tests as appropiate.
This project is licensed under the MIT License.