coding : kit de survie pour les futurs entrepreneurs (session 1)

30
Stéphanie Hertrich @stepheMicrosoft – Microsoft Michel Rousseau @rousseau_michel – Microsoft Architectures des applications et technologies de développement « Coding » Kit de survie pour les futurs entrepreneurs

Upload: stephanie-hertrich

Post on 26-Jun-2015

5.868 views

Category:

Technology


1 download

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-tech

TRANSCRIPT

Page 1: Coding : Kit de survie pour les futurs entrepreneurs (Session 1)

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

Page 2: Coding : Kit de survie pour les futurs entrepreneurs (Session 1)

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 ?

Page 3: Coding : Kit de survie pour les futurs entrepreneurs (Session 1)

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

Page 4: Coding : Kit de survie pour les futurs entrepreneurs (Session 1)

Agenda

• Les nouveaux usages numériques• Application, site web, client, serveur,

cloud : kezako ?• Le développement multi-plateforme• Les langages de développement

Page 5: Coding : Kit de survie pour les futurs entrepreneurs (Session 1)

Les nouveaux usages numériques

Page 6: Coding : Kit de survie pour les futurs entrepreneurs (Session 1)

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

Page 7: Coding : Kit de survie pour les futurs entrepreneurs (Session 1)

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

Page 8: Coding : Kit de survie pour les futurs entrepreneurs (Session 1)

KEZAKO

Page 9: Coding : Kit de survie pour les futurs entrepreneurs (Session 1)

Devinettes…

Application

Site Web

OS (Operating System)

Framework

PlateformeAPI (Application Programming Interface)

Données

Serveur

Service Web

Cloud

Client

Device

Page 10: Coding : Kit de survie pour les futurs entrepreneurs (Session 1)

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

Page 11: Coding : Kit de survie pour les futurs entrepreneurs (Session 1)

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

Page 12: Coding : Kit de survie pour les futurs entrepreneurs (Session 1)

Les différents types de cloud (2/2)

Page 13: Coding : Kit de survie pour les futurs entrepreneurs (Session 1)

Le développement multi-plateforme

Page 14: Coding : Kit de survie pour les futurs entrepreneurs (Session 1)

Développement multi-plateforme

Une application déclinée sur les différents modèles de smartphone et tablettes, … du marché

Page 15: Coding : Kit de survie pour les futurs entrepreneurs (Session 1)

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

Page 16: Coding : Kit de survie pour les futurs entrepreneurs (Session 1)

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

Page 17: Coding : Kit de survie pour les futurs entrepreneurs (Session 1)

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 ?

Page 18: Coding : Kit de survie pour les futurs entrepreneurs (Session 1)

Les langages de développement

Page 19: Coding : Kit de survie pour les futurs entrepreneurs (Session 1)

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 »

Page 20: Coding : Kit de survie pour les futurs entrepreneurs (Session 1)

« 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• …

Page 21: Coding : Kit de survie pour les futurs entrepreneurs (Session 1)

Langages clients web (1)

Page 22: Coding : Kit de survie pour les futurs entrepreneurs (Session 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

Page 24: Coding : Kit de survie pour les futurs entrepreneurs (Session 1)

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

Page 25: Coding : Kit de survie pour les futurs entrepreneurs (Session 1)

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 !

Page 26: Coding : Kit de survie pour les futurs entrepreneurs (Session 1)

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

Page 27: Coding : Kit de survie pour les futurs entrepreneurs (Session 1)

D’autres langages spécialisés

Base de données : • SQL

Page 28: Coding : Kit de survie pour les futurs entrepreneurs (Session 1)

Choix d’une technologie de dev

Quel impact sur la philosophie et la culture d’entreprise ? – un avis

Page 29: Coding : Kit de survie pour les futurs entrepreneurs (Session 1)

Et après ?

Page 30: Coding : Kit de survie pour les futurs entrepreneurs (Session 1)

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é :