This app shows listing TV series, using the API provided by the TVMaze website. The solution is using SwiftUI 3 following MVVM and container/presentation patterns. Also, using the latest structured concurrency. Core Data was picked as local persistence.
General Considerations:
- While searching i am using return tap to perform search.
- Demo tested on virtual simulator.
- Distribuition package exported inside dist folder.
- I will appreciate some feedback. Please contact me:
- obed1355@gmail.com
Considerations for a next iteration of the project:
- Dark theme is suitable.
- Better Images to improve design and better performance.
- Uni test api layer.
Main Features:
- List all of the series contained in the API used by the paging scheme provided by the API.
- Allow users to search series by name.
- The listing and search views must show at least the name and poster image of the series.
After clicking on a series, the application should show the details of the series, showing the following information:
- Name
- Poster
- Days and time during which the series airs
- Genres
- Summary
- List of episodes separated by season
After clicking on an episode, the application should show the episode’s information, including:
- Name
- Number
- Season
- Summary
- Image, if there is one
Bonus Features:
- Allow the user to set a PIN number to secure the application and prevent unauthorized users.
- For supported phones, the user must be able to choose if they want to enable fingerprint authentication to avoid typing the PIN number while opening the app.
- Allow the user to save a series as a favorite.
- Allow the user to delete a series from the favorites list.
- Allow the user to browse their favorite series in alphabetical order, and click on one to. This fnctionality works when toggling a button next to the async search bar in Home section. see its details.
- Create a people search by listing the name and image of the person.
After clicking on a person, the application should show the details of that person, such as:
- Name
- Image
- Series they have participated in, with a link to the series details.
Extra Features:
- Added minimal onboarding screen.
- I had a little time to create some unit tests.
- XCode 13.1
- iOS 15
- SwiftUI 3
- Swift
- Core Data
- Postman
- Figma
- Version 7.2.2
- Used for downloading and caching images from the web.
Note:
The quality and frame motion of this gif might be lower because of the recording software used.
- https://www.behance.net/gallery/80430137/Filmweb-Movies-TV-Series-app
- https://www.behance.net/gallery/115715581/Prime-Video-Redesign-project
- https://www.behance.net/gallery/97017777/Netflix-app-UI-REDESIGN-Freebie
Clone project from the following url:
https://github.com/vlari/TvMonster
- XCode 13
- Swift 5
- Simulator app or device