Saik0s / Slickr

Simple Swift gallery application using Flickr API

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool


Slickr

A simple ios gallery app using Flickr API

DescriptionHow To UseTo Do NextLicense

Description

This is a simple app that can perform search requests to Flickr API and display result in a collection view. Architecture of this app is service based with VIP design pattern. Most important parts of the application are covered with Unit tests and overall implementation follows SOLID principles.

There are two modules: SearchScreen and PhotoCell. Each module has its own factory. Main components of the module are Interactor, Presenter and View. Interactors communicate with Services. There are two services: FeedService which is responsible for performing search requests and getting recent photos, and ImageService which is responsible for requesting and caching images.

FeedService uses FlickrDataSource to communicate with the Flickr API. It is also uses ImageURLBuilder to build image url from the api response.

ImageService performs requests through NetworkEngine to get image data. It also caches data.

NetworkEngine is a simple wrapper around URLSessionDataTask to perform get and post requests.

How To Use

This project is using Swift 5.1 so it requires Xcode >= 11

Just clone this repository and open Slickr.xcodeproj

To Do next

  • Add more tests(datasource, views, factories)
  • Check callbacks in interactors that response is for the latest request
  • Download thumbnails instead of original images to display in collection
  • Open image in zoomable view controller

License

MIT

About

Simple Swift gallery application using Flickr API

License:MIT License


Languages

Language:Swift 100.0%