Développement d'applications mobiles

Développement d'applications mobiles


9.1- Recipeasy

Laboratoires

10.1- Agile

L'application Recipeasy sera développée de façon itérative au fil de notre apprentissage de React Native.

1- Interface utilisateur

Les prototypes d'écrans représentent une maquette, donc vous pouvez utiliser des couleurs différentes ou une librairie de composants différente sans changer la mise en forme significativement

Pour cette première itération, implémentez seulement le contenu statique des écrans suivants:

Librairies suggérées

Boutons radio 📚 RN Radio Buttons Group
bash
copier
npx expo install react-native-radio-buttons-group
jsx
copier
import { View } from 'react-native';

import RadioGroup from 'react-native-radio-buttons-group';

export default function App() {

const options = [
{
id: '1',
label: 'One',
value: '1'
},
{
id: '2',
label: 'Two',
value: '2'
}
];

return (
<View>
<RadioGroup radioButtons={ options } />
</View>
);
}

Liste déroulante 📚 Expo Picker
bash
copier
npx expo install @react-native-picker/picker
jsx
copier
import { View } from 'react-native';
import { Picker } from '@react-native-picker/picker';

export default function App() {

return (
<View>

<Picker>
<Picker.Item label="One" value="1" />
<Picker.Item label="Two" value="2" />
</Picker>

</View>
);

}

Développement d'applications mobiles

Nom:

GitHub, Branche remise-ui 1     0
Appréciation générale
UI 0     -0.5     -1
Code 0     -0.5     -1
Écrans
Connexion 2     1.5     1     0
Inscription 2     1.5     1     0
Formulaire de recette 3     2.5     2     1     0

2- Interactions

À partir des écrans créés précédemment, ajouter la navigation en respectant le storyboard

  • Assurez-vous de respecter votre thème de couleur

Comportement minimal

Liste des recettes

Pour nous permettre de continuer le développement, nous créons un écran provisoire pour afficher la liste des recettes. À court-terme, cet écran est responsable de stocker la liste des recettes et d'offrir des interactions de base.

  • Bouton View ouvre le détail d'une recette aléatoire de la liste
  • Bouton Add ouvre le détail en mode ajout
  • Un texte affiche le tableau de recettes brutes en string, JSON.stringify(...)
    • Triée par nom, en ordre croissant
  • On ajoute un bouton Log out dans la barre de navigation qui retourne au login
  • L'option back de la barre de navigation est désactivée

Formulaire d'une recette

Permet d'ajouter une nouvelle recette ou de consulter en édition une recette existante reçue en paramètre de navigation.

  • Pour la création, les données doivent être valides
    • Catégorie requise
    • Nom requis, non vide
    • Durée > 0
  • Le bouton Delete est disponible en édition uniquement et retourne simplement à la liste
    • PAS de suppression à implémenter
  • Le bouton Save est disponible en ajout uniquement et retourne la nouvelle recette à la liste
    • La liste se mets à jour
    • PAS d'édition à implémenter

js
Structure d'une recette
{
category: Number,
name: String,
durationHours: Number,
durationMinutes: Number,
description: String
}

Librairie suggérée

Toastify React Native

Développement d'applications mobiles

Nom:

Branche remise-ux, commits 1     0.5     0
Appréciation générale
UI 0     -0.5     -1
UX 0     -0.5     -1
Code 0     -0.5     -1
Navigation
Login, Signup 1     0.5     0
Log out, back caché 1     0.5     0
Liste, Ajout/Édition 2     1.5     1     0
Comportement
Liste brute, trié par nom ascendant, se mets à jour 2     1.5     1     0
Ajout, validations 2     1.5     1     0
Édition, recette aléatoire, données cohérentes 2     1.5     1     0
Boutons Save, Delete 2     1.5     1     0

Refactoring

Pour favoriser l'intégration des rétroactions lors des remises itératives, vous avez l'opportunité de récupérer 50% des points perdus lors du laboratoire en implémentant les correctifs associés aux commentaires reçus.

Complétez les changements au plus tard mardi 21 octobre 8h AM, votre répertoire sera récupéré et vous devrez me les démontrer individuellement pour valider votre ajustement de note.