PhotoGrid

PhotoGrid is a simple app to let your best photos organized.
You can mark your prefered photos like favorites also.

Features

  • Take a new photo using camera device
    • or pick one from the the library photo if you need to use on a simulator for tests
  • See your photos on PhotoGrid's list
  • Tap photos in the list to see it larger
  • Users can mark a photo as a favorite to see it on PhotoGrid’s list on the top
  • Delete photo with a longpress.
  • As PhotoGrid only displays it’s own photos, users can remove photos from the app and after that they choose to keep or remove from library too.
Launch Permissions Add new photo
(simulator only)
Added PHotos Detail View + Favorite Removing a Photo

DarkMode

Added Photos Take a Photo
:

Architecture

  • PhotoGrid uses SwiftUI framework and it’s default architecture, that is a MV - Model and View utilizing Combine approach, what give us a C - a Controller downplay. Also uses some Views extensions as a ViewModel to split and isolate responsabilities. The PhotoLibrary is separated as a Repository, to be deacoupled and easily updated if app needs another kind photo’s library in the future.
  • PhotoGrid uses XCTests
  • The tests are splited in Unit and UI tests with some possibilities (is not covering all functionalities).

How to run the app

Clone the app using this repo
Open XCode -> Open project (no workspaces here)
Product -> Run or Command + R to run the project in a simulator or device.

How to run the tests

Product -> Test or Command + U to run the test suite.

GitHub