Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Échange de cartes de visite sur table Surface

Échange de cartes de visite sur table Surface

A business cards exchange application on Surface table, with smartphone and web interaction.
Full presentation video available at http://www.youtube.com/playlist?list=PL84127DF52CAD621B

Matti Schneider

February 04, 2011
Tweet

More Decks by Matti Schneider

Other Decks in Programming

Transcript

  1. ÉCHANGE DE CARTES DE VISITE SUR TABLE SURFACE Pierre Corsini

    Nicolas Fernandez Matti Schneider-Ghibaudo Encadrante : Macha Christmann 1
  2. CONTEXTE • conférence IHM 2011 • événement organisé par Polytech’Nice

    en octobre • public professionnel, attiré notamment par le networking 2
  3. OBJECTIFS • offrir aux participants à la conférence un moyen

    de récupérer des cartes de visite • partager ses informations de contact 3
  4. PROBLÈMES RÉSOLUS • matérialité des cartes de visite • risque

    de ne plus en avoir • impossible de rechercher dans les données • risque d’égarement du support • pas de possibilité de copie de carte • gros stock de cartes après coup 4 ∞ ?
  5. PROBLÈMES RÉSOLUS • matérialité des cartes de visite • risque

    de ne plus en avoir • impossible de rechercher dans les données • risque d’égarement du support • pas de possibilité de copie de carte • gros stock de cartes après coup • procédé d’échange peu attractif • deux actions discrètes • n’aide pas à créer du lien 4 ∞ ?
  6. TABLE SURFACE • tactile : réagit aux contacts manuels •

    tangible : réagit aux objets physiques 5
  7. TABLE SURFACE • tactile : réagit aux contacts manuels •

    tangible : réagit aux objets physiques • permet une manipulation directe des données virtuelles 5
  8. TABLE SURFACE • tactile : réagit aux contacts manuels •

    tangible : réagit aux objets physiques • permet une manipulation directe des données virtuelles • reconnaît des objets précis grâce aux “tags” 5
  9. I.! ! ANALYSE PRÉLIMINAIRE II.!! HANDS(-)ON III.! ! INTERFACE ET

    INTERFACES IV.! ORGANISATION 6 ÉCHANGE DE CARTES DE VISITE SUR TABLE SURFACE
  10. POINTS CRUCIAUX • interface tactile et tangible • usabilité •

    attractivité • fluidité • collaborativité • pertinence des données affichées • facilité de récupération des coordonnées 8
  11. MODÈLE DE SOLUTION ajoute complète affiche Table Surface Utilisateur Équipe

    dʼadministration 9 Carte de visite envoie choisit
  12. MODULES ajoute complète affiche Table Surface 11 Utilisateur Carte de

    visite envoie choisit Équipe dʼadministration
  13. MODULES ajoute complète affiche Table Surface 11 Utilisateur Carte de

    visite envoie choisit Équipe dʼadministration 1.Administration
  14. MODULES ajoute complète affiche Table Surface 11 Utilisateur Carte de

    visite envoie choisit Équipe dʼadministration 1.Administration 2.Interaction entre participants
  15. MODULES ajoute complète affiche Table Surface 11 Utilisateur Carte de

    visite envoie choisit Équipe dʼadministration 1.Administration 2.Interaction entre participants 3.Interaction participant/système
  16. MODULES ajoute complète affiche Table Surface 11 Utilisateur Carte de

    visite envoie choisit Équipe dʼadministration
  17. ADMINISTRATION 12 • fonctionnalités attendues • ajout d’utilisateurs • création

    des badges : association à un tag • contrainte : équipe de gestion inconnue ?
  18. ADMINISTRATION 12 • fonctionnalités attendues • ajout d’utilisateurs • création

    des badges : association à un tag • contrainte : équipe de gestion inconnue • facilité de déploiement de l’application ?
  19. ADMINISTRATION 12 • fonctionnalités attendues • ajout d’utilisateurs • création

    des badges : association à un tag • contrainte : équipe de gestion inconnue • facilité de déploiement de l’application • exhaustivité de la documentation ?
  20. ADMINISTRATION 12 • fonctionnalités attendues • ajout d’utilisateurs • création

    des badges : association à un tag • contrainte : équipe de gestion inconnue • facilité de déploiement de l’application • exhaustivité de la documentation • accessibilité des services d’administration ?
  21. ADMINISTRATION : SOLUTION • déploiement sur un serveur web :

    PHP • gestion d’une base de données XML 13
  22. ADMINISTRATION : SOLUTION • déploiement sur un serveur web :

    PHP • gestion d’une base de données XML • pas de configuration nécessaire 13
  23. ADMINISTRATION : SOLUTION • déploiement sur un serveur web :

    PHP • gestion d’une base de données XML • pas de configuration nécessaire • bibliothèque standard PHP (simpleXML) 13
  24. ADMINISTRATION : SOLUTION • déploiement sur un serveur web :

    PHP • gestion d’une base de données XML • pas de configuration nécessaire • bibliothèque standard PHP (simpleXML) • présentation : HTML+CSS 13 GET/ POST URL 200/ 404/ 500… GET/ POST URL 200/ 404/ 500…
  25. ADMINISTRATION : SOLUTION • déploiement sur un serveur web :

    PHP • gestion d’une base de données XML • pas de configuration nécessaire • bibliothèque standard PHP (simpleXML) • présentation : HTML+CSS • interface de programmation disponible pour automatiser la gestion 13
  26. ADMINISTRATION : FRAGMENTS • RESTful web services 14 GET/ POST

    URL 200/ 404/ 500… GET/ POST URL 200/ 404/ 500…
  27. ADMINISTRATION : FRAGMENTS • RESTful web services • utilisation des

    URLs et des méthodes HTTP seules pour manipuler les données 14 GET/ POST URL 200/ 404/ 500… GET/ POST URL 200/ 404/ 500…
  28. ADMINISTRATION : FRAGMENTS • RESTful web services • utilisation des

    URLs et des méthodes HTTP seules pour manipuler les données • formalisation et documentation complètes 14
  29. ADMINISTRATION : FRAGMENTS • RESTful web services • utilisation des

    URLs et des méthodes HTTP seules pour manipuler les données • formalisation et documentation complètes • publication d’un sous-module 14
  30. ADMINISTRATION : FRAGMENTS • RESTful web services • utilisation des

    URLs et des méthodes HTTP seules pour manipuler les données • formalisation et documentation complètes • publication d’un sous-module • classe JavaScript d’interfaçage asynchrone entre formulaire HTML et API REST “pure” 14
  31. ADMINISTRATION : FRAGMENTS • RESTful web services • utilisation des

    URLs et des méthodes HTTP seules pour manipuler les données • formalisation et documentation complètes • publication d’un sous-module • classe JavaScript d’interfaçage asynchrone entre formulaire HTML et API REST “pure” • github.com/MattiSG/WebServiceForm 14
  32. ADMINISTRATION : FRAGMENTS • RESTful web services • utilisation des

    URLs et des méthodes HTTP seules pour manipuler les données • formalisation et documentation complètes • publication d’un sous-module • classe JavaScript d’interfaçage asynchrone entre formulaire HTML et API REST “pure” • github.com/MattiSG/WebServiceForm • facilité de déploiement 14 1. 2. [host] baseURL = http:// example.com/surface/ 3. There is no step 3! config.ini 1. 2. [host] baseURL = http:// example.com/surface/ 3. There is no step 3! config.ini
  33. ADMINISTRATION : FRAGMENTS • RESTful web services • utilisation des

    URLs et des méthodes HTTP seules pour manipuler les données • formalisation et documentation complètes • publication d’un sous-module • classe JavaScript d’interfaçage asynchrone entre formulaire HTML et API REST “pure” • github.com/MattiSG/WebServiceForm • facilité de déploiement • démo sur un “vrai” serveur (OVH) 14 1. 2. [host] baseURL = http:// example.com/surface/ 3. There is no step 3! config.ini 1. 2. [host] baseURL = http:// example.com/surface/ 3. There is no step 3! config.ini
  34. 15 COMPOSANTS Base de données Serveur web manipule Interface web

    Carte de visite communique webservice recense
  35. 15 COMPOSANTS Base de données Tag Surface Serveur web recense

    manipule Interface web Carte de visite communique webservice recense
  36. MODULES ajoute complète affiche Table Surface 16 Utilisateur Carte de

    visite envoie choisit Équipe dʼadministration
  37. MODULES ajoute complète affiche Table Surface 16 Utilisateur Carte de

    visite envoie choisit Équipe dʼadministration
  38. SURFACE 17 • fonctionnalités attendues • récupération des cartes •

    échange de cartes • envoi des mails • contraintes
  39. SURFACE 17 • fonctionnalités attendues • récupération des cartes •

    échange de cartes • envoi des mails • contraintes • identifier les utilisateurs
  40. SURFACE 17 • fonctionnalités attendues • récupération des cartes •

    échange de cartes • envoi des mails • contraintes • identifier les utilisateurs • permettre la collaboration
  41. SURFACE : SOLUTION • interface et logique globale : C#,

    XAML • récupération des données du serveur • RESTful API 18 GET/ POST URL 200/ 404/ 500… GET/ POST URL 200/ 404/ 500…
  42. SURFACE : SOLUTION • interface et logique globale : C#,

    XAML • récupération des données du serveur • RESTful API • envoi d’emails : délégation au serveur 18 GET/ POST URL 200/ 404/ 500… GET/ POST URL 200/ 404/ 500…
  43. SURFACE : SOLUTION • interface et logique globale : C#,

    XAML • récupération des données du serveur • RESTful API • envoi d’emails : délégation au serveur • découplage 18 GET/ POST URL 200/ 404/ 500… GET/ POST URL 200/ 404/ 500…
  44. SURFACE : SOLUTION • interface et logique globale : C#,

    XAML • récupération des données du serveur • RESTful API • envoi d’emails : délégation au serveur • découplage • déployabilité : serveur web généralement capable d’envoyer des mails 18 GET/ POST URL 200/ 404/ 500… GET/ POST URL 200/ 404/ 500…
  45. SURFACE : SOLUTION • interface et logique globale : C#,

    XAML • récupération des données du serveur • RESTful API • envoi d’emails : délégation au serveur • découplage • déployabilité : serveur web généralement capable d’envoyer des mails • identification des utilisateurs : badges ! 18
  46. SURFACE : FRAGMENTS • autoformation • sites communautaires • cours

    officiels : DotNetFrance, Polytech’… • respect des User Experience Guidelines 19
  47. SURFACE : FRAGMENTS • autoformation • sites communautaires • cours

    officiels : DotNetFrance, Polytech’… • respect des User Experience Guidelines • base de données téléchargée 19
  48. SURFACE : FRAGMENTS • autoformation • sites communautaires • cours

    officiels : DotNetFrance, Polytech’… • respect des User Experience Guidelines • base de données téléchargée • mise en cache des avatars 19
  49. SURFACE : FRAGMENTS • autoformation • sites communautaires • cours

    officiels : DotNetFrance, Polytech’… • respect des User Experience Guidelines • base de données téléchargée • mise en cache des avatars • diminution des délais 19
  50. COMPOSANTS Base de données Tag Surface Serveur web recense manipule

    20 Interface web Carte de visite communique webservice recense
  51. COMPOSANTS Base de données Tag Surface Table Surface Serveur web

    recense manipule 20 Interface web Carte de visite communique webservice recense
  52. COMPOSANTS Base de données Tag Surface Table Surface Serveur web

    recense manipule communique webservice 20 Interface web Carte de visite communique webservice recense
  53. COMPOSANTS Base de données Tag Surface Table Surface Serveur web

    recense manipule communique webservice 20 reconnaît Interface web Carte de visite communique webservice recense
  54. MODULES ajoute complète affiche Table Surface 21 Utilisateur Carte de

    visite envoie choisit Équipe dʼadministration
  55. MODULES ajoute complète affiche Table Surface 21 Utilisateur Carte de

    visite envoie choisit Équipe dʼadministration
  56. INTERACTION PARTICIPANT 22 • fonctionnalités attendues • modification des données

    personnelles • réception des cartes de visite sélectionnées ? ?
  57. INTERACTION PARTICIPANT 22 • fonctionnalités attendues • modification des données

    personnelles • réception des cartes de visite sélectionnées • contraintes • terminal inconnu : différents formats possibles
  58. DONNÉES : SOLUTION • modification des données : interface web

    • universellement accessible • réception des cartes : email et exhaustivité des formats 23
  59. DONNÉES : SOLUTION • modification des données : interface web

    • universellement accessible • réception des cartes : email et exhaustivité des formats • cartes en pièce jointe au format le plus commun (VCF) 23
  60. DONNÉES : SOLUTION • modification des données : interface web

    • universellement accessible • réception des cartes : email et exhaustivité des formats • cartes en pièce jointe au format le plus commun (VCF) • possibilité de télécharger des versions alternatives (LDIF, CSV) 23
  61. DONNÉES : FRAGMENTS • formats de carte non standardisés !

    24 BEGIN:VCARD VERSION:3.0 N:{name}; {firstName} FN: {firstName} {name} ORG:{company} TITLE: {jobTitle} ?
  62. DONNÉES : FRAGMENTS • formats de carte non standardisés !

    • recherche de documentation 24 BEGIN:VCARD VERSION:3.0 N:{name}; {firstName} FN: {firstName} {name} ORG:{company} TITLE: {jobTitle} ?
  63. DONNÉES : FRAGMENTS • formats de carte non standardisés !

    • recherche de documentation • trial and error sur différentes plateformes 24 BEGIN:VCARD VERSION:3.0 N:{name}; {firstName} FN: {firstName} {name} ORG:{company} TITLE: {jobTitle} ?
  64. DONNÉES : FRAGMENTS • formats de carte non standardisés !

    • recherche de documentation • trial and error sur différentes plateformes 24 BEGIN:VCARD VERSION:3.0 N:{name}; {firstName} FN: {firstName} {name} ORG:{company} TITLE: {jobTitle} ?
  65. DONNÉES : FRAGMENTS • formats de carte non standardisés !

    • recherche de documentation • trial and error sur différentes plateformes 24 BEGIN:VCARD VERSION:3.0 N:{name}; {firstName} FN: {firstName} {name} ORG:{company} TITLE: {jobTitle} ?
  66. DONNÉES : FRAGMENTS • formats de carte non standardisés !

    • recherche de documentation • trial and error sur différentes plateformes 24 BEGIN:VCARD VERSION:3.0 N:{name}; {firstName} FN: {firstName} {name} ORG:{company} TITLE: {jobTitle} ?
  67. DONNÉES : FRAGMENTS • formats de carte non standardisés !

    • recherche de documentation • trial and error sur différentes plateformes 24 BEGIN:VCARD VERSION:3.0 N:{name}; {firstName} FN: {firstName} {name} ORG:{company} TITLE: {jobTitle} ?
  68. DONNÉES : FRAGMENTS • formats de carte non standardisés !

    • recherche de documentation • trial and error sur différentes plateformes • formulaire HTML5 : nouveaux input 24
  69. DONNÉES : FRAGMENTS • formats de carte non standardisés !

    • recherche de documentation • trial and error sur différentes plateformes • formulaire HTML5 : nouveaux input • s’améliorera “tout seul” avec les navigateurs 24
  70. DONNÉES : FRAGMENTS • formats de carte non standardisés !

    • recherche de documentation • trial and error sur différentes plateformes • formulaire HTML5 : nouveaux input • s’améliorera “tout seul” avec les navigateurs • emails et formulaire en templates 24
  71. DONNÉES : FRAGMENTS • formats de carte non standardisés !

    • recherche de documentation • trial and error sur différentes plateformes • formulaire HTML5 : nouveaux input • s’améliorera “tout seul” avec les navigateurs • emails et formulaire en templates • éditables par la prochaine équipe sans toucher au code fonctionnel 24
  72. COMPOSANTS Interface web Base de données Tag Surface Table Surface

    Carte de visite Serveur web recense manipule communique webservice communique webservice reconnaît recense 25
  73. COMPOSANTS Interface web Base de données Tag Surface Table Surface

    Carte de visite Serveur web recense manipule communique webservice communique webservice génère reconnaît recense 25
  74. COMPOSANTS Interface web Base de données Tag Surface Table Surface

    Carte de visite Mail Serveur web envoie recense manipule communique webservice communique webservice génère contient reconnaît recense 25
  75. COMPOSANTS Interface web Base de données Tag Surface Table Surface

    Carte de visite Mail Serveur web envoie recense manipule communique webservice communique webservice génère contient reconnaît recense 26
  76. COMPOSANTS Interface web Base de données Tag Surface Table Surface

    Carte de visite Mail Serveur web envoie recense manipule communique webservice communique webservice génère contient reconnaît recense C# XAML 26
  77. COMPOSANTS Interface web Base de données Tag Surface Table Surface

    Carte de visite Mail Serveur web envoie recense manipule communique webservice communique webservice génère contient reconnaît recense PHP C# XAML 26
  78. COMPOSANTS Interface web Base de données Tag Surface Table Surface

    Carte de visite Mail Serveur web envoie recense manipule communique webservice communique webservice génère contient reconnaît recense XML PHP C# XAML 26
  79. COMPOSANTS Interface web Base de données Tag Surface Table Surface

    Carte de visite Mail Serveur web envoie recense manipule communique webservice communique webservice génère contient reconnaît recense XML HTML CSS PHP C# XAML 26
  80. COMPOSANTS Interface web Base de données Tag Surface Table Surface

    Carte de visite Mail Serveur web envoie recense manipule communique webservice communique webservice génère contient reconnaît recense XML HTML CSS PHP C# XAML MIME 26
  81. COMPOSANTS Interface web Base de données Tag Surface Table Surface

    Carte de visite Mail Serveur web envoie recense manipule communique webservice communique webservice génère contient reconnaît recense XML VCF LDIF CSV HTML CSS PHP C# XAML MIME 26
  82. COMPOSANTS Interface web Base de données Tag Surface Table Surface

    Carte de visite Mail Serveur web envoie recense manipule communique webservice communique webservice génère contient reconnaît recense XML VCF LDIF CSV HTML CSS PHP C# XAML RESTful Admin API MIME RESTful Surface API 26
  83. MÉTHODOLOGIE DE TRAVAIL 28 • aucune familiarité avec le code

    Surface • impossibilité d’estimer la durée des tâches • impossibilité de prévoir les points critiques
  84. MÉTHODOLOGIE DE TRAVAIL 28 • aucune familiarité avec le code

    Surface • impossibilité d’estimer la durée des tâches • impossibilité de prévoir les points critiques • choix de méthodologies type agile
  85. MÉTHODOLOGIE DE TRAVAIL 28 • aucune familiarité avec le code

    Surface • impossibilité d’estimer la durée des tâches • impossibilité de prévoir les points critiques • choix de méthodologies type agile • mise en place d’outils de suivi interactifs
  86. MÉTHODOLOGIE DE TRAVAIL 28 • aucune familiarité avec le code

    Surface • impossibilité d’estimer la durée des tâches • impossibilité de prévoir les points critiques • choix de méthodologies type agile • mise en place d’outils de suivi interactifs • utilisation des tableaux blancs • travail dans les mêmes espaces • code itératif • déploiements réguliers
  87. MÉTHODES AGILE EMPLOYÉES • Scrum • très bon fonctionnement de

    l’Équipe • rôle du Directeur de Produit rempli par l’encadrante • pas de possibilité d’avoir un Facilitateur (ScrumMaster) • adaptation à des cycles très courts : sprints d’une journée • éléments d’eXtreme Programming • philosophie (propriété collective du code…) • pair programming lors de problèmes particuliers rencontrés • développement continu • pas de tests unitaires (trop d’interface pour du TDD) 29
  88. BILAN • résultat déployable • démo sur une version en

    production • documentation client complète 30
  89. BILAN • résultat déployable • démo sur une version en

    production • documentation client complète • documentation technique des API 30
  90. BILAN • résultat déployable • démo sur une version en

    production • documentation client complète • documentation technique des API • manuels d’installation et d’utilisation 30
  91. BILAN • résultat déployable • démo sur une version en

    production • documentation client complète • documentation technique des API • manuels d’installation et d’utilisation • améliorations possibles 30
  92. BILAN • résultat déployable • démo sur une version en

    production • documentation client complète • documentation technique des API • manuels d’installation et d’utilisation • améliorations possibles • interface graphique de la table et du formulaire d’édition 30
  93. BILAN • résultat déployable • démo sur une version en

    production • documentation client complète • documentation technique des API • manuels d’installation et d’utilisation • améliorations possibles • interface graphique de la table et du formulaire d’édition • meilleure sécurité des transmissions (authentification de la table) 30
  94. BILAN • résultat déployable • démo sur une version en

    production • documentation client complète • documentation technique des API • manuels d’installation et d’utilisation • améliorations possibles • interface graphique de la table et du formulaire d’édition • meilleure sécurité des transmissions (authentification de la table) • sonorisation du dispositif 30
  95. • Remerciements • Macha Christmann • Christian Brel • Christian

    Delettre • Anne-Marie Dery-Pinna 31 • Images • Barrymieny (base de données) • Everaldo Coelho (globe web) • Ipanpun (participant) • Svengraph (verrou) • Ambrosia Software (micro) • Microsoft (Surface, VisualStudio, MSDN) • Google (Gmail) • W3C (HTML 5) • Apple (autres) MERCI DE VOTRE ATTENTION ! AVEZ-VOUS DES QUESTIONS ? ÉCHANGE DE CARTES DE VISITE SUR TABLE SURFACE