Giter Site home page Giter Site logo

ios-advanced-technical-test-destinationguide's Introduction

Introduction

Philosophie

Chez Evaneos, nous accordons beaucoup d'importance à la qualité du code et à la qualité de l'expérience utilisateur de nos produits.

Nous souhaitons à travers ce test voir tes capacités en développement. La maintenabilité et la clarté de ton code sont pour nous des éléments très important. N'hésite donc pas à faire attention aux détails et à être rigoureux.

Lors de la restitution on s'intéressera aux raisons de tes décisions et aux discussions que nous pourrons avoir autour.

Le test

Dans ce test, tu vas reprendre du code.

Il s'agit d'une petite app qui comporte une vue qui affiche des destinations provenant d'une fake API qui ne fonctionne pas très bien ;) Lorsque l'utilisateur sélectionne une destination, une vue détail est présentée et elle contient une webview.

Ce test comporte 2 parties. Une première partie de refactorisation du code existant. Dans la seconde tu vas devoir ajouter une fonctionnalité.

Pour faire ce test, tu peux forker ce repo et faire l'implémentation de ton coté, tu nous enverras ensuite l'URL de ton repo.

N'hésite pas à nous solliciter si tu as des questions.

1. Refactorer le code existant

La première partie du test consiste à refactorer le code existant en MVVM et à adopter des bonnes pratiques.

  • Nous ne voulons pas voir de completion block. Utilise Concurrency et/ou Combine.
  • Lors de la restitution le code de DestinationFetchingService ne devra pas avoir été changé. C'est le seul code autorisé à utiliser des completion blocks ;)

2. Ajouter la fonctionnalité "Destinations récentes"

Nous souhaitons ajouter une fonctionnalité qui sauvegarde les destinations précedemment consultées selon cette maquette.

  • Pour stocker ces valeurs tu peux utiliser UserDefaults.
  • Si la UI est réactive c'est un plus.
  • Nous aimerions voir quelques tests que tu juges utiles. Si tu peux faire cette partie en TTD c'est un plus.

Règles

  • Limite les dépendances externes et justifie leur utilisation.
  • Essaie de faire des commits régulièrement (par exemple étape par étape).
  • Le code de DestinationFetchingService ne devra pas avoir changé.

Bonus : UI/UX

Cette partie est facultative. Si tu as du temps et que tu souhaites nous montrer davantage de choses, tu peux améliorer l'expérience avec par exemple un loader, un meilleur affichage des erreurs, ou faire de la UI (UIKit ou SwiftUI) complètement ou partiellement pour la vue détail. Tu peux t'inspirer de cette maquette.

Si tu ne fais pas cette partie ce n'est pas éliminatoire. Nous pourrons aussi simplement discuter de ce que tu aurais vu ou pas, quelle approche etc.

Bonne chance !

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.