Appli de type Uber : transactions et géolocalisation en réseau

Présentation

Durée estimée: 15 minutes

Présentation du projet

L’objectif de ce cycle est de réaliser une application mobile de type UBER ou Pokemon qui utilise la géolocalisation, les cartes et le partage d’informations sur le web.
L’objectif plus général est d’aborder des méthodes de développement qui correspondent à la réalisation de projets complexes.
Ici, nous avons choisi une application de type Uber.

Sélectionner un chauffeur pour aller place du Trocadéro

Examiner la durée et le prix de la course avant de confirmer

Côté chauffeur, vérifier la commande et valider

Le principe général de l’application est d’afficher en continu sur une carte, la position et le statut des participants et de gérer leurs interactions selon un modèle client/fournisseur. Ce modèle général peut se décliner sous forme de jeux ou d’applications locales, comme le géomarketing, la livraison de pizzas ou le suivi d’une flotte de véhicules.
Ce canevas peut servir de base aux jeux ou applications géolocalisées en réseau, que vous imaginerez.

Pré-requis :

Les notions utilisées dans ce projet sont assez nombreuses : géolocalisation (GPS, Wifi, adresse,…), listes et listes de listes, bases de données locales puis en réseau, URI/URL, serveurs d’images et de données XML, filtrage (parsing), processus asynchrones, etc.
Chacune sera présentée avec des indications pour les acquérir ou les réviser. Il est toutefois préférable que vous ayez déjà réalisé - avec App Inventor - des programmes comprenant plusieurs évènements et composants avec au moins une centaine de blocs.
L'étape 1, assez facile, permet de se familiariser avec les URLs et l'utilisation des serveurs.
La deuxième porte sur l'organisation des données avec les listes. Elle est assez difficile, mais une fois franchie, elle vous permettra d'aller loin.
Ensuite, jusqu'à l'étape 7, la difficulté est liée à l'augmentation de la taille du programme. Elle implique une méthodologie de développement (analyse fonctionnelle, pseudo-code, mise en place de moyens de test et de debug, respect de conventions de nommage, etc.) Cet aspect méthodologique est peut-être celui qui sera le plus nouveau pour vous. Il vous permettra d’envisager des projets plus puissants et de travailler à plusieurs, …
Les étapes 7 et suivantes abordent le partage de données en réseau et leurs interactions (transactions commerciales de type Uber). En complément des volets précédents, vous devrez analyser et modéliser les flux d'information.

Ce que l’on va faire :

Le projet est réalisé par étapes :
  • la première aborde les notions de géolocalisation, de serveur Web et de capteurs,
  • la seconde introduit les listes. La troisième, les interactions avec la carte,
  • les étapes 4 à 9 abordent l’interface utilisateur et la gestion des données en local puis sur le Web. Ces étapes aboutissent à un canevas applicatif général adaptable à des appli-cations géo-localisés où les acteurs interagissent en réseau,
  • les étapes 10 à 14 utilisent ce canevas pour une application de type Uber avec des transactions entre clients et conducteurs sur des courses avec une destination, une adresse de rendez-vous, un horaire, un itinéraire et un prix,
  • l’étape 15 propose une évolution cartographique qui permet d’interagir à la volée avec les objets, de visualiser les mouvements en temps réel et de réduire les flux sur le réseau. Cette évolution correspond à des jeux très interactifs de type Pokemon ou équivalent.

Ressources en entrée :

Le code correspondant à chaque étape est fourni dans un dépot ou repository. Chaque version démarrant à la fin de la précédente. Par ailleurs, des exercices sont parfois ajoutés pour aider à la maîtrise de certaines notions comme les listes.
versionlienDescription
V1geolocAppV1version 1 de l'application consistant à afficher une carte avec deux marqueurs correspondant à la position de l'utilisateur et à celle d'une adresse dictée au téléphone
geolocListExexercices de navigation dans les données avec une liste de noms et une liste qui comprend les attributs de chaque nom
V2geolocAppV2version 2 qui permet de gérer et d'afficher une liste d'utilisateurs avec des symboles dont la couleur dépend du type et du statut
V3version 3 qui permet d'interagir avec des fonctions de zoomn, dezoom, panoramique et de recentrage automatique

Notions abordées :

  • Les listes,
  • Programmation évènementielle,
  • Processus asynchrones,
  • Analyse et décomposition fonctionnelle,
  • La géolocalisation et ses capteurs,
  • Variables, (pseudo)constantes et règles de nommage,
  • Modèles de données.
Le tableau suivant donne une indication des étapes auxquelles ils sont abordés :
VersionNotions abordées
1Se localiser sur une carteAdresses internet et URL
Serveurs et Api (Interface Applicative)
Capteurs : reconnaissance vocale,
2Localiser les utilisateursLes listes et listes de listes
Procédures et utilitaires
3Interagir avec la carteEvènements, Architecture logicielle modularité
4Interface et outils de debug
5Enregistrer son profilDonnées permanentes, base de données locale
6Enregistrer dans BD locale
7Partager avec une BD WebBases de données partagées sur le Web,
Processus asynchrone
8Distinguer les groupesGestion, administration des données
9Gérer les identifications
10Calculer les distancesFonctions et outils géographiques
1&Effectuer des transactionsBusiness model,
Transactions via une base dans le cloud
12Charger avec un flashcodeDiffuser une application vers d’autres utilisateurs
13Calculer les itinérairesUtiliser un serveur de données au format XML
14Rechercher une adresseLe géocodage inversé
15Gérer des interactions en temps quasi réelUtiliser les lutins
Gérer la conversion entre coordonnées géographiques et écran.

Abréviations et acronymes

Vous pourrez effectuer l’ensemble des travaux avec la version française d’App Inventor. Nous utiliserons toutefois quelques termes latins (comme data) ou anglais, en particulier pour les fonctions de base ou pour naviguer plus facilement dans la documentation qui est souvent en anglais. Celle d’App Inventor et aussi celle des serveurs utilisés.
MAJMise à jour
DataDonnées en latin et en anglais (terme courant utilisé à la place de données)
UpdateEquivalent anglais de mise à jour (ou MAJ)
DeleteDétruire
TagUn tag est une étiquette. Ce terme permet d’identifier un enregistrement ou un jeu de données. Il nous servira pour identifier chaque enregistrement dans la base de données. Les mêmes tags seront utilisés dans une liste, pour identifier les points ou personnes affichés sur la carte.
Dans cette application chaque tag est associé à des données dont la géolocalisation la date de mise à jour, le type, le statut et un ensemble d’autres informations qui nous permettront de gérer les transactions entre les personnes représentées par es tags.
URLUniform Resource Locator : adresse qui permet d’accéder à une ressource. Elle comprend le protocole, l’hôte, le chemin de la ressource et les paramètres de la re-quête qui indiquent au serveur le produit ou service demandé, par exemple l’emprise ou l’échelle d’une carte.
URIUniform Resource Identifier (équivalent de URL)