15 Sprint 0
Lucas DELANIER edited this page 2 years ago
This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

Sprint 0 : 18/09 - 24/09

Arthur

  • Développement du client Android avec compose (10h): J'ai commencé le client Android avec Jetpack Compose, technologie que nous avons choisie, car elle est aujourd'hui celle préconisée par Google pour le développement d'applications natives sous Android. J'ai fait en sorte de poser des bases solides pour le projet. J'ai ensuite fait la navigation avec un ModalNavigationDrawer et le visuel de la page des bets. Tout est fait de sorte que le maximum de composants puisse être réutilisés à l'avenir. Après ça, j'ai implémenté le visuel de la page d'accueil, de création d'un compte et de connexion, avec la logique de navigation entre les pages.

    Pour l'instant, je compte faire uniquement des vues, qui auront par la suite un ViewModel. Chaque page de l'application aura son propre ViewModel. Par ailleurs, l'application est divisée en deux modules "App" et "Data". Le module App contient la partie UI et la partie propre au client là où la partie data contiendra le modèle de l'application, mais également la logique d'accès aux données. J'implémenterai ensuite le repository pattern permettant aux ViewModels de n'avoir qu'un seul point d'accès unique aux données.


Emre

  • Conception(6h): J'ai réalisé un Modèle Logique de Données (MLD) pour la partie de la base de données et un diagramme de classes pour la partie client et API, dans le but de fournir une vue d'ensemble du projet. Cependant, j'ai également élaboré et coder un diagramme de classes pour l'architecture de l'API en utilisant la technologie .NET via un manager, sans attendre l'avis de mes camarades sur ce choix technologique. Cette démarche s'est avérée être une erreur et une perte de temps.

  • Mise en place du Backlog(2h): Mise en place de la création des tâches du projet

  • Développement du client IOS (8h): En parallèle de ma documentation sur la technologie Swift, j'ai commencé à travailler sur la partie Front-end en utilisant SwiftUI, en collaboration avec Lucas. J'ai réussi à réaliser plusieurs pages, notamment la page d'accueil, la page de connexion, et la page d'inscription, ainsi que des composants tels que la barre de navigation (toolbar) et le menu.

Durant ce sprint, j'ai également pu me documenter sur les spécificités du code swift et de ses possibilités via le livre The Swift Programming Language, j'ai également pu apprendre comment réaliser un View Model (via des wrappers) et le binding sur mes vues via la Documentation disponible sur code first, mon objectif est donc de pouvoir réaliser rapidement et proprement la partie frond-end de l'appli avant d'entamer le back-end avec le binding.

Lucas D

  • Création et amélioration des maquettes(5h): J'ai finalisé les maquettes des pages de l'application notamment la page de bienvenue, de connexion et d'inscription. Elles sont disponible sur la page figma sur le wiki. Nous avons également envisagé un mode Light and Dark qui nécessite de refaire les pages avec des couleurs sombres dans le prochain sprint. Nous avons également identifiés des problemes d'UX comme le fait qu'aucun bouton ne renvoie vers la page de liste des bets.

  • Découverte de Swift et intégration des premieres pages(8h): J'ai commencé à me documenter sur Swift ainsi que le framework SwiftUI pour réaliser les vues de l'application. Ce travail, fait en collaboration avec Emre, avance bien et nous allons continuer à travailler ainsi en communiquant. Pour le moment j'ai principalement travaillé sur La page de list des bet , en créant le composant BetCard, mais également pas page de récompose qui est une modalBottomSheet qui affiche le nombre de "Allcoins" gagné par un utilisateur une fois un pari gagné.

  • Mise en place du Backlog(2h): Mise en place de la création des tâches du projet

  • Documentation SwiftUI et UIKit(2h): J'ai appris que swift s'appuie sur 2 frameworks différents pour réaliser la partie front-end. le premier UIkit, le plus ancien et majoritairement utilisé ainsi que SwiftUI plus récent et en constante évolution. J'ai compris que UIKit était d'abord concu pour Objective-C, l'ancien langage officiel d'iOS avant d'étre importé sur Swift. Différentes soucres indiques également que le développement SwiftUI est plus rapide et une prévisualisation des composants est disponible.En revanche, SwiftUI comporte des faiblesses comme le fait qu'il soit disponible qu'a partir d'iOS 13 ( en comparaison, UIkit prend en charge toutes les versions d'iOS). Quant a lui UIKit est maintenant mature et a une base d'utilisateurs plus grande, ce qui en fait un framework plus documenté et stable.

Sachant le temps imparti, les contraintes d'apprendre un nouveau langage et framework, nous pensons que le choix doit se porter sur le framework le plus simple et rapide a prendre en main.

En prennant en compte toutes ces informations, nous avons fait le choix d'utiliser SwiftUI car nous pensons que notre application ne nécessite pas d'affichage extrement complexe et nous permet également de profité de la rapidité de développement des vues grace a ce framework.


Lucas E

  • Mise en place du repository Gestion de projet(4h): Mise en place du Kanban sur CodeFirst avec les étiquettes qui peuvent être attribuées aux tâches. Une liste décrivant les grandes tâches a été faites et va être vérifier par le groupe pour les mettre plus tard sur le Kanban du projet.

  • Recherche sur la technologie a utiliser pour le Web Service(2h): Tableau descriptif va être poster plus tard.

SpringBoot

Avantages Inconvénients
- Performant - Développement en JAVA
- Gestion des dépendances simples - Demande beaucoup de mémoire
- Complet - Débogage pas évident
- Beaucoup de documentation
- Grande communauté
- Déjà utilisé à lIUT

ASP .NET

Avantages Inconvénients
- Performant - Faible communauté
- Complet - Demande beaucoup de mémoire
- Facilite le développement
- Documentation complète
- Déjà utilisé à lIUT
- Développement en C#

KTOR

Avantages Inconvénients
- Développement en Kotlin - Communauté jeune
- Simple de prise en main - Moins complet
- Léger
- Documentation complète

Django

Avantages Inconvénients
- Beaucoup de bibliothèques - Lourd
- Bonne documentation - Prise en main longue
- Moins performant
  • Mise en place du Backlog du sprint 1(2h): Mise en place de la création des tâches du projet

Rayhan