Post on 24-May-2015
AppDays 2013 @marclebel
Les règles d’or pour gérer, et éviter les mises
à jour de son app
Mise à jour non souhaitée
Causes possibles :● Crash ● Contenu incorrect● Comportement soudainement mauvais
sujet de cette conf
Constat : une mise à jour est lente
Temps de validation par plateforme :
iOS : 6 joursWindows Phone : 3 jours
source : http://reviewtimes.shinydevelopment.com/
Plus on supporte de plateformes, plus il est nécessaire d’éviter les imprévus
Un maître mot : anticipation
Qui peut évoluer ?
● Les tierces parties (API, framework,..)● Le législateur● Vous
Règle n°1 : votre API doit définir les règles métiers
Exemple 1 Votre billet
Prix HT : 100 €
TVA : 19.6 €
Total : 119.6 €
PAYER
Au 1er janvier 2014 :TVA à 20%
#define VAT 19.6fCONST VAT = 19.6 static final float vat = 19.6f public const float vat = 19.6f
Serveur iOS Android WP
Ce qu’il ne faut pas faire
Changement TVA = > mettre à jour toutes vos apps
Seule votre API doit connaître la TVA
GET ticket/1234 => - {title : “AppDays 2014”,price_ht : 100,
vat : 19.6 }
Changement TVA = > mettre à jour uniquement l’API
Exemple 2 Annuler achat
Raison
Détails...
Anuler
● J’ai trouvé une meilleure conf ailleurs
● Je suis malade● Je pars à l’étranger● Autre raison
Et si vous avez besoin de mettre à jour cette liste ?
Votre API doit retourner les raisons
GET ticket/1234 =>- {
title : “AppDays 2014”,price_ht : 100,
vat : 19.6,cancelReasons : [
- “Je suis malade”,- “Je pars à l’étranger”
] }
Exemple 3 AppDays 2013
Conf indispensable pour les amoureux des apps
Voir Facture
Combien de temps à l’avance un billet est-il annulable ?
Annuler
L’API doit vous dire si c’est annulable
GET ticket/1234 =>- {
title : “AppDays 2014”,price_ht : 100,
vat : 19.6,cancelReasons : [
- “Je suis malade”,- “Je pars à l’étranger”
],canBeCanceled : 1,
}
Règle n°2 : votre API comme proxy d’API tierces
Les API tierces c’est super mais...
● Elles évoluent souvent (7 changements pour Facebook rien qu’en 2013)
● Vous pouvez trouver mieux ailleurs
● Vous pouvez vouloir changer de paramètres à tout moment
Exemple : upload de photo sur Amazon S3
1. Photo
4. Data
3. Data (url,..) 2. Photo
Votre Serveur
Avantages :
● Vous pouvez changer de provider sans mettre à jour aucune de vos apps
● Si Amazon change son API, uniquement le serveur à mettre à jour
● Vous pouvez modifier la qualité de la photo en paramétrant uniquement votre serveur
Limitations
● Certaines API limitent le nombre d’appels API par jour (Google Maps,...) par IP
● Votre serveur est plus sollicité
● Nécessite que votre serveur réponde vite
Règle n°3 : pouvoir éditer vos textes
via votre serveur
Problème 1 : le conteu CGU
Le présent document a pour objet de définir les modalités et conditions de ce site en 2012...
● Souvent mis à jour● Problèmes juridiques si
non conforme
Pratique pour des pages entières : CGU, About, Jobs, Support,...
=> permet d’être toujours conforme avec votre site web
Solution 1 : utilisez des webviews
Problème 2 : les labelsVotre billet
Pri HT : 100 €
TVA : 19.6 €
Totale : 119.6 €
PAYER
● Fautes d’orthographe possibles
Les labels sont externalisés dans un ficher (.xml, .strings, ) pour chaque locale
Donc mise à jour des labels => mise à jour de son app
Problème 2 : les labels
Charger via votre serveur un fichier diff au lancement de l’application et le stocker dans un hashtable
Solution 2 : surcharge dynamique des locales
L10n(key){ if (exist(dynamic_L10n[key])){
return dynamic_L10n[key]; }else{
return native_L10n[key]; }}
Méthode utilisée notamment par @RudyHuyn, qui a porté Wikipédia, Vine (6sec) et Instagram (6tag) sur WP8 dans plus de 30 locales
Solution 2 : surcharge dynamique des locales
Règle n°4 : Empêchez d’utiliser vos vieilles
versions
Problème
Vos anciennes versions d’app peuvent effectuer des actions non désirées
Vous pouvez souhaiter que tout le monde ait la dernière version
Solution : contrôle sur le serveur
Envoyez à chaque requête api dans les header la plateforme (ios, android,wp8,..) et identifiant de version
Votre serveur pourra renvoyer un code 403 (forbidden) le cas échéant
Solution : contrôle sur le serveur
En bonus le client pourra être redirigé sur le store pour effectuer la mise à jour
Bonus : expedited app review iOS (testé et approuvé : app validée en moins de 24h)
Ouf c’est fini !
Retrouvez-moi et posez vos questions sur :
@marclebel@Food_Reporter@OuiCar