Skip to content

vlari/TvMonster

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

4 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

TvMonster

 

 

Description

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.

 

Features

 

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.

 

Tools

  • XCode 13.1
  • iOS 15
  • SwiftUI 3
  • Swift
  • Core Data
  • Postman
  • Figma

 

Third Party Packages

Using Swift Package Manager

 

KingFisher

  • Version 7.2.2
  • Used for downloading and caching images from the web.

 

Demo

demo1

 

TouchID Demo

demo2

 

Note:

The quality and frame motion of this gif might be lower because of the recording software used.

 

Design Inspiration

 

Installation

Clone project from the following url:

https://github.com/vlari/TvMonster

Ideal Requirements to run the app

  • XCode 13
  • Swift 5
  • Simulator app or device

 

Create by vlari

Releases

No releases published

Packages

No packages published

Languages