SlideShare une entreprise Scribd logo
1  sur  32
Télécharger pour lire hors ligne
HOW TO
MAKE YOUR
MOBILE API
HAPPY ?
>
Frédéric MILLARD
Architecte practice mobile
fmillard@octo.com
Nicolas LAURENT
Delivery manager Practice mobile
nlaurent@octo.com
72% des désinstalls liées à
des problèmes de perf
25% d’utilisateurs perdus
au delà de 4 secondes
40% au delà de 10
secondes
Sur 30 à 40 apps en
moyenne, seulement 10
sont utilisées
77% des nouvelles apps
installées ne sont pas
utilisées plus de 3 jours
26% sont
désinstallées
au premier
lancement
Près de
3 millions
d’apps
EXIGENCEUTILISATEURS
COMPÉTITION
USER CENTRIC
VITESSE
API MOBILE
#1
UX Driven
API
Les 4 APIs disponibles :
●  Vérification de la non existence d’un utilisateur en base
●  Validation du couple de mot de passe
●  Création du compte
●  Connexion
Nom
Prénom
Email
NEXT
Mot de passe
Répétez mot de passe
NEXT
Félicitations Bob !
LOGIN
Email
Mot de passe
NEXT
Bonjour Bob !
Action 1
Action 2
Exemple : Tunnel d’enrôlement API driven
Vérification du user Validation mot de passe
Création du compte
Connexion
Nom
Prénom
Email
Mot de passe
NEXT
Félicitations Bob !
Action 1
Action 2
Exemple : Tunnel d’enrôlement UX driven
Création du user
1 seule API POST /api/users qui réalise :
1.  La vérification des données,
2.  La création de compte
3.  Le login
Requête
POST /api/users
{
name: 'bob',
firstname: 'mauranne',
email: 'bob@maurane.fr',
password: 'duck@conf'
}
Réponse
201 Created
+  token d’authentification en header http
#2
Optimiser les
ressources
Exemple : Afficher une liste de contacts
Depuis un référentiel d’organisation interne
●  Nom, prénom, photo
●  Date d’entrée dans la société
●  Intitulé du poste, niveau, type de contrat
●  Équipe de rattachement, manager, collaborateurs
●  Pays, site géographique
●  Coordonnées : email, téléphones
●  Compétences
●  Projets en cours et passés
Prénom Nom, job
Equipe
Nom du manager
Photo
Exemple : Afficher une liste de contacts
{
id: '654'
name: 'Lebowsky',
firstname: 'Jeffrey',
picture: 'http://pics.com/jeff.png',
entry_date: '2013-04-22T06:00:00Z',
site: '23',
country: 'California'
email: 'bob.mauranne@duckcorp.com',
mobile_phone_number: '0605030402',
landline_phone_number: '0102030405',
team: '2344',
manager: '231',
managed: ['476', '378', '666'],
job: 'Senior architect',
job_type: 'permanent',
skills: {...}, projects: {...}
}
Jeffrey LEBOWSKY, Senior architect
Central office
Helen RIPLEY
Exemple : Afficher une liste de contacts
{
id: '654'
name: 'Lebowsky',
firstname: 'Jeffrey',
picture: 'http://pics.com/jeff.png',
entry_date: '2013-04-22T06:00:00Z',
site: '23',
country: 'California'
email: 'bob.mauranne@duckcorp.com',
mobile_phone_number: '0605030402',
landline_phone_number: '0102030405',
team: '2344',
manager: '231',
managed: ['476', '378', '666'],
job: 'Senior architect',
job_type: 'permanent',
skills: {...}, projects: {...}
}
Jeffrey LEBOWSKY, Senior architect
Central office
Helen RIPLEY
Exemple : Afficher une liste de contacts
Jeffrey LEBOWSKY, Senior architect
Central office
Helen RIPLEY
{
id: '654'
name: 'Lebowsky',
firstname: 'Jeffrey',
picture: 'http://pics.com/jeff.png',
entry_date: '2013-04-22T06:00:00Z',
site: '23',
country: 'California'
email: 'bob.mauranne@duckcorp.com',
mobile_phone_number: '0605030402',
landline_phone_number: '0102030405',
team: '2344',
manager: '231',
managed: ['476', '378', '666'],
job: 'Senior architect',
job_type: 'permanent',
skills: {...}, projects: {...}
}
Exemple : Afficher une liste de contacts
{
id: '654'
name: 'Lebowsky',
first_name: 'Jeffrey',
picture: 'http://pics.com/jeff.png',
site_coordinates: '33.9192233, -118.4061577',
email: 'jeff.lebowsky@duckcorp.com',
mobile_phone_number: '0605030402',
team: 'Central Office',
manager: '231',
manager_name: 'Helen RIPLEY',
job: 'Senior architect',
}
{
id: '654'
name: 'Lebowsky',
firstname: 'Jeffrey',
picture: 'http://pics.com/jeff.png',
entry_date: '2013-04-22T06:00:00Z',
site: '23',
country: 'California'
email: 'bob.mauranne@duckcorp.com',
mobile_phone_number: '0605030402',
landline_phone_number: '0102030405',
team: '2344',
manager: '231',
managed: ['476', '378', '666'],
job: 'Senior architect',
job_type: 'permanent',
skills: {...}, projects: {...}
}
Exemple : Afficher une liste de contacts
{
id: '654'
name: 'Lebowsky',
first_name: 'Jeffrey',
picture: 'http://pics.com/jeff.png',
site_coordinates: '33.9192233, -118.4061577',
email: 'jeff.lebowsky@duckcorp.com',
mobile_phone_number: '0605030402',
team: 'Central Office',
manager: '231',
manager_name: 'Helen RIPLEY',
job: 'Senior architect',
}
{
id: '654'
name: 'Lebowsky',
firstname: 'Jeffrey',
picture: 'http://pics.com/jeff.png',
entry_date: '2013-04-22T06:00:00Z',
site: '23',
country: 'California'
email: 'bob.mauranne@duckcorp.com',
mobile_phone_number: '0605030402',
landline_phone_number: '0102030405',
team: '2344',
manager: '231',
managed: ['476', '378', '666'],
job: 'Senior architect',
job_type: 'permanent',
skills: {...}, projects: {...}
}
Exemple : Afficher une liste de contacts
{
id: '654'
name: 'Lebowsky',
first_name: 'Jeffrey',
picture: 'http://pics.com/jeff.png',
site_coordinates: '33.9192233, -118.4061577',
email: 'jeff.lebowsky@duckcorp.com',
mobile_phone_number: '0605030402',
team: 'Central Office',
manager: '231',
manager_name: 'Helen RIPLEY',
job: 'Senior architect',
}
N’exposez que les données
réellement utilisées
Privilégiez des APIs
pragmatiques qui limitent
le nombre d’appels réseau
Mais encore ...
Prenez l’usage et les contraintes mobile en considération :
-  En limitant le nombre d’objets, et en conséquence la taille du payload renvoyé par le serveur ...
-  … voire même en incitant le client à filtrer encore plus ses recherches en amont
-  En utilisant des formats compressés
Requête
GET /api/employees?range=0-25
Réponse
206 Partial Content
Content-Range: 0-25/2347
Accept-Range: employees 50
[
{...},
{...},
{...},
]
Requête
GET /api/search?name=fr*
Accept-Encoding: gzip, deflate
Paginez Autorisez les formats
d’échanges compressés (zip,
protobuf...)
Forcez l’utilisateur à affiner sa
recherche en renvoyant un
code d’erreur applicatif
Requête
GET /api/employees?name=F*
Réponse
400 Bad request
412 Precondition failed
413 Request entity too large
#3
Permettre au
mobile
d’exploiter le
cache HTTP
Non cacheable Non cacheable Cacheable
{
}
GET /api/mix-cache-and-nocache
{
}
GET /api/nocache
{
}
GET /api/cache
Response header HTTP
Cache-Control
-  max-age=86400
-  private, max-age=600
-  no-store
-  no-cache
ETag
-  hash de la ressource
Request header HTTP
If-None-Match
Utiliser les bonnes entêtes HTTP
=> le client HTTP fait le reste
#4
REST/JSON
vs
SOAP
PRODUCTIVITÉ
<soapenv:Envelope
xmlns:soapenv="http://schemas.xmlsoap.org/soap/envelope/"
xmlns:m="http://www.mymeteo.com/meteo">
<soapenv:Header>
</soapenv:Header>
<soapenv:Body>
<m:releve>
<m:temperature>
<m:valeur>6.0</m:valeur>
<m:unite>celsius</m:unite>
</m:temperature>
<m:lieu>
<m:ville>Bordeaux</m:ville>
</m:lieu>
</m:releve>
</soapenv:Body>
</soapenv:Envelope>
{
"city": "bordeaux"
"value": 6.0,
"unit": "celsius",
}
Enveloppe SOAP/XML Payload REST/Json
Size matters...
#5
Et comment
mettre en
place tout
ça ?
“Mon enseigne” 4,4/5
“Le nom du magasin”
Commentaire 1
Commentaire 2
Commentaire 3
Commentaire 4
BE 1
BE 2
Exemple : Fiche magasin
BE 1 BE 2
Perte de
réseau ?
Rollback
context
transactionnel
?
2 plateformes
?
Roadmaps
?
BE 1 BE 2API
MOB
Designer vos
ressources
Filtrer et
alléger les
payloads
Mutualiser du
code métier
Décorréler les
roadmaps
....
ex : cache
applicatif
server
#6
Et toutes les
autres
bonnes
pratiques API
●  Ne pas propager la complexité du SI dans une app
●  Avoir des APIs dédiées pour les applications
○  Limiter les appels réseaux
○  Driver le design de l’API mobile par l’UX
○  Exploiter les mécanismes de cache
○  Ne garder que le nécessaire dans vos payloads
○  ...
Take away
MERCI

Contenu connexe

Tendances

La Duck Conf - "Du monolithe à une architecture orientée service : Cher monol...
La Duck Conf - "Du monolithe à une architecture orientée service : Cher monol...La Duck Conf - "Du monolithe à une architecture orientée service : Cher monol...
La Duck Conf - "Du monolithe à une architecture orientée service : Cher monol...OCTO Technology
 
Meet'up "Linux et Android dans les systèmes embarqués et les objets connectés"
Meet'up "Linux et Android dans les systèmes embarqués et les objets connectés"Meet'up "Linux et Android dans les systèmes embarqués et les objets connectés"
Meet'up "Linux et Android dans les systèmes embarqués et les objets connectés"Smile I.T is open
 
La Duck Conf : "Observabilité"
La Duck Conf : "Observabilité"La Duck Conf : "Observabilité"
La Duck Conf : "Observabilité"OCTO Technology
 
Le Comptoir : Les Chatbot stores en 2020
Le Comptoir : Les Chatbot stores en 2020Le Comptoir : Les Chatbot stores en 2020
Le Comptoir : Les Chatbot stores en 2020OCTO Technology
 
La Duck Conf 2018 : "Au secours : le Marketing a choisi Salesforce - SaaS ou ...
La Duck Conf 2018 : "Au secours : le Marketing a choisi Salesforce - SaaS ou ...La Duck Conf 2018 : "Au secours : le Marketing a choisi Salesforce - SaaS ou ...
La Duck Conf 2018 : "Au secours : le Marketing a choisi Salesforce - SaaS ou ...OCTO Technology
 
La Duck Conf - "Microservices & Servicemesh : le retour des frameworks d'entr...
La Duck Conf - "Microservices & Servicemesh : le retour des frameworks d'entr...La Duck Conf - "Microservices & Servicemesh : le retour des frameworks d'entr...
La Duck Conf - "Microservices & Servicemesh : le retour des frameworks d'entr...OCTO Technology
 
Webinar SMILE : "L'Open Source, un accélérateur d'innovation pour les objets ...
Webinar SMILE : "L'Open Source, un accélérateur d'innovation pour les objets ...Webinar SMILE : "L'Open Source, un accélérateur d'innovation pour les objets ...
Webinar SMILE : "L'Open Source, un accélérateur d'innovation pour les objets ...Smile I.T is open
 
La Duck Conf : "Apache Spark : ai-je besoin d'autre chose ?"
La Duck Conf : "Apache Spark : ai-je besoin d'autre chose ?"La Duck Conf : "Apache Spark : ai-je besoin d'autre chose ?"
La Duck Conf : "Apache Spark : ai-je besoin d'autre chose ?"OCTO Technology
 
API-First pour de nouvelles expériences de commerce en ligne
API-First pour de nouvelles expériences de commerce en ligneAPI-First pour de nouvelles expériences de commerce en ligne
API-First pour de nouvelles expériences de commerce en lignePrénom Nom de famille
 
La Duck Conf - "Les papys de l'ESB ont une histoire à vous conter"
La Duck Conf - "Les papys de l'ESB ont une histoire à vous conter"La Duck Conf - "Les papys de l'ESB ont une histoire à vous conter"
La Duck Conf - "Les papys de l'ESB ont une histoire à vous conter"OCTO Technology
 
La Duck Conf - Continuous Security : Secure a DevOps World!
La Duck Conf - Continuous Security : Secure a DevOps World!La Duck Conf - Continuous Security : Secure a DevOps World!
La Duck Conf - Continuous Security : Secure a DevOps World!OCTO Technology
 
Afterwork Devops : vision et pratiques
Afterwork Devops : vision et pratiquesAfterwork Devops : vision et pratiques
Afterwork Devops : vision et pratiquesOCTO Technology Suisse
 
La Duck Conf - "Mon DSI veut une MEP par jour, comment faire de l'architectur...
La Duck Conf - "Mon DSI veut une MEP par jour, comment faire de l'architectur...La Duck Conf - "Mon DSI veut une MEP par jour, comment faire de l'architectur...
La Duck Conf - "Mon DSI veut une MEP par jour, comment faire de l'architectur...OCTO Technology
 
La Duck Conf - "Elle est ou ton appli ? Dans mon kube"
La Duck Conf - "Elle est ou ton appli ? Dans mon kube"La Duck Conf - "Elle est ou ton appli ? Dans mon kube"
La Duck Conf - "Elle est ou ton appli ? Dans mon kube"OCTO Technology
 
La Duck Conf - "Edge computing : le déploiement continu se fait une virée en ...
La Duck Conf - "Edge computing : le déploiement continu se fait une virée en ...La Duck Conf - "Edge computing : le déploiement continu se fait une virée en ...
La Duck Conf - "Edge computing : le déploiement continu se fait une virée en ...OCTO Technology
 
La Duck Conf - "L'API Management : au-délà des promesses"
La Duck Conf - "L'API Management : au-délà des promesses" La Duck Conf - "L'API Management : au-délà des promesses"
La Duck Conf - "L'API Management : au-délà des promesses" OCTO Technology
 
Club utilisateur retour_expérience_simplicité_v4
Club utilisateur retour_expérience_simplicité_v4Club utilisateur retour_expérience_simplicité_v4
Club utilisateur retour_expérience_simplicité_v4Simplicité Software
 
Meetup #1 low-code, Pourquoi ? Pour qui ? Comment ? Rencontrons-nous !
Meetup #1 low-code, Pourquoi ? Pour qui ? Comment ? Rencontrons-nous !Meetup #1 low-code, Pourquoi ? Pour qui ? Comment ? Rencontrons-nous !
Meetup #1 low-code, Pourquoi ? Pour qui ? Comment ? Rencontrons-nous !Simplicité Software
 

Tendances (19)

La Duck Conf - "Du monolithe à une architecture orientée service : Cher monol...
La Duck Conf - "Du monolithe à une architecture orientée service : Cher monol...La Duck Conf - "Du monolithe à une architecture orientée service : Cher monol...
La Duck Conf - "Du monolithe à une architecture orientée service : Cher monol...
 
Meet'up "Linux et Android dans les systèmes embarqués et les objets connectés"
Meet'up "Linux et Android dans les systèmes embarqués et les objets connectés"Meet'up "Linux et Android dans les systèmes embarqués et les objets connectés"
Meet'up "Linux et Android dans les systèmes embarqués et les objets connectés"
 
La Duck Conf : "Observabilité"
La Duck Conf : "Observabilité"La Duck Conf : "Observabilité"
La Duck Conf : "Observabilité"
 
Le Comptoir : Les Chatbot stores en 2020
Le Comptoir : Les Chatbot stores en 2020Le Comptoir : Les Chatbot stores en 2020
Le Comptoir : Les Chatbot stores en 2020
 
La Duck Conf 2018 : "Au secours : le Marketing a choisi Salesforce - SaaS ou ...
La Duck Conf 2018 : "Au secours : le Marketing a choisi Salesforce - SaaS ou ...La Duck Conf 2018 : "Au secours : le Marketing a choisi Salesforce - SaaS ou ...
La Duck Conf 2018 : "Au secours : le Marketing a choisi Salesforce - SaaS ou ...
 
La Duck Conf - "Microservices & Servicemesh : le retour des frameworks d'entr...
La Duck Conf - "Microservices & Servicemesh : le retour des frameworks d'entr...La Duck Conf - "Microservices & Servicemesh : le retour des frameworks d'entr...
La Duck Conf - "Microservices & Servicemesh : le retour des frameworks d'entr...
 
Afterwork "Décollez vers le Cloud"
Afterwork "Décollez vers le Cloud"Afterwork "Décollez vers le Cloud"
Afterwork "Décollez vers le Cloud"
 
Webinar SMILE : "L'Open Source, un accélérateur d'innovation pour les objets ...
Webinar SMILE : "L'Open Source, un accélérateur d'innovation pour les objets ...Webinar SMILE : "L'Open Source, un accélérateur d'innovation pour les objets ...
Webinar SMILE : "L'Open Source, un accélérateur d'innovation pour les objets ...
 
La Duck Conf : "Apache Spark : ai-je besoin d'autre chose ?"
La Duck Conf : "Apache Spark : ai-je besoin d'autre chose ?"La Duck Conf : "Apache Spark : ai-je besoin d'autre chose ?"
La Duck Conf : "Apache Spark : ai-je besoin d'autre chose ?"
 
API-First pour de nouvelles expériences de commerce en ligne
API-First pour de nouvelles expériences de commerce en ligneAPI-First pour de nouvelles expériences de commerce en ligne
API-First pour de nouvelles expériences de commerce en ligne
 
La Duck Conf - "Les papys de l'ESB ont une histoire à vous conter"
La Duck Conf - "Les papys de l'ESB ont une histoire à vous conter"La Duck Conf - "Les papys de l'ESB ont une histoire à vous conter"
La Duck Conf - "Les papys de l'ESB ont une histoire à vous conter"
 
La Duck Conf - Continuous Security : Secure a DevOps World!
La Duck Conf - Continuous Security : Secure a DevOps World!La Duck Conf - Continuous Security : Secure a DevOps World!
La Duck Conf - Continuous Security : Secure a DevOps World!
 
Afterwork Devops : vision et pratiques
Afterwork Devops : vision et pratiquesAfterwork Devops : vision et pratiques
Afterwork Devops : vision et pratiques
 
La Duck Conf - "Mon DSI veut une MEP par jour, comment faire de l'architectur...
La Duck Conf - "Mon DSI veut une MEP par jour, comment faire de l'architectur...La Duck Conf - "Mon DSI veut une MEP par jour, comment faire de l'architectur...
La Duck Conf - "Mon DSI veut une MEP par jour, comment faire de l'architectur...
 
La Duck Conf - "Elle est ou ton appli ? Dans mon kube"
La Duck Conf - "Elle est ou ton appli ? Dans mon kube"La Duck Conf - "Elle est ou ton appli ? Dans mon kube"
La Duck Conf - "Elle est ou ton appli ? Dans mon kube"
 
La Duck Conf - "Edge computing : le déploiement continu se fait une virée en ...
La Duck Conf - "Edge computing : le déploiement continu se fait une virée en ...La Duck Conf - "Edge computing : le déploiement continu se fait une virée en ...
La Duck Conf - "Edge computing : le déploiement continu se fait une virée en ...
 
La Duck Conf - "L'API Management : au-délà des promesses"
La Duck Conf - "L'API Management : au-délà des promesses" La Duck Conf - "L'API Management : au-délà des promesses"
La Duck Conf - "L'API Management : au-délà des promesses"
 
Club utilisateur retour_expérience_simplicité_v4
Club utilisateur retour_expérience_simplicité_v4Club utilisateur retour_expérience_simplicité_v4
Club utilisateur retour_expérience_simplicité_v4
 
Meetup #1 low-code, Pourquoi ? Pour qui ? Comment ? Rencontrons-nous !
Meetup #1 low-code, Pourquoi ? Pour qui ? Comment ? Rencontrons-nous !Meetup #1 low-code, Pourquoi ? Pour qui ? Comment ? Rencontrons-nous !
Meetup #1 low-code, Pourquoi ? Pour qui ? Comment ? Rencontrons-nous !
 

Similaire à La Duck Conf 2018 : "How to make your mobile happy?"

meetup devops aix-marseille - décembre 2023
meetup devops aix-marseille - décembre 2023meetup devops aix-marseille - décembre 2023
meetup devops aix-marseille - décembre 2023Frederic Leger
 
Améliorer l’expérience utilisateur en passant aux Progressive Web App
Améliorer l’expérience utilisateur en passant aux Progressive Web App Améliorer l’expérience utilisateur en passant aux Progressive Web App
Améliorer l’expérience utilisateur en passant aux Progressive Web App RESONEO
 
Les méthodes agiles dans TFS
Les méthodes agiles dans TFSLes méthodes agiles dans TFS
Les méthodes agiles dans TFSDenis Voituron
 
SPA avec Angular et SignalR (FR)
SPA avec Angular et SignalR (FR)SPA avec Angular et SignalR (FR)
SPA avec Angular et SignalR (FR)Rui Carvalho
 
Android - TPBonus - web services
Android - TPBonus - web servicesAndroid - TPBonus - web services
Android - TPBonus - web servicesLilia Sfaxi
 
Delegation d'authentification
Delegation d'authentificationDelegation d'authentification
Delegation d'authentificationSébastien Brault
 
LemonLDAP::NG, un WebSSO libre
LemonLDAP::NG, un WebSSO libreLemonLDAP::NG, un WebSSO libre
LemonLDAP::NG, un WebSSO libreClément OUDOT
 
Symposium n°7 : Plateforme Meteor
Symposium n°7 : Plateforme MeteorSymposium n°7 : Plateforme Meteor
Symposium n°7 : Plateforme MeteorArthurMaroulier
 
Le futur de l'authentification webAuthn
Le futur de l'authentification webAuthnLe futur de l'authentification webAuthn
Le futur de l'authentification webAuthnChristophe Villeneuve
 
Proposez le WIFI à vos clients, comment faire ? - Destination Brocéliande
Proposez le WIFI à vos clients, comment faire ? - Destination BrocéliandeProposez le WIFI à vos clients, comment faire ? - Destination Brocéliande
Proposez le WIFI à vos clients, comment faire ? - Destination BrocéliandeDestination Brocéliande
 
Retours d'expériences et bonnes pratiques sur l'implémentation d'ADFS dans Sh...
Retours d'expériences et bonnes pratiques sur l'implémentation d'ADFS dans Sh...Retours d'expériences et bonnes pratiques sur l'implémentation d'ADFS dans Sh...
Retours d'expériences et bonnes pratiques sur l'implémentation d'ADFS dans Sh...Microsoft Technet France
 
Securitedesapplications 091011120426-phpapp02
Securitedesapplications 091011120426-phpapp02Securitedesapplications 091011120426-phpapp02
Securitedesapplications 091011120426-phpapp02Asma Messaoudi
 
Carrières informatiques
Carrières informatiquesCarrières informatiques
Carrières informatiquesAlexandreG97
 
Kiwiparty 2011 - Optimisation des sites internet
Kiwiparty 2011 - Optimisation des sites internetKiwiparty 2011 - Optimisation des sites internet
Kiwiparty 2011 - Optimisation des sites internetDevclic
 
Authentification sociale en angular 1.pptx
Authentification sociale en angular 1.pptxAuthentification sociale en angular 1.pptx
Authentification sociale en angular 1.pptxMickael ROLO
 

Similaire à La Duck Conf 2018 : "How to make your mobile happy?" (20)

meetup devops aix-marseille - décembre 2023
meetup devops aix-marseille - décembre 2023meetup devops aix-marseille - décembre 2023
meetup devops aix-marseille - décembre 2023
 
Carières
CarièresCarières
Carières
 
Carières
CarièresCarières
Carières
 
Présentation PFE: SmartAudit
Présentation PFE: SmartAuditPrésentation PFE: SmartAudit
Présentation PFE: SmartAudit
 
Améliorer l’expérience utilisateur en passant aux Progressive Web App
Améliorer l’expérience utilisateur en passant aux Progressive Web App Améliorer l’expérience utilisateur en passant aux Progressive Web App
Améliorer l’expérience utilisateur en passant aux Progressive Web App
 
Piloter intune avec PowerShell
Piloter intune avec PowerShellPiloter intune avec PowerShell
Piloter intune avec PowerShell
 
Les méthodes agiles dans TFS
Les méthodes agiles dans TFSLes méthodes agiles dans TFS
Les méthodes agiles dans TFS
 
SPA avec Angular et SignalR (FR)
SPA avec Angular et SignalR (FR)SPA avec Angular et SignalR (FR)
SPA avec Angular et SignalR (FR)
 
Android - TPBonus - web services
Android - TPBonus - web servicesAndroid - TPBonus - web services
Android - TPBonus - web services
 
Delegation d'authentification
Delegation d'authentificationDelegation d'authentification
Delegation d'authentification
 
LemonLDAP::NG, un WebSSO libre
LemonLDAP::NG, un WebSSO libreLemonLDAP::NG, un WebSSO libre
LemonLDAP::NG, un WebSSO libre
 
Symposium n°7 : Plateforme Meteor
Symposium n°7 : Plateforme MeteorSymposium n°7 : Plateforme Meteor
Symposium n°7 : Plateforme Meteor
 
Le futur de l'authentification webAuthn
Le futur de l'authentification webAuthnLe futur de l'authentification webAuthn
Le futur de l'authentification webAuthn
 
Proposez le WIFI à vos clients, comment faire ? - Destination Brocéliande
Proposez le WIFI à vos clients, comment faire ? - Destination BrocéliandeProposez le WIFI à vos clients, comment faire ? - Destination Brocéliande
Proposez le WIFI à vos clients, comment faire ? - Destination Brocéliande
 
Retours d'expériences et bonnes pratiques sur l'implémentation d'ADFS dans Sh...
Retours d'expériences et bonnes pratiques sur l'implémentation d'ADFS dans Sh...Retours d'expériences et bonnes pratiques sur l'implémentation d'ADFS dans Sh...
Retours d'expériences et bonnes pratiques sur l'implémentation d'ADFS dans Sh...
 
Securitedesapplications 091011120426-phpapp02
Securitedesapplications 091011120426-phpapp02Securitedesapplications 091011120426-phpapp02
Securitedesapplications 091011120426-phpapp02
 
Carrières informatiques
Carrières informatiquesCarrières informatiques
Carrières informatiques
 
Kiwiparty 2011 - Optimisation des sites internet
Kiwiparty 2011 - Optimisation des sites internetKiwiparty 2011 - Optimisation des sites internet
Kiwiparty 2011 - Optimisation des sites internet
 
pfe book 2023 2024.pdf
pfe book 2023 2024.pdfpfe book 2023 2024.pdf
pfe book 2023 2024.pdf
 
Authentification sociale en angular 1.pptx
Authentification sociale en angular 1.pptxAuthentification sociale en angular 1.pptx
Authentification sociale en angular 1.pptx
 

Plus de OCTO Technology

Le Comptoir OCTO - Se conformer à la CSRD : un levier d'action insoupçonné
Le Comptoir OCTO - Se conformer à la CSRD : un levier d'action insoupçonnéLe Comptoir OCTO - Se conformer à la CSRD : un levier d'action insoupçonné
Le Comptoir OCTO - Se conformer à la CSRD : un levier d'action insoupçonnéOCTO Technology
 
Le Comptoir OCTO - MLOps : Les patterns MLOps dans le cloud
Le Comptoir OCTO - MLOps : Les patterns MLOps dans le cloudLe Comptoir OCTO - MLOps : Les patterns MLOps dans le cloud
Le Comptoir OCTO - MLOps : Les patterns MLOps dans le cloudOCTO Technology
 
La Grosse Conf 2024 - Philippe Stepniewski -Atelier - Live coding d'une base ...
La Grosse Conf 2024 - Philippe Stepniewski -Atelier - Live coding d'une base ...La Grosse Conf 2024 - Philippe Stepniewski -Atelier - Live coding d'une base ...
La Grosse Conf 2024 - Philippe Stepniewski -Atelier - Live coding d'une base ...OCTO Technology
 
La Grosse Conf 2024 - Philippe Prados - Atelier - RAG : au-delà de la démonst...
La Grosse Conf 2024 - Philippe Prados - Atelier - RAG : au-delà de la démonst...La Grosse Conf 2024 - Philippe Prados - Atelier - RAG : au-delà de la démonst...
La Grosse Conf 2024 - Philippe Prados - Atelier - RAG : au-delà de la démonst...OCTO Technology
 
Le Comptoir OCTO - Maîtriser le RAG : connecter les modèles d’IA génératives ...
Le Comptoir OCTO - Maîtriser le RAG : connecter les modèles d’IA génératives ...Le Comptoir OCTO - Maîtriser le RAG : connecter les modèles d’IA génératives ...
Le Comptoir OCTO - Maîtriser le RAG : connecter les modèles d’IA génératives ...OCTO Technology
 
OCTO Talks - Les IA s'invitent au chevet des développeurs
OCTO Talks - Les IA s'invitent au chevet des développeursOCTO Talks - Les IA s'invitent au chevet des développeurs
OCTO Talks - Les IA s'invitent au chevet des développeursOCTO Technology
 
OCTO Talks - Lancement du livre Culture Test
OCTO Talks - Lancement du livre Culture TestOCTO Talks - Lancement du livre Culture Test
OCTO Talks - Lancement du livre Culture TestOCTO Technology
 
Le Comptoir OCTO - Green AI, comment éviter que votre votre potion magique d’...
Le Comptoir OCTO - Green AI, comment éviter que votre votre potion magique d’...Le Comptoir OCTO - Green AI, comment éviter que votre votre potion magique d’...
Le Comptoir OCTO - Green AI, comment éviter que votre votre potion magique d’...OCTO Technology
 
OCTO Talks - State of the art Architecture dans les frontend web
OCTO Talks - State of the art Architecture dans les frontend webOCTO Talks - State of the art Architecture dans les frontend web
OCTO Talks - State of the art Architecture dans les frontend webOCTO Technology
 
Comptoir OCTO ALD Automotive/Leaseplan
Comptoir OCTO ALD Automotive/LeaseplanComptoir OCTO ALD Automotive/Leaseplan
Comptoir OCTO ALD Automotive/LeaseplanOCTO Technology
 
Le Comptoir OCTO - Comment optimiser les stocks en linéaire par la Data ?
Le Comptoir OCTO - Comment optimiser les stocks en linéaire par la Data ? Le Comptoir OCTO - Comment optimiser les stocks en linéaire par la Data ?
Le Comptoir OCTO - Comment optimiser les stocks en linéaire par la Data ? OCTO Technology
 
Le Comptoir OCTO - Retour sur 5 ans de mise en oeuvre : Comment le RGPD a réi...
Le Comptoir OCTO - Retour sur 5 ans de mise en oeuvre : Comment le RGPD a réi...Le Comptoir OCTO - Retour sur 5 ans de mise en oeuvre : Comment le RGPD a réi...
Le Comptoir OCTO - Retour sur 5 ans de mise en oeuvre : Comment le RGPD a réi...OCTO Technology
 
Le Comptoir OCTO - Affinez vos forecasts avec la planification distribuée et...
Le Comptoir OCTO -  Affinez vos forecasts avec la planification distribuée et...Le Comptoir OCTO -  Affinez vos forecasts avec la planification distribuée et...
Le Comptoir OCTO - Affinez vos forecasts avec la planification distribuée et...OCTO Technology
 
Le Comptoir OCTO - La formation au cœur de la stratégie d’éco-conception
Le Comptoir OCTO - La formation au cœur de la stratégie d’éco-conceptionLe Comptoir OCTO - La formation au cœur de la stratégie d’éco-conception
Le Comptoir OCTO - La formation au cœur de la stratégie d’éco-conceptionOCTO Technology
 
Le Comptoir OCTO - Une vision de plateforme sans leadership tech n’est qu’hal...
Le Comptoir OCTO - Une vision de plateforme sans leadership tech n’est qu’hal...Le Comptoir OCTO - Une vision de plateforme sans leadership tech n’est qu’hal...
Le Comptoir OCTO - Une vision de plateforme sans leadership tech n’est qu’hal...OCTO Technology
 
Le Comptoir OCTO - L'avenir de la gestion du bilan carbone : les solutions E...
Le Comptoir OCTO - L'avenir de la gestion du bilan carbone :  les solutions E...Le Comptoir OCTO - L'avenir de la gestion du bilan carbone :  les solutions E...
Le Comptoir OCTO - L'avenir de la gestion du bilan carbone : les solutions E...OCTO Technology
 
Le Comptoir OCTO - Continuous discovery et continuous delivery pour construir...
Le Comptoir OCTO - Continuous discovery et continuous delivery pour construir...Le Comptoir OCTO - Continuous discovery et continuous delivery pour construir...
Le Comptoir OCTO - Continuous discovery et continuous delivery pour construir...OCTO Technology
 
RefCard Tests sur tous les fronts
RefCard Tests sur tous les frontsRefCard Tests sur tous les fronts
RefCard Tests sur tous les frontsOCTO Technology
 
RefCard RESTful API Design
RefCard RESTful API DesignRefCard RESTful API Design
RefCard RESTful API DesignOCTO Technology
 

Plus de OCTO Technology (20)

Le Comptoir OCTO - Se conformer à la CSRD : un levier d'action insoupçonné
Le Comptoir OCTO - Se conformer à la CSRD : un levier d'action insoupçonnéLe Comptoir OCTO - Se conformer à la CSRD : un levier d'action insoupçonné
Le Comptoir OCTO - Se conformer à la CSRD : un levier d'action insoupçonné
 
Le Comptoir OCTO - MLOps : Les patterns MLOps dans le cloud
Le Comptoir OCTO - MLOps : Les patterns MLOps dans le cloudLe Comptoir OCTO - MLOps : Les patterns MLOps dans le cloud
Le Comptoir OCTO - MLOps : Les patterns MLOps dans le cloud
 
La Grosse Conf 2024 - Philippe Stepniewski -Atelier - Live coding d'une base ...
La Grosse Conf 2024 - Philippe Stepniewski -Atelier - Live coding d'une base ...La Grosse Conf 2024 - Philippe Stepniewski -Atelier - Live coding d'une base ...
La Grosse Conf 2024 - Philippe Stepniewski -Atelier - Live coding d'une base ...
 
La Grosse Conf 2024 - Philippe Prados - Atelier - RAG : au-delà de la démonst...
La Grosse Conf 2024 - Philippe Prados - Atelier - RAG : au-delà de la démonst...La Grosse Conf 2024 - Philippe Prados - Atelier - RAG : au-delà de la démonst...
La Grosse Conf 2024 - Philippe Prados - Atelier - RAG : au-delà de la démonst...
 
Le Comptoir OCTO - Maîtriser le RAG : connecter les modèles d’IA génératives ...
Le Comptoir OCTO - Maîtriser le RAG : connecter les modèles d’IA génératives ...Le Comptoir OCTO - Maîtriser le RAG : connecter les modèles d’IA génératives ...
Le Comptoir OCTO - Maîtriser le RAG : connecter les modèles d’IA génératives ...
 
OCTO Talks - Les IA s'invitent au chevet des développeurs
OCTO Talks - Les IA s'invitent au chevet des développeursOCTO Talks - Les IA s'invitent au chevet des développeurs
OCTO Talks - Les IA s'invitent au chevet des développeurs
 
OCTO Talks - Lancement du livre Culture Test
OCTO Talks - Lancement du livre Culture TestOCTO Talks - Lancement du livre Culture Test
OCTO Talks - Lancement du livre Culture Test
 
Le Comptoir OCTO - Green AI, comment éviter que votre votre potion magique d’...
Le Comptoir OCTO - Green AI, comment éviter que votre votre potion magique d’...Le Comptoir OCTO - Green AI, comment éviter que votre votre potion magique d’...
Le Comptoir OCTO - Green AI, comment éviter que votre votre potion magique d’...
 
OCTO Talks - State of the art Architecture dans les frontend web
OCTO Talks - State of the art Architecture dans les frontend webOCTO Talks - State of the art Architecture dans les frontend web
OCTO Talks - State of the art Architecture dans les frontend web
 
Refcard GraphQL
Refcard GraphQLRefcard GraphQL
Refcard GraphQL
 
Comptoir OCTO ALD Automotive/Leaseplan
Comptoir OCTO ALD Automotive/LeaseplanComptoir OCTO ALD Automotive/Leaseplan
Comptoir OCTO ALD Automotive/Leaseplan
 
Le Comptoir OCTO - Comment optimiser les stocks en linéaire par la Data ?
Le Comptoir OCTO - Comment optimiser les stocks en linéaire par la Data ? Le Comptoir OCTO - Comment optimiser les stocks en linéaire par la Data ?
Le Comptoir OCTO - Comment optimiser les stocks en linéaire par la Data ?
 
Le Comptoir OCTO - Retour sur 5 ans de mise en oeuvre : Comment le RGPD a réi...
Le Comptoir OCTO - Retour sur 5 ans de mise en oeuvre : Comment le RGPD a réi...Le Comptoir OCTO - Retour sur 5 ans de mise en oeuvre : Comment le RGPD a réi...
Le Comptoir OCTO - Retour sur 5 ans de mise en oeuvre : Comment le RGPD a réi...
 
Le Comptoir OCTO - Affinez vos forecasts avec la planification distribuée et...
Le Comptoir OCTO -  Affinez vos forecasts avec la planification distribuée et...Le Comptoir OCTO -  Affinez vos forecasts avec la planification distribuée et...
Le Comptoir OCTO - Affinez vos forecasts avec la planification distribuée et...
 
Le Comptoir OCTO - La formation au cœur de la stratégie d’éco-conception
Le Comptoir OCTO - La formation au cœur de la stratégie d’éco-conceptionLe Comptoir OCTO - La formation au cœur de la stratégie d’éco-conception
Le Comptoir OCTO - La formation au cœur de la stratégie d’éco-conception
 
Le Comptoir OCTO - Une vision de plateforme sans leadership tech n’est qu’hal...
Le Comptoir OCTO - Une vision de plateforme sans leadership tech n’est qu’hal...Le Comptoir OCTO - Une vision de plateforme sans leadership tech n’est qu’hal...
Le Comptoir OCTO - Une vision de plateforme sans leadership tech n’est qu’hal...
 
Le Comptoir OCTO - L'avenir de la gestion du bilan carbone : les solutions E...
Le Comptoir OCTO - L'avenir de la gestion du bilan carbone :  les solutions E...Le Comptoir OCTO - L'avenir de la gestion du bilan carbone :  les solutions E...
Le Comptoir OCTO - L'avenir de la gestion du bilan carbone : les solutions E...
 
Le Comptoir OCTO - Continuous discovery et continuous delivery pour construir...
Le Comptoir OCTO - Continuous discovery et continuous delivery pour construir...Le Comptoir OCTO - Continuous discovery et continuous delivery pour construir...
Le Comptoir OCTO - Continuous discovery et continuous delivery pour construir...
 
RefCard Tests sur tous les fronts
RefCard Tests sur tous les frontsRefCard Tests sur tous les fronts
RefCard Tests sur tous les fronts
 
RefCard RESTful API Design
RefCard RESTful API DesignRefCard RESTful API Design
RefCard RESTful API Design
 

La Duck Conf 2018 : "How to make your mobile happy?"

  • 2. > Frédéric MILLARD Architecte practice mobile fmillard@octo.com Nicolas LAURENT Delivery manager Practice mobile nlaurent@octo.com
  • 3. 72% des désinstalls liées à des problèmes de perf 25% d’utilisateurs perdus au delà de 4 secondes 40% au delà de 10 secondes Sur 30 à 40 apps en moyenne, seulement 10 sont utilisées 77% des nouvelles apps installées ne sont pas utilisées plus de 3 jours 26% sont désinstallées au premier lancement Près de 3 millions d’apps EXIGENCEUTILISATEURS COMPÉTITION
  • 8. Les 4 APIs disponibles : ●  Vérification de la non existence d’un utilisateur en base ●  Validation du couple de mot de passe ●  Création du compte ●  Connexion Nom Prénom Email NEXT Mot de passe Répétez mot de passe NEXT Félicitations Bob ! LOGIN Email Mot de passe NEXT Bonjour Bob ! Action 1 Action 2 Exemple : Tunnel d’enrôlement API driven Vérification du user Validation mot de passe Création du compte Connexion
  • 9. Nom Prénom Email Mot de passe NEXT Félicitations Bob ! Action 1 Action 2 Exemple : Tunnel d’enrôlement UX driven Création du user 1 seule API POST /api/users qui réalise : 1.  La vérification des données, 2.  La création de compte 3.  Le login Requête POST /api/users { name: 'bob', firstname: 'mauranne', email: 'bob@maurane.fr', password: 'duck@conf' } Réponse 201 Created +  token d’authentification en header http
  • 11. Exemple : Afficher une liste de contacts Depuis un référentiel d’organisation interne ●  Nom, prénom, photo ●  Date d’entrée dans la société ●  Intitulé du poste, niveau, type de contrat ●  Équipe de rattachement, manager, collaborateurs ●  Pays, site géographique ●  Coordonnées : email, téléphones ●  Compétences ●  Projets en cours et passés Prénom Nom, job Equipe Nom du manager Photo
  • 12. Exemple : Afficher une liste de contacts { id: '654' name: 'Lebowsky', firstname: 'Jeffrey', picture: 'http://pics.com/jeff.png', entry_date: '2013-04-22T06:00:00Z', site: '23', country: 'California' email: 'bob.mauranne@duckcorp.com', mobile_phone_number: '0605030402', landline_phone_number: '0102030405', team: '2344', manager: '231', managed: ['476', '378', '666'], job: 'Senior architect', job_type: 'permanent', skills: {...}, projects: {...} } Jeffrey LEBOWSKY, Senior architect Central office Helen RIPLEY
  • 13. Exemple : Afficher une liste de contacts { id: '654' name: 'Lebowsky', firstname: 'Jeffrey', picture: 'http://pics.com/jeff.png', entry_date: '2013-04-22T06:00:00Z', site: '23', country: 'California' email: 'bob.mauranne@duckcorp.com', mobile_phone_number: '0605030402', landline_phone_number: '0102030405', team: '2344', manager: '231', managed: ['476', '378', '666'], job: 'Senior architect', job_type: 'permanent', skills: {...}, projects: {...} } Jeffrey LEBOWSKY, Senior architect Central office Helen RIPLEY
  • 14. Exemple : Afficher une liste de contacts Jeffrey LEBOWSKY, Senior architect Central office Helen RIPLEY { id: '654' name: 'Lebowsky', firstname: 'Jeffrey', picture: 'http://pics.com/jeff.png', entry_date: '2013-04-22T06:00:00Z', site: '23', country: 'California' email: 'bob.mauranne@duckcorp.com', mobile_phone_number: '0605030402', landline_phone_number: '0102030405', team: '2344', manager: '231', managed: ['476', '378', '666'], job: 'Senior architect', job_type: 'permanent', skills: {...}, projects: {...} }
  • 15. Exemple : Afficher une liste de contacts { id: '654' name: 'Lebowsky', first_name: 'Jeffrey', picture: 'http://pics.com/jeff.png', site_coordinates: '33.9192233, -118.4061577', email: 'jeff.lebowsky@duckcorp.com', mobile_phone_number: '0605030402', team: 'Central Office', manager: '231', manager_name: 'Helen RIPLEY', job: 'Senior architect', } { id: '654' name: 'Lebowsky', firstname: 'Jeffrey', picture: 'http://pics.com/jeff.png', entry_date: '2013-04-22T06:00:00Z', site: '23', country: 'California' email: 'bob.mauranne@duckcorp.com', mobile_phone_number: '0605030402', landline_phone_number: '0102030405', team: '2344', manager: '231', managed: ['476', '378', '666'], job: 'Senior architect', job_type: 'permanent', skills: {...}, projects: {...} }
  • 16. Exemple : Afficher une liste de contacts { id: '654' name: 'Lebowsky', first_name: 'Jeffrey', picture: 'http://pics.com/jeff.png', site_coordinates: '33.9192233, -118.4061577', email: 'jeff.lebowsky@duckcorp.com', mobile_phone_number: '0605030402', team: 'Central Office', manager: '231', manager_name: 'Helen RIPLEY', job: 'Senior architect', } { id: '654' name: 'Lebowsky', firstname: 'Jeffrey', picture: 'http://pics.com/jeff.png', entry_date: '2013-04-22T06:00:00Z', site: '23', country: 'California' email: 'bob.mauranne@duckcorp.com', mobile_phone_number: '0605030402', landline_phone_number: '0102030405', team: '2344', manager: '231', managed: ['476', '378', '666'], job: 'Senior architect', job_type: 'permanent', skills: {...}, projects: {...} }
  • 17. Exemple : Afficher une liste de contacts { id: '654' name: 'Lebowsky', first_name: 'Jeffrey', picture: 'http://pics.com/jeff.png', site_coordinates: '33.9192233, -118.4061577', email: 'jeff.lebowsky@duckcorp.com', mobile_phone_number: '0605030402', team: 'Central Office', manager: '231', manager_name: 'Helen RIPLEY', job: 'Senior architect', } N’exposez que les données réellement utilisées Privilégiez des APIs pragmatiques qui limitent le nombre d’appels réseau
  • 18. Mais encore ... Prenez l’usage et les contraintes mobile en considération : -  En limitant le nombre d’objets, et en conséquence la taille du payload renvoyé par le serveur ... -  … voire même en incitant le client à filtrer encore plus ses recherches en amont -  En utilisant des formats compressés Requête GET /api/employees?range=0-25 Réponse 206 Partial Content Content-Range: 0-25/2347 Accept-Range: employees 50 [ {...}, {...}, {...}, ] Requête GET /api/search?name=fr* Accept-Encoding: gzip, deflate Paginez Autorisez les formats d’échanges compressés (zip, protobuf...) Forcez l’utilisateur à affiner sa recherche en renvoyant un code d’erreur applicatif Requête GET /api/employees?name=F* Réponse 400 Bad request 412 Precondition failed 413 Request entity too large
  • 20. Non cacheable Non cacheable Cacheable { } GET /api/mix-cache-and-nocache { } GET /api/nocache { } GET /api/cache
  • 21. Response header HTTP Cache-Control -  max-age=86400 -  private, max-age=600 -  no-store -  no-cache ETag -  hash de la ressource Request header HTTP If-None-Match Utiliser les bonnes entêtes HTTP => le client HTTP fait le reste
  • 26. “Mon enseigne” 4,4/5 “Le nom du magasin” Commentaire 1 Commentaire 2 Commentaire 3 Commentaire 4 BE 1 BE 2 Exemple : Fiche magasin
  • 27. BE 1 BE 2 Perte de réseau ? Rollback context transactionnel ? 2 plateformes ? Roadmaps ?
  • 28. BE 1 BE 2API MOB Designer vos ressources Filtrer et alléger les payloads Mutualiser du code métier Décorréler les roadmaps .... ex : cache applicatif server
  • 30.
  • 31. ●  Ne pas propager la complexité du SI dans une app ●  Avoir des APIs dédiées pour les applications ○  Limiter les appels réseaux ○  Driver le design de l’API mobile par l’UX ○  Exploiter les mécanismes de cache ○  Ne garder que le nécessaire dans vos payloads ○  ... Take away
  • 32. MERCI