Skip to content

Instantly share code, notes, and snippets.

@arnaudbesnier
Last active November 5, 2021 19:42
Show Gist options
  • Save arnaudbesnier/499f5f5b6d3cd4458211 to your computer and use it in GitHub Desktop.
Save arnaudbesnier/499f5f5b6d3cd4458211 to your computer and use it in GitHub Desktop.
Shopmium Native

Introduction

Objectif

L'objectif de cet exercice est de réaliser une application native simple en s'inspirant fortement de la version de Shopmium actuellement sur iTunes. L'exercice est en temps libre.

Cette application doit permettre à un utilisateur :

  • d'arriver sur une page d'accueil au lancement de l'app
  • de se créer un compte en via un formulaire très simple
  • une fois inscrit, laisser entrer l'utilisateur dans une nouvelle fenêtre contenant un drawer

Une fois l'exercice réalisé, merci de nous envoyer une archive du projet par email.

Contraintes

  • Supporter iOS 7.+ / 8.+
  • Supporter le français et l'anglais
  • Versionner ton code avec Git (pour nous faciliter la review)
  • Ne pas héberger ton code sur Github (pour éviter qu'il ne soit publique)

Remarques importantes

  • Tu es libre de choisir de coder l'appli en Objective-C ou en Swift.
  • L'objectif n'est pas forcément de tout faire parfaitement, nous avons conscience que ce type d'exercice peut être très consommateur en temps. Fais en suffisamment pour nous montrer ce dont tu es capable. La qualité sera toujours plus importante que la quantité chez Shopmium.
  • Il n'y a pas de pièges !
  • Considère la version de Shopmium actuellement live sur iTunes comme des maquettes pour construire la UI.
  • Si tu as besoin d'éléments graphiques, codes couleur,... n'hésite pas non plus à demander. J'essaierai d'y répondre au mieux.
  • Prends bien le temps de relire ton code avant de nous le livrer, nous serons très regardant sur la qualité de celui-ci (organisation générale de tes fichiers, indentation, nommage de variables, consistence de code...).
  • Si tu as des questions, n'hésite surtout pas à me les poser.

Détail de l'exercice

Etape 1 : Home page

  1. Créer un projet pour l'application.
  2. Créer une home page contenant le logo de Shopmium et un bouton "Inscription avec mon email".

Etape 2 : Inscription

  1. Au clic sur le bouton "Inscription avec mon email", ouvrir une nouvelle page.
  2. Ajouter un formulaire pour s'inscrire (un email suffit pour s'inscrire) et les validations qui te semblent nécessaires.
  3. Envoyer ce formulaire au clic sur un bouton "Créer mon compte".

L'Url sur laquelle il faut aller s'inscrire est : https://app-staging.shopmium.com/mobileapp/v39/user

Tu peux la tester avec la commande suivante :

curl -H "Content-Type: application/json" -X POST --data '{"user":{"email":"[email protected]"},"referral_code":"","timezone_offset":-120,"ti_id":"A5F9DCD3-E1D1-4424-BC7A-99121D5073E6","install_key":"","app_key":"U2FsdGVkX19zc3Nzc3Nzc9opL1kESmS2aGqN8T4To8U=\n","installation_source":1,"install_keys":[],"logout":1,"device":"{\"app_platform\":\"3\",\"ti_id\":\"A5F9DCD3-E1D1-4424-BC7A-99121D5073E9\",\"model\":\"Nexus 5\",\"version\":\"5.0\",\"address\":\"192.168.40.260\",\"country\":\"FR\",\"locale\":\"fr\",\"name\":\"Android\",\"osname\":\"android\",\"username\":\"Android user\",\"netmask\":\"0.0.0.0\",\"appVersion\":\"5.0.0\",\"parse_identifier\":\"XXXXXX\"}","role":1,"language":"en"}' https://app-staging.shopmium.com/mobileapp/v39/user

Si l'inscription s'est bien passée, le serveur répondra avec le status 201.

Etape 3 : Ouverture mode connecté

  1. Si la réponse serveur est positive, ouvrir une nouvelle page.
  2. Afficher dans cette page, la réponse renvoyée par le serveur.

Etape 4 : Drawer

  1. Insérer dans cette page un drawer en s'inspirant de celui de Shopmium.

Etape 5 : Déconnexion

  1. Ajouter dans ce drawer un bouton permettant de se "déconnecter".
  2. Au clic sur le bouton de déconnexion, fermer la fenêtre et retourner à la home page.

Questions finales

  • Combien de temps a été nécessaire pour la réalisation de cette application ?
  • Quels sont les points les plus travaillés de ton app ?
  • Quels outils as-tu utilisé (IDE, gestionnaire de version,...) ?
  • Maintenant que tu as eu un peu de temps pour observer Shopmium, as-tu des idées d'améliorations de la version actuellement en production (UI, UX) ?
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment