Skip to content

clebodam/theFork

Repository files navigation

iOS Technical Test - TheFork light restaurant page

The main goal of this test is to write an application consisting on a single restaurant page and following this design:

picture

Instructions

  • You should write your application in Swift
  • Your code should run starting iOS 11
  • You must use a UICollectionView
  • Your views must be defined programmatically (no xib nor storyboard for cells)
  • Restaurant data are accessible on this JSON file (mock)
  • Assets can be found in the archive (images)

Work delivery

You should provide the following elements:

  • access to your git repository
  • instructions to build your project
  • a brief explanation of the technical choices and potential difficulties

Evaluation criteria

  • Your test compiles and run
  • Your implementation can easily be understood by the reviewer
  • Your code is testable

DELIVERY

TestTheFork

ios

Implementation

Contraints

Création des interfaces avec autolayout directement dans le code (pas de storyboard ni de xib, ni de SwiftUI)

Aucune librairie externe n'est autorisée

Le projet doit être compatible pour iOS 11+

Architecture

I used an VIP and Clean Swift architecture for my application.

MVVM Architecture Each screen has the followings components

  • ViewController
  • Presenter
  • Interactor
  • Router which I defined as Coordinator with factory behavior ( it implements all this objects and inject dependancies)

I found this architecture pretty well because thanks to it. I can easily test the business logic, I just have to test the ViewModel class to do it.

The whole architecture is designed to make each component as independent as possible. I use generics and protocols to separate each layer network model and ui. For testing each component can be tested independently of the others

What went wrong during the test

  • the main constraint was to not be able to use a storybard and to respect the mandatory design
  • I wrote massive classes in UI layer to match with all the UI elements which are numerous

Unit tests

I used XCTest

Results

Home

image

Diaporama

image image

Action

image image

Map

image

About

No description, website, or topics provided.

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages