Infinum iOS Academy project - appliaction for rating and reviewing TV shows
This project was a set of 7 home assignments that I worked on during my attenance in Infinum Academy 2023. The goal of the application was to enable users rating and reviewing TV shows, including seeing other users' reviews and ratings
- home assignment 01: setup of the whole project and getting better acquainted with the world of iOS
- home assingment 02: creating and styling a launch screen, adding the app icon and layouting the login screen using AutoLayout
Extra assignment: accomplshing it using UIStackView and UIScrollView - home assingment 03: creating a HomeViewController which is accessible after a successful login/registration API call using Alamofire pod. (documentation: https://tv-shows.infinum.academy/api/v1/docs/index.html)
Extra assignment: creating APIManager using Router pattern in Alamofire - home assignment 04: injecting AuthInfo to HomeController to enable session tracking, allowing users to automatically fetch all TV shows from the server using API call.
Extra assignment: adding pagination support using Delegating pattern to reduce the loading time of the fetched shows on the screen - home assignment 05: fetching show details when tapping on the certain show, loading other users' ratings and reviews with pagination support, and creating and implementing functioning "Write a review" screen which allows users to write their own review and rate the show
- home assignment 06: adding TV shows images using the Kingfisher pod, implementing "Remember me" button using UserDefaults, and adding animations to the application Extra assignment: implementing "Remember me" button using KeychainAccess pod, and adding the ability to refresh screen by pulling-to-refresh
- home assignment 07: creating Profile Details screen allowing users to see their info, with the ability to change their profile picture using Gallery. The task was also to implement the logout feature
You can download this repo using git clone
or you can see the preview of the app here: