coding : kit de survie pour les futurs entrepreneurs (session 1)
DESCRIPTION
Série de 3 sessions: "Kit de survie pour les futurs entrepreneurs" Une série de trois cours pour comprendre les différentes problématiques, dédiée notamment aux futurs entrepreneurs ou aux personnes ayant un projet de développement d'application. On verra de quoi est composée une application, les différentes technologies, les aspects d’ergonomie, comment sous-traiter le développement, des retours d’expérience, etc. Session 1 Architectures des applications et technologies de développement Par Stéphanie Hertrich Evangéliste Développement (Microsoft) et Michel Rousseau Evangéliste Expérience Utilisateur (Microsoft) Cette session abordera les notions de base et les technologies mises en œuvre pour le développement d'applications au sens large. Quelle est la différence entre une application, un site web, un service web, … ? Quelles en sont les composantes et comment interagissent-elles ?Développer pour un smartphone, une tablette, un poste de travail : quelles différences ? Quelles sont les grandes familles de technologies et de langages de développement, quelles sont leurs caractéristiques ? De l'importance de l'ergonomie des applications. Comprendre les tendances et intégrer le branding et l’identité de marque. Valider l'expérience utilisateur et tester sa démarche. Rendre ça beau, intelligible et en faire une proposition de valeur. Travailler le résultat avec un développeur. Les slides de Michel Rousseau pour la partie design sont ici : http://www.slideshare.net/RousseauMichel/prsentation-girls-in-techTRANSCRIPT
Stéphanie Hertrich @stepheMicrosoft – MicrosoftMichel Rousseau @rousseau_michel – Microsoft
Architectures des applications et technologies de développement
« Coding » Kit de survie pour les futurs entrepreneurs
A faireA ne pas
faire
Présentation du kit de survie• Vous avez un projet en lien avec les technologies de
développement ?• Vous ne savez pas en quoi consiste un développement
d’app/de site et encore moins quels éléments sont mis en œuvre ?
• Quand on vous parle technique, vous ne comprenez qu’un mot sur 2 ?
Kit de survie = booster en 3 parties- Architecture des applications et
technologies de développement
- Concevoir une application, les étapes et la mise en œuvre
- Retours d’expérience
Quoi ?Pourquoi ?
Qui ?Où ?
Quand ?
Comment ?
Objectifs
Comprendre les concepts de base et acquérir du vocabulaire
Faciliter la communication avec vos équipes techniques en parlant le même langage
Mieux appréhender le contexte, les enjeux, les contraintes et les problématiques
Vous aider à vous poser les bonnes questions
Vous donner des outils pourIntégrer la dimension d’ergonomie et de design dans le projet technique
Agenda
• Les nouveaux usages numériques• Application, site web, client, serveur,
cloud : kezako ?• Le développement multi-plateforme• Les langages de développement
Les nouveaux usages numériques
Les nouveaux usages
Multiplication des devices par utilisateurSmartphoneTabletteDesktop / poste de travailAll In One
Une frontière moins franche entre vie personnelle et vie professionnelle (BYOD)
Une dimension sociale en croissance
Qu’est-ce qui change pour les apps ?Le form factor / taille et forme
Le contexte d’utilisation• Au bureau, sur desktop• En metro (sans connexion
internet)• Dans les magasins• Sur son canapé devant la TV
L’OS (système d’exploitation)• Accéder à son app préférée
depuis n’importe lequel des devices que l’on possède
Adapter l’UI et l’ergonomie pour chaque format• Taille des boutons• Moins d’information à l’écran• Support du touch
Cas d’utilisation différents
Prévoir un mode Off-line
Autant d’apps à développer que d’OS ?
Autant de technologies de développement à connaitre ?
Pour l’utilisateur Pour le développeur
KEZAKO
Devinettes…
Application
Site Web
OS (Operating System)
Framework
PlateformeAPI (Application Programming Interface)
Données
Serveur
Service Web
Cloud
Client
Device
KESAKO ? ApplicationApplication/site WebOS (Operating System)
OS
Framework
FrameworkPlateforme
Pla
tefo
rme
API / Interface
API (Application Programming Interface)
Données
Data
Data
LAN/WAN
Serveur
OS
Framework
Interface
Windows ServerUnix, …
Requête http
Service Web
Service WebCloud
OS
Framework
Interface
Windows ServerUnix, …
Service Web Data
Clie
nt
Serv
eur Device
Les différents types de cloud (1/2)
OS
Framework
Interface
Windows ServerUnix, …
Service Web
OS
Framework
Interface
OSCloud
Service Web
IaaSInfrastructure
OS
Framework
Interface
OS Cloud
Service Web
SaaSSoftware
PaaSPlateforme
Ex: Windows Azure
Ex: Gmail, Office Web Apps
Machine virtuelle
Les différents types de cloud (2/2)
Le développement multi-plateforme
Développement multi-plateforme
Une application déclinée sur les différents modèles de smartphone et tablettes, … du marché
Quel type de développement pour mon application multi-plateforme ?
Alternative- Dévt cross-platform : outil de génération
d’applications natives à partir d’un seul code (Xamarin pour C#, PhoneGap pour HTML5, …)
Application web/hybride- S’exécute dans un navigateur
web ou un contrôle web ds une app native (app mixte)
- Techno possible :- Html/javascript/CSS
Application native- Développé dans le langage natif de la
plateforme : apparait comme une application dans le store
- Techno possible :- Spécifique à l’OS :
- Java / Android- Objective-C / iOs- C# / Windows Phone et Windows
8
Comparatif Dev web/natif/cross-plateformeTechnologie
Html5/CSS/Javascript Natif Outil de Génération d‘appCross-Plateforme
Avantages - 1 seule code et langage pour tous les OS/devices
- Accès à toutes les possibilités techniques offertes par la plate-forme
- Suit la philosophie du device (ergonomie)
- Performances- Les applications les +
reconnues pour leur qualité sont (en règle générale) natives
- 1 seul langage : celui que vous aimez/connaissez
- Rapidité de dévleloppement
Inconvénients
- 1 seul code pour tous les devices ( il faudra néanmoins adapter les cas d‘utilisation par cible)
- Tourne dans un navigateur (ou contrôle web) : support de tous les navigateurs et versions de nav.
- Manque d‘accès à tous les sensors et matériel spécifique de la plateforme
- Performances- Ont plus mauvaise réputation
(plus dur de faire une app de qualité)
- Décliner autant d‘application que de type de device/OS
- Nécessite des compétences différentes pour chaque app (sous-traitance ?)
- Donne accès à la plupart des possibilités techniques offertes par la plate-forme
- Vous engage avec un outil tiers (confiance)
- Manque de recul
Quelques premières questions à se poserQuel marché vais-je viser ? Dois-je cibler toutes les plateformes ?
Mon application nécessite-t-elle l’accès à des fonctionnalités spécifiques du device ? (sensors, …)
Lister les cas d’utilisation selon les types de device : sont-ils proches ?
Quel est mon budget ? Le délai ?Comment je souhaite monétiser mon app ?
Quelles sont les compétences de mes équipes (si équipe il y a !)?
Quelle est la durée de vie de mon app ?Est-ce une application évènementielle ?
Souhaitez-vous sous-traiter ou garder la maitrise du développement en interne ?
Y aura-t-il d’autres applications à développer par la suite ?
Les langages de développement
Différents types de langagesA chaque contexte ses langages• Serveur• Client • Client Natif• Client Web• Autres (BDD, …)
Attention…• au vocabulaire pour les puristes : certains que l’on appelle ici
(et ailleurs) « langages » par facilité sont en fait (ou aussi) des frameworks.
• on s’attache ici aux langages les plus populaires• Vous trouverez autant d’avis sur les langages que de
personnes qui les utilisent : « opinions are my own »
« Langages » côté serveur
• PHP : le « basic » du web• JavaScript/Node.js : JS côté serveur (!=
Java !!)• C#, VB.net, …/ASP.Net : le dev Web par
MS• Ruby (On Rails)• Python• …
Langages clients web (1)
Langages clients web (2)
http://www.wikipedia.fr
Web server finds file /wiki/Accueil_principal.ht
ml
Processing server-side code
Server response<html>…</html>
Get request
Browser displays page
Voyons d’abord le principe de base :Client Serveur
Exemple Wikipedia (3)
Langages clients web (4)Exemple :Une page web avec 1 bouton
JavaScript : définit l’action à effectuer lorsque l’on clique sur le bouton
CSS : définit la couleur du bouton (rouge)
HTML : déclare le bouton dans la page
Langages clients web (5)
S’exécute dans le navigateur•Flash•Silverlight
RIAPlug-in téléchargé sur le client.
Non supporté par les OS mobiles !
Langages clients natifsDépend de l’OS/plateforme
OS mobile Langage
Apple iOS C, Objective-C
Google Android Java
Windows Phone C#, VB.net,, C++
BlackBerry Java
Windows 8 (Store app)
C#, VB.net,, C++, HTML/JS/CSS
D’autres langages spécialisés
Base de données : • SQL
Choix d’une technologie de dev
Quel impact sur la philosophie et la culture d’entreprise ? – un avis
Et après ?
Kit de survie J1 - Votre avis ?Merci d’évaluer * ** *** Précisez vos attentes
La qualité du contenu
Le contenu correspond à mes attentes
Le niveau technique du contenu me convient
J’ai appris quelque chose
La durée de la session me convient
Faites-nous part de ce qui vous a particulièrement plu / manqué :