/TestProjectForJob

Online store for purchasing different products

Primary LanguageSwift

TestProjectForJob

Online store application for purchasing various products: phones, computers, clothes, etc.
The user can login or sign up here, setup his profile. search products by the name, look through detail info on an item and log out.
The UI was designed in accordance with the sketch in Figma. This is my pre-interview test project given me by a company.

Technologies

  • MVVM + Coordinator
  • Combine (for network manager and functional bindings)
  • UICollectionView Compositional Layout & Diffable DataSource
  • Completely programmatically designed UI with NSLayoutConstraints
  • KVO for observing properties in UserDefaults.
  • regex for validation

Overview


Auth features

The app catches and handles 4 different errors for user's input in text fields (Signup and Login VCs). These errors are presented for a user as a red message above the text fields.
The regular expression was used to validate an email address.

Password text field was designed with a secure eye that toggles dots and letters after tapping.


Post-auth View Controllers

Main VC contains a search controller. While typing prompt table view pops up with the delay 1 second (Combine's debounce operator).
Main VC has several sections with horizontal carousel scroll views (Compositional Layout).
Detail VC consists of 2 collection views (the second one is for paging), detail info view and custom stepper which increments quantity and increases a price of an item.
Profile VC provides the options of changing avatar and logging out.

Requirements

  • IPhone 11+
  • iOS 15.0+
  • XCode 13.0+