TVMaze_App_Example is an iOS application that allows users to explore and mark their favorite TV shows.
- View a list of TV shows with the option to mark as favorites.
- Favorites screen to see shows marked as favorites.
- Details of each show with the ability to mark or unmark as favorites.
- Use of the TV Maze API to retrieve show information.
- Developed in Swift 5.
- Compatible with iOS 10 and later.
- Implementation of the VIPER architecture.
- Entirely in Swift without the use of any external libraries.
TVMaze_App_Example follows the VIPER design pattern to separate the concerns of the application into distinct layers:
- View: Presents the user interface and handles user interactions.
- Interactor: Contains the business logic and interacts with the data layer.
- Presenter: Formats the data to be displayed in the view and handles user inputs.
- Entity: Represents the data objects used by the application.
- Router: Manages navigation between modules.
- Clone or download the TVMaze_App_Example repository.
- Open the TVMaze_App_Example.xcodeproj file in Xcode.
- Run the application on the iOS simulator or a physical device.
- On the main screen, you can explore the available TV shows.
- Tap a show to view its details and mark or unmark as favorite as desired.
- Go to the "Favorites" tab to see the shows you've marked as favorites.
- Enjoy exploring and marking your favorite shows in TV Shows Explorer!
- Learn about the VIPER design pattern in iOS!
- The application uses CoreData for local storage of favorite shows.
- TVMaze_App_Example is a fully functional application that can be further optimized for performance and scalability. Due to time constraints, certain optimizations may not have been implemented in this version.
- The decision to use the VIPER architecture was deliberate as it provides a clean separation of concerns and enhances maintainability, especially as the project scales. In UIKit-based applications like this, VIPER architecture offers a structured approach that aids in managing complexity and promoting code reusability.
TVMaze_App_Example is released under the MIT License.