This application is use to search photos from Flickr APIs.
- This app requires Mac OS Catalina (10.15.7) or higher
- Minimum Xcode 11.4.1 required
- Clone this project
- Run Interview_Demo.xcodeproj
Below are list of Packages and responsibilities of each packages :
- BackEnd - This package contains code base of service handling.
- FronEnd - This package contains code base of view and its business logic.
- Resources - This package holds all resources of application like Assets, Localization file etc.
- Model - This package holds all data models of application.
- Utility - This package holds utilities like LocalizationUtility , AppConstants etc.
- Interview_DemoTests - This package contains all unit test cases of application
Views :
- SearchViewController - This is main view controller which holds collection view and search bar and its interactions.
- SearchViewCollectionCell - This is cusomized UICollectionCell to show cases and image and progressing of image download
View Models :
- SearchViewModel - This is view model view controller interacts with this to update UI layout.
Models :
- PhotoModel - This model respresents a replica of JSON coming from Flickr API
- SearchResultModel - This model also respresents a replica of JSON coming from Flickr API
Service Classes :
- ServiceManager - This class is responsible to talk with URLSession using respective tasks.
- ServiceConstants - This class contains all constants related to services like API_key
- PhotoServiceManager - This class is responsible for calling search module's APIs like search photos / download photos.
- PhotoCachingManager - This class this responsible for caching of images