dimohamdy / Flickr

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

FlickrApp

Install

  • Add API_Key in APILinksFactory
  • Run in terminal
pod install

App Structure

  • App structure I use MVP with Input-Output approach Delegate to notify about updates.

  • I use the Repository design pattern to act as a Data source from API and UserDefault for saveing search terms.

  • Separate the data source of UITableView to other class PhotosCollectionViewDataSource.

  • I use CellReusable protocol and create 2 extensions for UICollectionView to reduce code when reusing the cell.

  • Use DataLoader.swift to get data from local JSON.

  • Create Extension for UIImageView to download the image from the link.

  • I used SwiftLint to enhance Swift style.

  • I used JSONExport to generate model from JSON.

  • I used create UI with code.

  • I used Cocopods.

UnitTest

  • I apply Arrange, Act and Assert (AAA) Pattern in Unit Testing.
  • I use mocking to Test get data from NetworkManager, I use the same JSON file to mock data.
  • Test get data from API and From Local JSON.

Demo

Info

Name: Ahmed Hamdy

Email: dimo.hamdy@gmail.com

About


Languages

Language:Swift 99.6%Language:Ruby 0.4%