test task from Funbox
Test task for the vacancy of ios developer at funbox. The project is educational.
The app contains three screen:
- Store-front screen - shows product information and a buy button.
- Back-End screen - shows a table with product name and amount. Screen has a button for adding a new product and editing an existing product.
- Add/edit product screen - the screen has fields for editing a product and buttons for canceling and saving.
screenshots app:
description of tasks implementation
the app is split in two using UITabBarController.
- store-front - implemented UIPageViewController with content page view.
- back-end - implemented UITableViewController wrapped from UINavigationController
- add/edit screen - implemented UIViewController with view
- work with data
test data are in StaticArrayData
adapter example StorageJSON
storage replacement example:
//test data
let storageDevices: StorageProtocol = StaticArrayData()
///example of working with the adapter.
//let storageDevices: StorageProtocol = StorageJSONAdapter(storage: StorageJSON())
let deviceProvider = DeviceProvider(storage: storageDevices)Used DispatchQueue with a Barrier flag.
An UIActivityIndicatorView has been added to show that a buy and update operation has started.
screenshots:
- UIKit
- UIPageViewController
- UITabBarController
- UINavigationController
- UIStackView
- UIActivityIndicatorView
- Pattern
- Adapter
- Multithreading
- DispatchQueue
- Barrier




