Build and test your Flex ColorMatrixFilters [en] An incredible 3D navigation
Feb 17

… ma femme ! bon ok, le terme “cliente” est un peu exagéré mais pas celui d’”exceptionnelle” ! Green with Envy.

Objectif :

Ma femme gère des locations pour une SCI. Il fallait donc remplacer sa feuille excel en une petite application pour suivre les locations, les clients. Je m’y suis attelé à titre perso.

Exigences :Use Cases

Après un petit interview autour d’un bon repas et une bonne série télévisée, j’ai identifié les Use Cases ci-contre.

L’application et la base de données sous-jacente devaient être installées localement pour une utilisation offline mais il devait être possible de mettre à jour le calendrier des réservations sur le site internet.

Le calendrier est en Flash 7 (développé avant cette application) et utilise des fichiers xml comme source de données que l’application doit donc générer et uploader.

La saisie devait être simple, rapide (exigence classique, voire implicite).

Les données existantes devaient être récupérées à partir du fichier excel, donc l’application devait être fournie avec une base de données déjà bien remplie.

Techno :

En fait, il y a eu 3 versions de cette application :

  1. Flash + projecteur externe pour permettre des accès locaux et des fonctions FTP (cette v1 date de 2 ans et demi)
  2. Flex 2 + Apollo
  3. Flex 3 + AIR

AIR a permis de remplacer le projecteur externe par ses fonctions d’accès au file system et d’utilisation de SQLite comme base de données locale. Il restait la fonction de transfert FTP à traiter…

C’est là que je me suis rendu compte que l’utilisation de fichiers xml comme source de données du calendrier du site n’est pas idéale car elle oblige à transférer les fichiers soit par HTTP soit par FTP. Le transfert par HTTP, du fait de sa méthode browse , ne répond pas au critère de simplicité de ma femme (fenêtre supplémentaire et recherche, sélection de fichiers). Mais après avoir essayé la classe FTP de Maliboo, j’ai dû me résoudre à faire du HTTP car cette classe plantait sur mes fichiers, je n’ai pas trouvé pourquoi (sûrement encore une erreur débile de mon côté mais bon…). Je considère d’ailleurs qu’il y a une grosse régression fonctionnelle entre la v1 et la v3… ma femme me l’a d’ailleurs clairement fait remarquer Evil and Twisted.

Bon, l’avantage, c’est que ça m’a obligé à faire un script php (qui limite la taille des fichiers transférés et ne laisse passer que les fichiers xml). Voici donc un schéma de l’ensemble :

Plutôt classique…

Données :

Le coeur de l’appli est très simple comme l’illustrent les entités ci-dessous.

Démo :

Vous trouverez ici une démo enregistrée avec Wink.

Axe d’amélioration (méthodes / fonctionnalités) :

  • Utilisation insuffisante de classes : une partie du code sql aurait pu être déporté dans des classes Client et Reservation.
  • Le passage de la version v1 écrite sous Flash (il y a plus de 2 ans) à la version v2 écrite sous Flex n’a pas donné lieu à une optimisation du code mais à une simple adaptation (d’où le point précédent d’ailleurs) : je suis tombé dans le banal “ah non, j’ai pas le temps d’optimiser mon code maintenant, je referai plus tard”
  • Maintien de l’utilisation de fichiers xml sur le server web : pour des raisons de temps, j’ai gardé le système initial de fichiers xml et je n’ai pas voulu monter une base MySQL sur le server et utiliser AMFphp par ex (apprentissage + ré-écriture complète du module de calendrier du site que je voulais de plus maintenir en Flash 7). Ceci fait partie de mes prochaines explorations mais pour un autre projet (ah moins que ma femme ne râle très fort à cause du FileReference.browse Confused).
  • Un contrôle de la duplication de clients (il existe déjà un contrôle sur les dates des nouvelles réservations pour éviter les réservations en double ou en chevauchement).
  • Export PDF du planning.
  • Je n’ai pas prévu de fonction de création de base de données vierge (normal car il fallait fournir une base de données remplie des données historiques). C’est quelque chose que je prévois pour mon prochain projet.

Conclusion :

C’est ma première application “sérieuse”. La 1ère version a plus de 2 ans maintenant et elle a été pour moi le moyen de d’apprendre Flex (à raison d’1h par ci par là en semaine ou le week-end). Le fait que ce soit pour moi une application à but “éducatif” et personnel a fait que parfois certaines bonnes pratiques ont été mises de côté, que le code n’est pas des plus propres. Ce blog est d’ailleurs un moyen pour moi de me forcer à avoir une discipline qui me permette de partager des choses compréhensibles et réutilisables par d’autres.

En bonne cliente qu’elle est, ma femme a testée les différentes versions de mon application et m’a fait des retours : ergonomie, bugs, améliorations. Mais comme tout client, ma femme a des besoins qui changent (euphémisme ?), qui évoluent et donc elle me fait régulièrement quelques demandes d’évolution. En tant que “chef de projet”, je lui explique qu’il y a un certain manque de disponibilité des ressources dans l’immédiat (surtout quand les demandes tombent le week-end ou après une dure journée de boulot (le vrai)) mais sa requête est logguée et sera implémentée sous un délai… indéterminé, c’est quand même l’avantage de vivre avec la cliente Razzberry.

Bref, depuis cette appli, ma vie à la maison tourne parfois au vrai projet de développement logiciel… je ne sais pas si au final j’ai bien fait de me lancer là-dedans Big Grin

Related posts

Written by Arnaud
Creative Commons License
Tags: ,

Share/Save/Bookmark

Help me improve my blog by rating this post or sending a comment.

not goodquite goodgoodvery goodexcellent (No Ratings Yet)
Loading ... Loading ...


Comments