Académique Documents
Professionnel Documents
Culture Documents
Au sommaire
À la découverte de React Native • Développez votre application •
Utilisez les ressources de React Native • Approfondir la question •
Stratégies autour du mobile • Publication sur les stores • Marketing et
communication des applications • Analyses et statistiques de vos
applications • Monétisation des applications • Mises à jour et
débogages
Biographie auteur
Après sa licence Métiers de l’Internet et du Multimédia, Blaise Barré s’est
spécialisé dans le développement web en travaillant dans différentes
sociétés de services en ingénierie informatique. Passionné de nouvelles
technologies, il s’est ensuite ouvert au développement mobile. Il a créé sa
propre société de services en ingénierie informatique pour mettre ses
connaissances et son savoir-faire au service des entreprises, des PME aux
grands groupes, dans la conception d’applications web et mobiles.
www.editions-eyrolles.com
SUR LE MÊME THÈME
R. DE VISSCHER. – Découvrez le langage Swift.
N°14397, 2016, 128 pages.
S. PITTION, B. SIEBMAN. – Applications mobiles avec Cordova et PhoneGap.
N°14052, 2015, 186 pages.
ISBN : 978-2-212-67563-4
Avant-propos
Un marché en constante croissance
Pourquoi ce livre ?
À qui s’adresse-t-il ?
Comment se compose le livre ?
Le fil conducteur
Remerciements
CHAPITRE 1
À la découverte de React Native
React Native, le framework mobile
Le développement mobile, nouvel eldorado
Web mobile, natif ou hybride
Genèse
Installation de React Native
Installation de Node.js
Création d’une nouvelle application
Lancement de l’application mobile
Une application iOS
Une application Android
CHAPITRE 2
Développez votre application
Explorations et modifications
Partons de zéro
Quelques modifications pour comprendre le code
Pour aller plus loin : une application de météo
Conception du fichier MeteoPage.js
Modification du fichier index.ios.js
Actions et fonctions, passons à l’interactivité
Le constructeur
Interaction de la recherche
Fetch
Navigation
Transfert vers une autre fenêtre
Lecture des logs et débogage réseau
Débogage par le code pour iOS
Débogage par Xcode pour iOS
Débogage par le code pour Android
Finalisation de l’application
Améliorations diverses
Améliorations des erreurs
Améliorations graphiques
CHAPITRE 3
Utilisez les ressources de React Native
Utilisation de la géolocalisation
Développement de la géolocalisation
Configuration des autorisations
Les API et les composants
Les API
Les composants
Les plug-ins
Exemple concret
Développez des plug-ins à votre tour
CHAPITRE 4
Approfondir la question
La navigation avec Android et iOS
La différence Android et iOS
Un fichier commun pour l’application
Navigation fluide entre les pages
La navigation sur l’application de météorologie
L’affichage avec flexbox
Affichage en ligne
Affichage en colonne
À vous de jouer
Contribuez !
Le showcase de React Native
CHAPITRE 5
Stratégies autour du mobile
Communication et marketing pour la visibilité
Publication sur les stores : l’envers du décor
Quelques chiffres de téléchargement
Quelques chiffres sur les applications
Tendance des usages
Business model et rentabilité
Application gratuite ou payante
Le fonctionnement des stores
Présentation des fiches Google Play et App Store
Contraintes et spécificités des fiches
L’algorithme de recherche
La mise en avant des applications
L’algorithme de recherche des applications
La découverte des applications sur les stores
CHAPITRE 6
Publication sur les stores
Créez un compte Apple Developer
Créez un compte Google Developer
Envoyez votre application sur l’App Store
Gérons les certificats
Création d’une fiche sur iTunes Connect
Envoi de l’application sur l’App Store
Configuration de l’application sur l’iTunes Connect
Gérer les tarifs et disponibilités
Gérer les informations de la version
Gérer les achats in-app
Les tests de votre application
Test de l’application mobile
Gérer la publication de votre application
Envoyez votre application sur Google Play
Création d’une fiche sur Google Play Developer Console
Envoi de l’application sur le Google Play Developer Console
Les applications instantanées sur le Google Play Developer Console
Gestion de la fiche Play Store
Les tarifs et disponibilités
Gérer les tests de votre application
La publication de votre application
CHAPITRE 7
Marketing et communication des applications
Utilisons le bouche-à-oreille pour démarrer
Améliorations et corrections : le feedback utilisateur
Choix du logo
Lancement en douceur ou open bar
Êtes-vous prêt ?
Déterminons votre campagne marketing
Définition d’une campagne marketing
Le lexique du marketing
Les réseaux sociaux et le marketing
Facebook
Twitter
Snapchat
Les réseaux sociaux et la communication
Facebook
Twitter
Les autres
Mises à jour et notifications
Les mises à jour
Les notifications
CHAPITRE 8
Analyses et statistiques de vos applications
Analyse de votre application sur l’App Store
Les statistiques de votre application
Les sources de téléchargement de votre application
Les ventes et tendances de votre application
Les notes des utilisateurs
La consultation sur mobile
Analyse de votre application sur le Google Play
Les statistiques de votre application
Les sources de téléchargement de votre application
Les ventes de votre application
Les notes des utilisateurs
La consultation sur mobile
CHAPITRE 9
Monétisation des applications
L’usage de la publicité sur l’application
Le choix du placement
Le format adapté
Le timing parfait
Le ciblage
Développer la publicité sur l’application
Ajout de votre application sur AdMob
Ajoutons AdMob à notre application
Ajoutons l’annonce à notre application
Paramètres de blocage à l’application
Créer une publicité sur mobile
Types de campagnes
Créer une publicité Facebook Ads
CHAPITRE 10
Mises à jour et débogages
Mises à jour des composants
Mettre à jour React Native
Mettre à jour NPM
Les bogues courants
Application XXX has not been registered
Erreur de développement numéro 1
Erreur de développement numéro 2
nw_connection
Unable to find this module in its module map
Conclusion
Index
Avant-propos
Pourquoi ce livre ?
Longtemps considéré comme extrêmement complexe, le développement
d’applications mobiles ne s’adresse plus exclusivement aux grandes
entreprises ni aux développeurs fous. Les outils à disposition ont changé et
les règles de ce monde ont été largement assouplies depuis plusieurs années,
à tel point qu’il est désormais accessible à tout un chacun de développer une
plate-forme sur le Web comme sur mobile.
Ce livre doit justement vous permettre de passer les frontières du possible et
d’exploiter l’énorme potentiel qui est en vous et à votre portée – que vous
connaissez déjà et que vous découvrirez encore davantage à la lecture de cet
ouvrage.
Il est également là pour vous montrer que le développement de votre
application mobile sera sujet à de nombreuses réflexions techniques et
algorithmiques, lesquelles laisseront rapidement place à des stratégies
publicitaires et marketing, condition sine qua non au succès de votre plate-
forme mobile.
À
À qui s’adresse-t-il ?
Cet ouvrage est destiné à tous ceux qui sont désireux de monter un projet
d’application mobile et de le promouvoir au plus grand nombre.
Les équipes de développement y trouveront une introduction à React Native
pour concevoir des applications mobiles de qualité en utilisant des
technologies similaires à celles du Web – le HTML, le CSS et le JavaScript.
En quelques chapitres, les bases du développement mobile seront acquises
et laisseront place aux fonctionnalités avancées, dignes des applications
d’aujourd’hui.
Les équipes marketing y découvriront une présentation sur la rentabilité des
applications ainsi que sur les plus grands rouages du marketing mobile.
Votre application passera d’un simple projet à une plate-forme à succès,
rentable et promue massivement.
Remerciements
Ce livre est le résultat de longues périodes de recherche et de
développement autour de notions à la fois simples et complexes de React
Native. De passionnantes conversations, de grandes analyses et de puissants
avancements avec les membres de l’équipe d’IT INNOVE. Un grand merci
à eux !
IT INNOVE n’existerait pas sans ses développeurs et ses graphistes, aussi
chevronnés que passionnés. Elle ne serait rien non plus sans ses clients qui
nous ont honorés de leur confiance lorsqu’ils ont mis le projet entre nos
mains. Chacun d’eux nous a permis d’explorer les différentes facettes de
React Native jusqu’aux notions les plus poussées. Mes pensées vont vers
eux et en particulier Louis, Guillaume, Charles, Réda et Laurie.
Enfin, je tiens à remercier :
Alexandre et toute l’équipe des éditions Eyrolles, pour la confiance qu’ils
m’ont accordée ;
Véronique et Chantal, relectrices, dont les retours m’ont permis de rendre
ce livre encore plus agréable, au-delà du côté technique ;
Mathias, graphiste exceptionnel, dont les talents rendent chaque interface
tellement plus agréable et chaque projet plus captivant depuis tant
d’années ;
Jean-Pierre, développeur talentueux, passionné et passionnant, dont les
nombreuses aides et les idées cadencent mes journées ;
Cléo dont les conseils rythment mon entrepreneuriat et mes projets ;
Ainsi que Gilles, Quentin, Bérenger, ma famille et mes amis, pour leur
soutien intemporel.
1
À la découverte de React Na ve
Genèse
À l’origine de React Native, il y a React.js. À l’instar de jQuery, il s’agit
d’une bibliothèque JavaScript développée par une équipe d’ingénieurs de
Facebook, exclusivement pour Facebook.
Si jQuery permet de développer en JavaScript de manière plus rapide et
plus efficace, React.js change complètement la donne et participe au
développement d’interfaces utilisateurs complètes et puissantes. En effet,
elle autorise un flux constant de l’information en ne rechargeant l’interface
utilisateur qu’en cas de nécessité. Outre les performances de la
bibliothèque, ce sont les bénéfices apportés qui sont notables.
Suite à ce développement, des ingénieurs d’Instagram se sont penchés sur
ce projet et ont commencé à adapter le code pour leur propre utilisation sur
Instagram.
Ce travail a amené les deux équipes à réfléchir à une adaptation grand
public de la bibliothèque. Le code source final a été rendu libre en mars
2013.
Très vite, React.js prend de l’ampleur. Une grande communauté se forme
autour de la bibliothèque et cette dernière est même utilisée par de grands
noms du Web tels que Netflix ou Airbnb.
Fort de ce constat et de cette popularité, Facebook annonce en février 2015
l’arrivée imminente de React Native, un framework qui repose sur les
mêmes composants que React.js, mais totalement adapté au mobile. Il
permet donc de développer de manière native compilée sur iOS, Android et
Windows Phone. À la suite de cette annonce, la technologie est rendue
publique en mars 2015.
Installa on de React Na ve
Maintenant que vous êtes véritablement décidé, il est temps de vous
équiper. Installez-vous à votre bureau, démarrez votre ordinateur. C’est
parti !
Je travaille sur macOS ainsi, tout au long de cet ouvrage, les illustrations se
rapporteront souvent à ce système d’exploitation. Il est toutefois possible de
travailler sur Linux ou Windows. Néanmoins, il vous sera impossible de
compiler votre application iOS ailleurs que sous macOS. En effet, cela
requiert Xcode, le logiciel de développement d’Apple qui est uniquement
disponible sur macOS. Nous verrons les différences par la suite.
Votre ordinateur est démarré ? Lancez votre logiciel de développement, que
ce soit un IDE ou un « simple » éditeur de texte, ainsi que votre invite de
commande (Terminal sur macOS, cmd.exe sur Windows ou Console sur
Linux). Ne vous inquiétez pas si vous n’êtes pas friand de lignes de
commande, cette partie sera très simple.
Allons-y ! Nous allons commencer par installer React Native et ses
composants fondamentaux.
React Native a besoin, comme bon nombre de ses confrères, de Node.js, qui
va permettre de compiler du code JavaScript. Nous allons également avoir
besoin de Watchman et de React-Native-CLI. Cette dernière, acronyme de
Command Line Interface en anglais (pour Interface en ligne de commande
en français), est un logiciel qui s’installe via la console et qui permet toutes
sortes d’actions pour React Native. Le logiciel est « invisible » car – et son
nom ne l’indique pas – il donne juste accès à un certain nombre de
commandes en plus de celles déjà proposées par le système d’exploitation,
que ce soit macOS, Linux ou Windows.
Installa on de Node.js
Pour installer Node.js, et pour de probables futures installations, je vous
conseille d’installer Homebrew sur macOS ou Scoop sur Windows. Ces
deux outils sont effectivement des gestionnaires d’outils et permettent d’en
installer beaucoup très facilement.
Pour installer Homebrew (dont le site web est disponible à l’adresse
https://brew.sh/) sous macOS, allez dans le Terminal, insérez la commande
suivante et exécutez-la :
/usr/bin/ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/
master/install)"
Une fois cette manipulation faite, vous pourrez installer Node.js facilement
avec la simple commande suivante :
brew install node
Attention, cette dernière n’est pas sans risque. Utilisez-la uniquement dans
les environnements où vous en avez le droit. Comme son nom l’indique,
cette commande va supprimer toutes les restrictions – unrestricted – sur
l’utilisateur courant cu pour current user, c’est-à-dire vous.
Une fois ceci fait, installez tout simplement Scoop par la commande
suivante :
iex (new-object net.webclient).downloadstring('https://get.scoop.sh')
De la même manière que pour Homebrew sur macOS, nous allons pouvoir
installer Node.js facilement avec la simple commande suivante :
scoop install node
Pour information, le -g est une option de la commande npm install qui permet
de spécifier que vous installez le programme sur l’ensemble de votre
machine et pas spécifiquement sur votre compte.
Un « petit détail » que vous devez garder en mémoire : pour créer une
application mobile sur iOS (et donc l’uploader sur l’App Store), vous devez
avoir un ordinateur avec macOS à disposition. Cela peut s’agir d’un iMac,
d’un MacBook, d’un Mac Pro ou tout autre produit Apple. Sans cela, vous
n’aurez pas la possibilité de publier une application iOS.
Comme je vous l’ai dit, je suis sur macOS donc cette possibilité m’est
proposée via le react-native run-ios. Ne vous inquiétez pas si ce n’est pas
votre cas.
Maintenant que le projet d’application mobile React Native est établi,
fouillons un peu dans les différents répertoires qui viennent d’être créés.
Allez donc dans le dossier nouvellement généré.
À la racine, le fichier myApp.json contient les informations de l’identifiant et
du nom d’affichage de votre nouvelle application. Vous devriez donc y voir
quelque chose comme ceci :
{
"name": "myApp",
"displayName": "myApp"
}
{
"name": "myApp",
"version": "0.0.1",
"private": true,
"scripts": {
"start": "node node_modules/react-native/local-cli/cli.js start",
"test": "jest"
},
"dependencies": {
"react": "16.0.0-alpha.6",
"react-native": "0.44.0"
},
"devDependencies": {
"babel-jest": "20.0.3",
"babel-preset-react-native": "1.9.2",
"jest": "20.0.4",
"react-test-renderer": "16.0.0-alpha.6"
},
"jest": {
"preset": "react-native"
}
}
CocoaPods
Avant d’aller plus loin, il existe un petit outil qui permet d’installer de
petites bibliothèques pour votre application iOS. Il ne nous servira pas pour
le moment, mais vous en aurez besoin un jour. Vous constaterez alors que sa
simplicité d’utilisation est vraiment intéressante. Il s’agit de CocoaPods, un
outil conçu en Ruby. Cela tombe plutôt bien, Linux et macOS sont livrés
d’office avec une version préinstallée de Ruby.
En ce qui concerne Windows, il va falloir installer RubyInstaller (disponible
à l’adresse https://rubyinstaller.org). Cliquez alors sur Download. Si votre
système d’exploitation Windows est un 64 bits, cliquez dans la colonne de
gauche, sur le premier lien de téléchargement disponible, chez moi Ruby
2.4.1-2 (x64). S’il s’agit d’un 32 bits, cliquez sur le deuxième lien de
téléchargement, chez moi Ruby 2.4.1-2 (x86). Cette version est
naturellement susceptible d’évoluer avec le temps.
Une fois le téléchargement effectué, exécutez le logiciel, acceptez la licence
et installez-le dans le répertoire de votre choix – par défaut dans C:/. À la fin
de l’installation, Ruby Installer vous propose d’ajouter MSYS2, notamment
requis pour installer Gems. Cochez bien la case, car Gems va être
nécessaire pour l’installation de CocoaPods. Par ailleurs, le logiciel vous
propose quelques liens de supports :
Figure 1-1 – Lien de support de RubyInstaller
Le sudo, dans la commande, permet d’avoir les droits en écriture sur macOS,
pour pouvoir installer CocoaPods. Pas de panique, le Terminal va vous
demander votre mot de passe, vous pouvez le taper sans crainte.
Une fois la commande exécutée et le mot de passe saisi, le Terminal va
rechercher la dernière version de CocoaPods (fetch) puis l’installer,
accompagné de différents outils annexes :
Ici rien ne se passe à l’écran, pas d’inquiétude. Vous pourrez constater vous-
même que le fichier Podfile a bien été téléchargé dans le dossier iOS de
l’application.
Nous voilà prêts à débuter.
Sans plus tarder, et parce que je suis sûr que vous brûlez d’envie de mettre
la main à la pâte, lançons cette première application mobile.
L’application pèse 4,55 Go, vous avez le temps d’aller boire un café.
Le café fini et l’installation terminée, vous allez pouvoir la lancer une
première fois, il va alors télécharger – oui, encore – des composants qui lui
sont propres.
Ensuite, nous allons pouvoir lancer le projet de l’application pour la tester.
Pour ce faire, allez dans le dossier iOS et lancez le fichier myApp.xcodeproj.
C’est un fichier propre à Xcode, c’est donc ce logiciel qui va l’ouvrir.
Ce fichier, la partie visible de l’iceberg, permettra à Xcode d’interpréter
l’ensemble de l’application. Comme vous avez pu le constater – ce n’est pas
le seul dans le projet d’application iOS – Xcode va donc avoir besoin
d’indexer l’ensemble des fichiers de l’application. Cela peut être long la
première fois, mais il gardera tout ça en mémoire et ce sera plus rapide dans
vos futurs développements. Une fois l’indexation terminée, Xcode nous
permet de lancer l’application :
Comme vous pouvez le voir sur l’interface, Xcode est prêt, Ready en
anglais. Parfois, comme vous l’avez eu au démarrage du logiciel, il sera en
Indexing. Aussi, quand vous connectez un iPhone, un iPad ou un iPod
Touch, le logiciel vous affichera Processing symbol files ce qui signifie tout
simplement qu’il prépare le téléchargement, depuis votre appareil mobile,
des fichiers propres à l’installation et aux tests de l’application sur le
périphérique quand vous le lui demanderez.
Le simulateur est l’environnement dans lequel va s’afficher votre
application :
À partir d’ici, vous allez pouvoir sélectionner le simulateur sur lequel vous
voulez lancer votre application. Si vous n’avez pas encore de simulateur
disponible, vous allez pouvoir en créer un en cliquant sur Create New
Virtual Device.
De la même manière, si vous connectez un appareil mobile tournant sous
Android, alors le périphérique en question apparaîtra dans la liste des
Connected Devices.
Sélectionnez donc l’environnement que vous préférez, s’il s’agit d’un
simulateur, il se lancera automatiquement quand vous validez la fenêtre.
Pour information, la simulation Android demande énormément de
ressources processeur. J’ai bien peur que vous deviez prendre votre mal en
patience. Dans le cas de mon MacBook Pro, cela a pris plus de deux
minutes ! Nous arrivons sur un simulateur avec l’application.
Malheureusement, il est possible que le lancement de l’application
« plante ». Le simulateur affichera donc un écran rouge – nous aurons
l’occasion de revenir en détail sur ce genre d’écran – avec le message
d’erreur suivant : Error calling AppRegistry.runApplication.
Fort dommage, nous n’avions pas encore commencé à développer et cela
bogue déjà.
En réalité, ce n’est pas de votre faute, mais celle d’Android Studio qui n’a –
encore une fois – pas tout prévu de lui-même. Si vous avez suivi le
lancement d’une application iOS, vous vous souvenez sûrement qu’au
lancement du simulateur iOS, Xcode ouvre un terminal pour effectuer une
commande. C’est justement cette commande que ne lance pas Android
Studio, il va falloir le faire manuellement.
Ouvrez donc le Terminal sous macOS (l’Invite de commandes sur Windows
ou la Console sur Linux) et tapez la commande :
react-native start
Partons de zéro
Nous allons tout reprendre de zéro pour aller petit à petit dans le
développement de l’application. Supprimez donc tout ce code !
Au début du fichier, écrivez :
'use strict';
Ce simple code active le mode Strict, que vous trouverez un peu partout. Il
ajoute une meilleure gestion des erreurs et désactive certaines
fonctionnalités inutiles de JavaScript. Nous l’utiliserons sur l’ensemble des
pages.
Ensuite, nous allons ajouter les composants de React et React Native :
var React = require('react');
var ReactNative = require('react-native');
Comme vous pouvez le voir, ces deux lignes attribuent les composants en
question à des variables, de manière à pouvoir utiliser toutes les
fonctionnalités de React et React Native par la suite.
Comme vous pouvez vous en douter, ces deux composants react et react-
native ont été installés à la création de l’application mobile. Nous aurons
l’occasion d’utiliser d’autres composants, notamment des plug-ins, qui
nécessiteront des téléchargements complémentaires et parfois même des
manipulations au sein de Xcode, d’Android Studio et même au sein des
fichiers de leurs dossiers sources respectifs.
Passons ensuite au cœur de l’application : l’affichage. Nous allons, pour
commencer, afficher un simple Hello World, phrase symbolique de
l’apprentissage de n’importe quel langage de programmation. Sans plus
tarder, voici le code :
Que fait-il ? Il écrit le mythique Hello World dans une classe (class) – c’est
une façon classique de développer dans la plupart des frameworks. Cette
classe représente tout naturellement une fenêtre de votre application mobile.
Elle étend elle-même React.Component, qui est tout simplement le composant
de base de React, pour la construction de l’interface utilisateur.
Dans ce composant, nous trouvons la méthode render qui va se charger de
l’affichage de votre fenêtre de l’application. Dans cette méthode, nous
utilisons le composant Text de React Native pour afficher Hello World avec
un peu de style.
Si vous chargez l’application ainsi, aucun style ne sera appliqué puisque
nous n’avons pas encore écrit le style.
Si vous êtes un développeur web, vous n’allez pas être dépaysé, les styles se
conçoivent presque de la même manière que sur le Web.
Ajoutez donc ce simple CSS juste avant la classe :
Cette ligne aura pour effet de mettre à jour React Native avec les dernières
améliorations et de recréer les dossiers iOS et android disparus avec leur
contenu.
Dernier détail avant de visualiser notre application. Ici, pour le moment,
nous n’avons utilisé qu’une seule méthode de React, rien d’autre. Nous
l’avons vu dans la première partie, React Native utilise un grand nombre de
composants de React, et notamment tous les composants d’interface. Le
principal travail des composants de React Native sera donc d’adapter les
codes de React au mobile.
Aussi, ne soyez pas surpris, au cours du développement, de voir
alternativement des codes utilisant React et React Native.
Enregistrez enfin le fichier index.ios.js, revenez à Xcode, puis lancez le
simulateur de l’application.
Magique ! Votre application apparaît :
Figure 2-1 – Votre premier « Hello World »
Nous avons vu que ce code affichait un Hello World stylisé à notre sauce.
Mais que faire si vous voulez que ce texte rentre dans un autre texte avec un
style différent ? Ou si vous voulez ajouter des boutons ?
React propose des éléments de base – et je parle bien de React, pas de React
Native qui les adapte au framework mobile –, mais nous allons également
pouvoir concevoir notre interface avec des éléments similaires à du HTML.
Il ne s’agit pas de HTML, mais la logique restera la même.
Nous allons transformer notre simple élément texte Hello World en une
interface propre.
À la place de cette ligne de code, je vous propose de mettre :
return <ReactNative.Text style={styles.text}>Hello World </ReactNative.Text>;
Ce code produira exactement le même résultat au lancement de
l’application. Concrètement, vous le voyez vous-même, nous n’y
retrouvons effectivement que notre balise de base ReactNative.Text. Mais il
n’y a plus le React.createElement et c’est tout l’intérêt, car nous allons pouvoir
facilement imbriquer des balises, donc des éléments dans l’interface de
notre application.
Actualisez l’application et vous le constaterez par vous-même.
Petite piqûre de rappel : pour actualiser l’application, rendez-vous sur le
simulateur, descendez en bas de la visualisation du simulateur et cliquez sur
le bouton Reload. Magique !
Bien qu’il soit parfaitement adapté et conforme, nous allons changer ici la
manière de développer et utiliser des import. Comme son nom l’indique,
cette fonctionnalité permet tout simplement d’importer une autre
fonctionnalité au sein du code, de manière totalement transparente, comme
si nous l’avions conçue et développée directement.
Ajoutez donc le code suivant au fichier MeteoPage.js :
Enfin, le cœur de notre fenêtre : la vue. Nous allons ici aussi créer une
classe nommée – de manière très originale – MeteoPage. Cette classe héritera
de Component. Effectivement, plus besoin d’hériter de React.Component comme la
dernière fois puisque l’import s’est occupé de l’assigner directement à une
variable.
Dans cette classe, nous aurons évidemment la méthode render qui se
chargera d’afficher la météo (enfin, juste une zone texte avec la ville
souhaitée et un bouton de recherche, pour le moment).
Voyons ce code :
Ceci étant fait, nous allons devoir faire en sorte d’afficher cette vue
directement à la racine, c’est-à-dire dans le fichier index.ios.js.
Dans un premier temps nous avons import React from 'react' ; tandis que dans
un second temps nous avons import {Component} from 'react'.
Pourquoi ? La réponse se trouve dans la définition de la classe React dans la
bibliothèque React. La première est la classe par default tandis que les
suivantes n’en sont pas.
Si vous êtes amené à créer vos propres classes à l’avenir, vous n’aurez pas
besoin d’accolade en mettant une classe par fichier et en la déclarant ainsi :
Dans ce code, nous prenons le composant – oui, même s’il s’agit de notre
fichier d’interface, on parle malgré tout de composant, de brique logicielle
si vous préférez – MeteoPage auquel on attribue le titre 'Meteo'.
Enregistrez les fichiers et actualisez l’application sur le simulateur :
Figure 2-2 – La première fenêtre de notre applica on de météo
Le constructeur
Avant de parler de la recherche à proprement parler, parlons du
constructeur. Cette méthode, qui n’est pas obligatoire mais très couramment
utilisée en POO, est appelée lors de la construction de la fenêtre.
C’est au sein de cette méthode que nous allons pouvoir initialiser certaines
variables d’état de la fenêtre – que nous pourrons par la suite modifier pour
mettre à jour l’interface.
Nous aurons également la possibilité de récupérer les variables passées en
argument lors de la navigation vers la fenêtre.
Profitons-en justement pour développer ce constructeur. Juste après la ligne
de déclaration de la classe :
class MeteoPage extends Component {
constructor (props) {
}
À l’intérieur de notre constructor, nous allons déjà ajouter un appel à une
méthode aussi intrigante qu’importante : super(). Cette méthode est très
importante, car c’est elle qui initialise le this.
Mais ce n’est pas tout. Pour pouvoir utiliser le paramètre props, autrement
dit nos paramètres passés à la fenêtre, à l’extension du constructor – donc par
exemple dans le render –, nous allons devoir passer props en paramètre de la
méthode super(), de cette façon :
super(props);
this.state = {
maVariable : 'contenu'
} ;
constructor(props) {
super (props);
this.state = {
searchString: 'Troyes'
} ;
}
Interac on de la recherche
Dans un premier temps, il va nous falloir coder les interactions entre le
champ de recherche et le bouton Go. Accrochez-vous, nous entrons dans le
vif du sujet !
onChange
Si vous connaissez un peu le JavaScript – et sa bibliothèque jQuery, la plus
connue des développeurs – vous avez l’habitude des paramètres d’action
comme onClick ou onChange. Ici, nous allons utiliser une propriété similaire
pour React Native, onChange dans le TextInput.
Ajoutez donc la ligne suivante, dans le TextInput du fichier MeteoPage.js, c’est-
à-dire à l’intérieur de la balise :
onChange = { this.onSearchTextChanged.bind(this)}
Value
Nous allons ajouter la ligne suivante au TextInput :
value = { this.state.searchString }
this.state = {
searchString : 'Troyes'
};
onSearchTextChanged
Revenons à nos moutons. Dans la méthode onSearchTextChanged, nous allons
mettre à jour la valeur. Comme nous l’avons vu, le .bind(this) que nous
avons utilisé dans le onChange va permettre de créer une fonction à partir de la
fonction mère, à l’intérieur de laquelle le this ne fera pas référence à la
méthode elle-même comme cela devrait l’être, mais à la fenêtre globale.
Grâce à cela, vous l’aurez compris, nous allons pouvoir modifier le contenu
de la variable this.state.searchString pour mettre à jour l’interface en
conséquence.
Voyons un peu cela :
onSearchTextChanged (event) {
console.log('onSearchTextChanged');
this.setState({
searchString : event.nativeEvent.text }) ;
}
Tout d’abord, on utilise le même principe que onChange mais pour les
boutons, avec onPress. Ajoutez donc cette ligne au bouton :
onPress = { this.onSearchPressed.bind(this)}
Récupéra on de la météo
Pour récupérer la météo, nous allons utiliser le site OpenWeatherMap
(disponible à l’adresse http://openweathermap.org) et notamment son API.
Je vous laisse vous y créer un compte gratuit afin de récupérer une clé
d’API pour les appels.
Une fois celle-ci en votre possession, vous allez pouvoir utiliser la méthode
fetch pour récupérer les données de l’API. Ensuite, l’idée sera de transférer
les données récupérées en les envoyant vers une nouvelle fenêtre de
visualisation des résultats.
Dans un premier temps, nous allons récupérer les données d’API
d’OpenWeatherMap dans la fonction onSearchPressed :
onSearchPressed () {
fetch (
'http://api.openweathermap.org/data/2.5/weather?q=' +
this.state.searchString +
'&unites=metric' +
'&appid=<VOTRE_CLE_API>'
)
.then(response => response.json())
.then(json => this._handleResponse(json.response)));
}
Fetch
Parlons un peu fetch, qui est la méthode phare pour la récupération des
données depuis Internet aujourd’hui.
Une fois la requête API envoyée par le fetch, ce dernier vous renvoie une
réponse via un traitement .then(). Le plus commun est de modifier ladite
réponse, bien souvent du contenu JSON, en simple objet.
Un second traitement .then() permet ensuite d’utiliser ce contenu transformé
dans une seconde méthode, nommée _handleResponse, que nous allons nous
charger de développer.
Avant de passer à cette dernière, évoquons un peu ces fameux traitements
.then(). Vous aurez bien souvent l’occasion de voir cette forme de
développement à l’avenir :
response => response.json()
json => {
// code
// code
// code
}
.catch((error) => {
console.error(error); }
);
fetch('http://my.api.com/api/adress',
{
method: 'POST',
headers: {
'Accept': 'application/json',
'Content-Type': 'application/json'
},
body: JSON.stringify({
firstParam: 'yourValue',
secondParam: 'yourOtherValue'
})
);
Naviga on
Maintenant, occupons-nous de la méthode _handleResponse. Si vous avez été
curieux, vous avez utilisé l’adresse générée dans le fetch pour visualiser les
données ainsi retournées par OpenWeatherMap. Vous avez visualisé
quelque chose comme cela – dans le cas présent, c’est la météo sur la ville
de Troyes :
{
"coord":{
"lon":4.08,
"lat":48.3
},
"weather":[{
"id":800,
"main":"Clear",
"description":"clear sky",
"icon":"01n"
}],
"base":"stations",
"main":{
"temp":294.72,
"pressure":1010,
"humidity":77,
"temp_min":294.15,
"temp_max":295.15
},
"visibility":10000,
"wind":{
"speed":1
},
"clouds":{
"all":0
},
"dt":1504042200,
"sys":{
"type":1,
"id":5620,
"message":0.0035,
"country":"FR",
"sunrise":1503982705,
"sunset":1504031351
},
"id":2971549,
"name":"Troyes",
"cod":200
}
_handleResponse(response) {
var meteoData = {
'icon': 'http://openweathermap.org/img/w/' + response.weather[0].icon +
'.png',
'main': response.weather[0].main,
'city': response.name,
'description': response.weather[0].description,
'temp': response.main.temp
} ;
this.props.navigator.push({
title: 'Météo',
component: MeteoViews ,
passProps: { meteoData: meteoData}
}) ;
}
'use strict' ;
import React, { Component } from 'react'
import {
StyleSheet ,
Image ,
View ,
TouchableHighlight ,
ListView ,
Text
} from 'react-native' ;
<key>NSAppTransportSecurity</key>
<dict>
<key>NSExceptionDomains</key>
<dict>
<key>localhost</key>
<dict>
<key>NSExceptionAllowsInsecureHTTPLoads</key>
<true/>
</dict>
</dict>
</dict>
Nous allons ajouter un autre élément comme ici, dans Exception Domains, avec
les mêmes valeurs que pour localhost.
Comme nous avons modifié le fichier Info.plist, qui constitue une des
pierres angulaires de votre projet Xcode, vous devez relancer Xcode, ainsi
que l’application.
<manifestxmlns:android=http://schemas.android.com/apk/res/android
package="com.myapp"
android:versionCode="1"
android:versionName="1.0">
<uses-sdk
android:minSdkVersion="16"
android:targetSdkVersion="22" />
<application
android:name=".MainApplication"
android:allowBackup="true"
android:label="@string/app_name"
android:icon="@mipmap/ic_launcher"
android:theme="@style/AppTheme">
<activity
android:name=".MainActivity"
android:label="@string/app_name"
android:configChanges="keyboard|keyboardHidden|orientation|screenSize"
android:windowSoftInputMode="adjustResize">
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
<activity android:name="com.facebook.react.devsupport.DevSettingsActivity" />
</application>
</manifest>
Finalisa on de l’applica on
Une deuxième erreur se produit :
__nw_connection_get_connected_socket_block_invoke 5 Connection has no connected
handler
constructor (props) {
super (props);
this.state = {
searchString: 'Troyes' ,
messageString: ''
} ;
}
if (this.state.searchString != '' )
fetch (
'http://api.openweathermap.org/data/2.5/weather?q=' +
this.state.searchString +
'&unites=metric' +
'&appid=<VOTRE_CLE_API>'
)
.then(response => response.json())
.then(json => this._handleResponse(json))
.catch(error => this.setState({
messageString : 'Une erreur s\'est produite : ' + error
})) ;
} else {
this.setState({
messageString : 'La zone de recherche est vide'
})
}
_handleResponse (response) {
if (response.cod == '502') {
this.setState({
messageString : 'Cette ville n \' existe pas !'
})
} else {
console.log(response) ;
var meteoData = {
'icon': 'http://openweathermap.org/img/w/' + response.weather[0].icon
+ '.png',
'main': response.weather[0].main,
'city': response.name,
'description': response.weather[0].description,
'temp' : response.main.temp
} ;
this.props.navigator.push({
title: 'Météo',
component: MeteoView,
passProps: { meteoData : meteoData }
}) ;
}
}
<View style={styles.separator}/>
<View style={styles.heading}>
<TouchableHighlight style={styles.button}
underlayColor='#99d9f4' >
<Text style={styles.buttonText}
onPress={this.onFivePressed.bind(this)}>
Météo sur 5 jours
</Text>
</TouchableHighlight>
</View>
Ce code renvoie donc, lorsque l’on clique dessus, vers une méthode
onFivePressed, avec pour argument this, autrement dit le bouton ; nous
n’avons besoin de rien de plus puisque nous savons déjà sur quelle ville
l’utilisateur a effectué sa recherche.
Travaillons désormais sur le procédé onFivePressed :
onFivePressed(city) {
fetch(
'http://api.openweathermap.org/data/2.5/forecast?q=' +
this.props.meteoData.city +
'&units=metric' +
'&<VOTRE_CLE_API>'
)
.then(response => response.json())
.then(json => this._handleResponse(json)) ;
}
_handleResponse(response) {
var meteoFiveData = {
'city': response.city.name,
'list' : response.list
} ;
this.props.navigator.push({
title: 'Météo sur 5 jours sur '
+ meteoFiveData.city,
component:MeteoFiveView,
passProps: { meteoFiveData:meteoFiveData}
}) ;
}
constructor(props) {
super(props) ;
var dataSource = new ListView.DataSource(
{ rowHasChanged: (r1,r2)=>r1!==r2}
) ;
this.state = {
dataSource: dataSource.cloneWithRows(this.props. meteoFiveData.list)
} ;
}
render() {
var meteoFiveData = this.props.meteoFiveData ;
return(
<ListView
dataSource={this.state.dataSource}
renderRow={this.renderRow.bind(this)} />
) ;
}
Comme prévu, nous avons bien les deux paramètres, à une petite différence
près ici encore : le renderRow récupère son affichage via une méthode. Cela va
nous permettre, par la suite, de faire des modifications sur cet affichage,
d’ajouter de petites fioritures, etc.
Voyons donc sans plus tarder la méthode renderRow, qui prend pour
paramètres directs les données de la liste :
renderRow(rowData, sectionID, rowID) {
return(
<TouchableHighlight
underlayColor='#dddddd'>
<View>
<Text style={styles.temp}>
Le {rowData.dt_txt}
</Text>
<Text style={styles.description}>
Météo {rowData.weather['0'].description}
</Text>
<Text style={styles.temp}>
Température : {rowData.main.temp}
</Text>
<View style={styles.separator}> </View>
</View>
</TouchableHighlight>
) ;
}
U lisa on de la géolocalisa on
Nous avons désormais toutes les connaissances nécessaires et
fondamentales pour affronter le développement d’application mobile avec
React Native. Allons maintenant un peu plus loin et parlons des API, des
composants et des plug-ins.
Cela étant dit, nous n’évoquerons pas ici les API de la même manière que
dans le chapitre précédent – à savoir mises à disposition par des sites
Internet –, mais des API fournies directement par React Native dans le
cadre du développement de notre application mobile.
En effet, c’est l’un des avantages de React Native. Il propose un
environnement de développement complet, adapté et des outils créés pour
aider à concevoir son projet le plus efficacement possible. De nombreux
plug-ins sont également disponibles, offerts par la communauté open source
de ce framework, pour utiliser les fonctionnalités de l’appareil sur lequel
l’application est installée.
Vous allez pouvoir utiliser la ou les caméras de l’appareil, la
géolocalisation, l’accéléromètre et bien d’autres choses encore. Et
justement, avant de voir la théorie sur ces outils, voyons un cas pratique.
Développement de la géolocalisa on
Dans un premier temps, nous allons étudier le principe et le développement
de la géolocalisation sur notre application. De nos jours, la géolocalisation
des utilisateurs constitue l’une des forces majeures des applications
mobiles.
Le consommateur, mis au centre de l’attention, a ainsi accès à différentes
informations sur ce qui se passe autour de lui. L’éditeur d’applications, lui,
s’enrichit progressivement de données très importantes, qu’il pourra par la
suite utiliser dans le cadre de campagnes marketing et publicitaires. Nous
aurons l’occasion de le voir dans les prochains chapitres.
Une fois l’étude de la géolocalisation faite, nous passerons rapidement à
l’ensemble des fonctionnalités utilisables avec une application React
Native, car vous aurez les armes pour les comprendre et les utiliser.
Si vous avez déjà des notions de géolocalisation en mode web, cela devrait
être très simple, car cette API utilise celle du Web. Vous pourrez en
apprendre plus sur le site Developer de Mozilla :
https://developer.mozilla.org/en-US/docs/Web/API/Geolocation.
Pour cette utilisation de la fonction de géolocalisation, nous allons
reprendre notre fabuleuse application météorologique.
Le but de l’exercice va être simple : ajouter un bouton Géolocalisation en
page d’accueil, ce qui permettra, plutôt que de taper le nom d’une ville et de
cliquer sur Go, d’accéder directement à la météo de la ville où est situé
l’utilisateur.
Allons-y, commençons. Comme je vous l’ai dit, cela va se passer sur la
page d’accueil. Rendez-vous sur MeteoPage.js. Nous avons le champ de
recherche et le bouton Go à sa droite, ajoutons un bouton Géolocalisation
en dessous.
Dans le render du fichier MeteoPage.js, il va falloir mettre ce nouveau bouton
juste au-dessus de la base <Text> du message :
<View style={styles.flowRight}>
<TouchableHighlight style={styles.button}
underlayColor='#99d9f4'>
<Text style={styles.buttonText}
onPress={this.onGeolocationPressed.bind(this)}>
Géolocalisation
</Text>
</TouchableHighlight>
</View>
onGeolocationPressed() {
navigator.geolocation.getCurrentPosition(
location => {
var search = location.coords.latitude + ', ' +
location.coords.longitude ;
fetch(
'http://api.openweathermap.org/data/2.5/weather?lat=' +
location.coords.latitude +
'&lon=' +
location.coords.longitude +
'&units=metric' +
'&appid=<VOTRE_CLE_API>')
.then(response => response.json())
.then(json => this._handleResponse(json))
.catch(error =>
this.setState({
messageString : 'Une erreur s\'est produite : ' + error
})) ;
} ,
error => {
this.setState ({
message: 'Une erreur s\'est produite lors de l\'obtention de la
localisation : ' + error
}) ;
}
) ;
}
Comme vous pouvez le constater, la requête API n’est pas la même. Nous
devons l’adapter, sachant que la localisation de l’utilisateur sera connue via
sa latitude et sa longitude. OpenWeatherMap prend très bien en charge cette
différence au travers d’autres paramètres GET disponibles. Vous pourrez en
trouver encore d’autres sur le site de la documentation d’OpenWeatherMap.
En revanche, nous n’avons pas besoin de modifier la méthode _handleResponse
puisque la réponse sera de la même forme. En effet, une fois la météo
récupérée, un simple transfert convient parfaitement.
Les API
Je vous propose de vous rendre directement sur le site web de React Native
à la page https://facebook.github.io/react-native/docs/getting-started.html.
Sur cette dernière, dans le menu de gauche, vous découvrirez l’ensemble
des API à votre disposition (voir figure 3-7).
image
Figure 3-7 – Liste des API de React Na ve
Dans ces pages (en anglais évidemment), vous trouverez des exemples pour
chacune des API, leurs paramètres obligatoires et facultatifs, leurs options,
les retours, la façon de coder, etc.
Ce site n’est autre que le couteau suisse du développeur que vous êtes
devenu. Et ça tombe bien puisque, si vous en êtes arrivé à ce stade de
l’ouvrage, je suis persuadé que vous saurez très bien vous y prendre.
Attention : souvenez-vous qu’à un moment j’évoquais les fonctionnalités
(API et Components) qui n’étaient accessibles qu’à certaines plates-formes.
Cela n’a pas été le cas dans cet ouvrage, pour permettre à tous les lecteurs
de suivre le fil du développement. C’est néanmoins totalement possible de
s’y trouver confronté.
Certaines API ont également des développements spécifiques sur chacune
des plates-formes dont il faudra tenir compte – donc il faut détecter la plate-
forme où l’on exécute l’application et lancer le script correspondant.
Les composants
Vous avez également dû les remarquer sur le site officiel de React Native,
dans le menu de gauche : les Components (figure 3-8).
Là encore, même chose que pour les API. Chaque page vous documente sur
la façon dont chaque composant se développe, avec leurs rendus et les
différentes méthodes à appeler auparavant.
En effet, tandis que les API sont des codes de type back pour le
fonctionnement de l’application, les composants sont des codes de type
front pour le rendu de l’application, autrement dit des codes pour les
méthodes render.
Une fois de plus, certains composants sont disponibles sur quelques plates-
formes uniquement.
Méfiez-vous, quand vous ajoutez un composant à votre rendu, une des
erreurs les plus courantes est d’oublier d’inclure le composant en question
dans votre code – via un import par exemple.
À ce sujet, sachez que la dernière partie du dernier chapitre – les annexes –
sera consacrée aux erreurs courantes sur React Native.
Vous voilà désormais paré !
image
Figure 3-8 – Liste des composants de React Na ve
Les plug-ins
Si les API et les Components sont des ressources officielles mises à
disposition par l’équipe React Native chez Facebook, la communauté open
source a également joué son rôle dans le développement du framework.
Elle a notamment participé à l’élaboration de ce que l’on peut appeler des
plug-ins. À la manière des plug-ins dans des CMS comme WordPress ou
des bundles dans des frameworks web comme Symfony, ils apportent un
plus non négligeable à notre développement.
Quand vous cherchez à développer une fonctionnalité, ayez donc ce réflexe
et faites une recherche dans votre navigateur préféré. Vous découvrirez
peut-être un plug-in dont la page officielle – créée par son développeur en
open source – vous listera les étapes à suivre pour intégrer le plug-in. Ce
sont généralement les mêmes étapes que pour les API et les Components, à
la différence qu’il faudra importer les fichiers du plug-in dans l’application,
alors que ceux des API et Components sont déjà importés par React Native
lui-même.
Trêve de discussion, prenons un cas concret.
Exemple concret
Imaginons que, pour les besoins d’une utilisation hors ligne de votre
application, vous ayez besoin d’enregistrer l’ensemble des données que
génère l’utilisateur sur l’application avant de les retransmettre à votre
serveur – pour les enregistrer dans la base de données – dès que la
connexion du téléphone est revenue.
Vous allez donc vous renseigner sur une API qui permet de gérer un
stockage des données sur l’application. Encore une fois, les API permettent
d’ajouter des fonctionnalités au backend de votre application (autrement dit
aux algorithmes), tandis que les Components permettent d’en ajouter au
frontend, autrement dit à l’interface. Ici, nous sommes donc bien sur des
fonctionnalités d’API.
Après être allé naturellement sur le site de React Native, vous êtes arrivé
sur l’AsyncStorage. Néanmoins, cette API ne vous convient pas, elle est
trop restrictive et ne permet pas de réaliser tout ce dont vous avez besoin –
oui, vous ou votre client êtes exigeant.
Vous allez ainsi vous mettre en quête d’un plug-in. Une petite exploration
sur « react native storage » dans votre moteur de recherche habituel et vous
découvrez parmi les premiers résultats : https://github.com/sunnylqm/react-
native-storage.
Disponible sur le site de GitHub – où vous trouverez 95 % des plug-ins
existants, tous CMS/frameworks/bibliothèques confondus, cet espace étant
le plus communément utilisé par les développeurs comme vous –, il vous
explique, sur sa page principale, comment l’installer (voir la figure 3-9).
Vous l’aurez compris, dès la première lecture du fichier ReadMe de ce plug-in,
vous allez devoir effectuer un certain nombre d’étapes pour parvenir à vos
fins.
Vous allez devoir installer le plug-in avec npm pour télécharger les fichiers du
plug-in. Celui-ci, que nous avons installé au début de l’ouvrage avec
l’ensemble des outils de React Native, ne devrait donc pas être un frein.
Ensuite, vous allez devoir importer le plug-in – comme nous le ferions pour
les API et les Components – avec un import X from Y ;
Dans le cas présent, ce plug-in utilise l’API que nous avons vu plus haut sur
le site de React Native pour l’améliorer et en compléter les fonctionnalités,
nous allons donc devoir importer également cette API.
Puis vous utilisez le plug-in, d’une manière ou d’une autre. Généralement,
les plug-ins proposent plusieurs paramètres possibles ; le fichier ReadMe vous
les expliquera un à un et vous permettra d’utiliser le plug-in du mieux
possible.
image
Figure 3-9 – Les explica ons du plug-in sur GitHub
Développez des plug-ins à votre tour
Si vous en êtes arrivé à ce stade de l’ouvrage, vous faites donc bel et bien
partie de la communauté des développeurs de React Native. À votre tour, si
vous constatez que vous développez une fonctionnalité qui n’est pas encore
disponible sous forme de plug-in, de créer le vôtre.
Il y a différents avantages notables à cette idée :
• De par les commentaires et les aides des autres développeurs, vous
améliorerez votre plug-in et pourrez ainsi progresser dans le domaine.
• Si votre plug-in devient connu, vous gagnerez en notoriété.
• Si vous gagnez en notoriété, vous pourrez facilement ajouter cette petite
note à votre CV, car cela constitue un point très important dans certaines
sociétés qui prônent l’open source.
• Si vous n’êtes pas fan de l’open source dites-vous, qu’à terme, vous
gagnerez de nombreuses heures de développement grâce à de talentueux
développeurs qui rendent leurs sources publiques. En retour, fournir
certaines fonctionnalités que vous avez développées open source semble
être une bonne action.
Voilà, à vous de jouer !
4
Approfondir la ques on
'use strict';
// Container react
const App = StackNavigator({
Home: { screen : PageHome },
},{});
export default App;
Après une petite explication sur la raison d’être du plug-in, une description
nous expose les différentes manières de l’installer sur une application React
Native. Je vous invite à utiliser la version npm dont nous avons plus
l’habitude.
Retournez dans votre invite de commande et copiez la commande suivante :
npm install –save react-navigation
Nous avons fait un petit retour en arrière puisque nous sommes revenus à
l’application de base, mais nous allons rapidement apporter des
modifications à notre application de météo pour utiliser toute la puissance
de ce plug-in.
Avant cela, si l’application ne fonctionne pas, je vous invite à télécharger
les fichiers de l’application pour vérifier que vous ne vous êtes pas trompé
dans la saisie : http://www.editions-eyrolles.com/dl/0067563.
L’ordre de ces pages est important. La première sera celle qui sera affichée
au lancement de l’application.
De même, n’oubliez pas d’installer sur cette application également le plug-
in React Navigation.
Dans les fichiers index.android.js et index.ios.js, nous pouvons reprendre les
mêmes développements que précédemment.
Enfin, dans les divers fichiers de l’application, nous allons devoir définir les
méthodes de navigation entre les différentes pages. Pour cela c’est très
simple et je vous laisse le faire de votre côté. Utilisez la méthode navigate du
paramètre navigation de la variable props :
this.props.navigation.navigate(MeteoPage, {meteoData: meteoData});
De cette manière, vous pourrez passer facilement d’une page à l’autre sans
aucun souci.
Je ne l’ai pas précisé, mais le plug-in de navigation permet justement de
simplifier celle-ci. Après la préparation du terrain – ce que nous venons de
faire –, il améliore et assouplit le transfert de l’utilisateur entre les fenêtres.
De cette manière, vous allez pouvoir supprimer l’ensemble des variables de
require entre les différentes pages de l’application.
Affichage en ligne
L’affichage flex permet de gérer la ligne selon des dimensions en hauteur et
en largeur, comme l’exemple suivant :
Ici, nous avons donc trois carrés de 50 par 50, les uns à côté des autres,
alignés dans la largeur. Nous pouvons également gérer la largeur par des
flex eux-mêmes de la façon suivante :
Affichage en colonne
L’affichage flex permet de gérer la colonne selon des dimensions en hauteur
et en largeur, comme l’exemple suivant :
À vous de jouer
Voilà, nous arrivons à la fin de la partie concernant React Native à
proprement parler.
Dans la prochaine partie, nous verrons l’ensemble des points concernant le
marketing mobile. Enfin, nous verrons comment créer un compte Apple
Developer pour mettre son application iOS en ligne, ainsi qu’un compte
Google Developer pour mettre son application Android en ligne.
Je vous laisse vous amuser un peu avec l’actuelle application météo.
Contribuez !
Sachez que le site officiel de React Native ainsi que l’ensemble des
ressources qu’il contient a été rendu open source par Facebook.
À vous de contribuer à loisir à toutes ces ressources.
Le showcase de React Na ve
Petite anecdote intéressante : vous pourrez découvrir, sur le site de React
Native, une page concernant le showcase : https://facebook.github.io/react-
native/showcase.html.
Cette page liste l’ensemble des applications qui ont été conçues sous React
Native. Elles ont été réalisées par différentes sociétés et ces dernières ont
rendu public le choix de la technologie utilisée – en l’occurrence React
Native. Comme je vous le disais en introduction, React Native a pris
énormément d’ampleur, au point que certains géants high-tech l’ont choisi
pour développer leurs applications.
Parmi elles, nous retrouverons sans surprise Facebook, avec ses
applications et celles de ses filiales, comme Instagram. Nous reconnaîtrons
également Airbnb ou encore SoundCloud avec son application Pulse.
Sur cette ligne, il n’y a évidemment que les applications dont les éditeurs
ont annoncé publiquement le choix de React Native. Bien d’autres
applications sont conçues sous ce framework.
D’ailleurs, sous chaque application, vous pourrez découvrir un lien vers
l’annonce en question – qu’elle vienne d’un blog ou d’une autre source
officielle.
5
Stratégies autour du mobile
Communication et marketing pour la visibilité
Si cette étape peut paraître anodine, elle est en fait cruciale pour le succès
de votre application. Dans cette partie de l’ouvrage, nous allons voir tout ce
qui a trait à la publication – de la création de votre compte Apple
Developer et Google Developer jusqu’à la maîtrise des fiches dans les
magasins d’applications –, à la communication, au marketing et surtout à la
rentabilité de votre projet.
Bien plus qu’auparavant, se faire une place dans le cœur des mobinautes
relève d’un travail de grande envergure sur les stores. Cela demande aussi
une présence solide sur les réseaux sociaux et requiert surtout un choix
stratégique de rentabilité. Car si l’argent ne rentre pas, vous ne pourrez pas
mener de campagnes marketing ; sans marketing, pas de visibilité, sans
visibilité, pas de téléchargement et d’achat sur votre application, et on
tourne sans fin dans les abysses des stores.
Mais ne paniquons pas. Cette guerre, vous l’avez probablement déjà menée
sur Internet, via un site. Bien que l’approche soit foncièrement différente
dans cet autre secteur technologique, avec des acteurs et des moyens
différents, l’idée reste la même : se faire une place sur l’écran d’accueil des
smartphones et y rester !
Dans ce cas de figure, la société éditrice a tout gagné. Vous utilisez déjà sa
plate-forme, probablement via un site web, et avez juste envie de pouvoir
l’utiliser sur votre smartphone ou votre tablette tandis que vous n’êtes plus
devant l’écran de votre ordinateur. Ici, pas de marketing, peut-être de la
communication – pour mettre en avant une application mobile.
L’application va être téléchargée, gratuitement ou non, et va probablement
rester au moins un moment sur votre écran d’accueil.
Pour mieux comprendre ce parcours et les perches tendues par les éditeurs
pour vous amener sur leur application, évoquons un peu les chiffres
d’utilisations et d’usages.
Cela ne laisse, il est vrai, que très peu de place pour votre application.
Mais, avec une forte valeur ajoutée, il y a toujours moyen de repousser les
limites du possible.
Utilisation courante
Les Millennials
Ils utilisent énormément les réseaux sociaux, ce sont eux qui ont fait et qui
font encore le succès de Snapchat notamment.
Nous avons vu les chiffres des stores et vous savez le combat qu’il vous
reste à mener après l’étape du développement. Pour publier l’application,
de nombreux choix stratégiques vont se poser. L’un d’eux n’est autre que la
création de fiches sur les App Store et Google Play, avec son lot de
contraintes et d’obligations. Nous aurons l’occasion d’y revenir très
rapidement dans la suite de l’ouvrage.
Application gratuite
Une fois ceci fait – vous ferez partie des 59 % de première utilisation –, vos
utilisateurs auront la possibilité de quitter l’application, de la désinstaller ou
juste de l’oublier.
Libre à vous d’utiliser des campagnes marketing pour retenir les utilisateurs
en question. Après tout, il est beaucoup plus simple et moins coûteux de
retenir vos utilisateurs une fois leur inscription ou leur connexion effectuée,
plutôt que de convaincre de nouveaux utilisateurs de télécharger
l’application et de s’y inscrire.
Application payante
Le modèle freemium
Vous avez fait votre choix entre application gratuite ou payante ? Il est
temps de comprendre maintenant le fonctionnement des magasins
d’applications (autrement appelés stores), pour mieux comprendre les
contraintes et spécificités de ces plates-formes.
En outre, pour pouvoir publier votre fiche sur l’App Store et Google Play, il
va falloir que vous respectiez certains formats obligatoires – qui parfois
changent d’un store à l’autre, pour ne rien arranger. Et avant même de
pouvoir publier l’application et de respecter les standards de
développement. Voyons cela de plus près.
image
Sur Android, vous serez directement redirigé vers Google Play Store sur la
fiche de l’application :
image
Ensuite, juste à côté, vous verrez le logo. Nous le verrons dans les
spécificités techniques, le logo doit avoir des caractéristiques particulières –
et différentes pour Google et Apple. Et pour cause ! C’est le même logo qui
apparaîtra sur la fiche App Store ou Google Play et sur la page d’accueil du
smartphone de l’utilisateur.
image
Bien que vous n’ayez pas d’influence possible sur la suite de la fiche, il est
malgré tout intéressant de s’y attarder. Ainsi, en dessous de la description
de l’application, vous trouverez les avis, sous forme d’étoiles et de
commentaires. Ces derniers, auxquels vous pourrez répondre avec une
plume bienveillante, serviront principalement à promouvoir votre
application entre les utilisateurs. Ils pourront y mettre leur avis et la noter
avec des étoiles. Inutile de vous dire que ces avis entreront grandement
dans l’algorithme de recherche des stores (nous aurons l’occasion d’y
revenir dans la suite de ce chapitre).
image
Il s’agit d’un petit texte descriptif de l’éditeur pour mettre en avant les
améliorations et les corrections de bogues réalisées sur la dernière version.
Lorsque l’utilisateur met à jour votre application, c’est ce texte qu’il va
pouvoir consulter directement.
À la fin de la fiche, certaines informations, bien que moins importantes,
s’affichent. C’est le cas de la version de l’application, du nombre
approximatif de téléchargements et des droits que demande l’application
sur le smartphone de l’utilisateur.
image
Sur iOS, vous serez directement redirigé vers l’App Store sur la fiche de
l’application (voir figure 5-6).
image
Dans un premier temps donc, nous allons voir le nom. Comme pour Google
Play, c’est l’élément fondamental de votre application. C’est grâce à ce titre
que votre application sera recherchée et grâce à lui que votre application
sera ouverte sur les smartphones. Une petite spécification sur laquelle
j’aurai l’occasion de revenir : jusqu’à iOS 11, disponible depuis septembre
2017, le nom de votre application pourra être plus long pour les
algorithmes qu’à l’affichage, l’objectif étant d’y mettre des mots-clés
déterminants.
Comme vous l’avez remarqué, la nouveauté de la version est bien plus mise
en avant que sur Google Play. Apple apporte beaucoup plus de valeur aux
applications qui bougent et aux mises à jour. L’implication d’un éditeur à
répondre aux demandes des utilisateurs est ce qui fait l’attractivité de son
application. Là encore, cette description coupée demande un esprit de
synthèse et de bonnes phrases d’accroche afin de prouver aux nouveaux
venus que vous êtes à l’écoute de vos utilisateurs.
image
Le cadre principal de la page se finit sur les avis (que vous ne verrez pas
sur cette application, je vous laisse le soin de fouiller un peu). Ici encore, ils
serviront à promouvoir votre application entre les utilisateurs. Ils pourront
y mettre leur avis et ajouter leur notation sous forme d’étoiles. Ces avis
serviront également dans l’algorithme de recherche.
La page s’arrête là mais, comme vous le voyez, sous le logo se trouvent des
informations qui peuvent être utiles.
image
En tout premier lieu, vous verrez un lien pour afficher l’application sur
iTunes. En effet, c’est ce logiciel qui va permettre à l’utilisateur de
télécharger l’application sur son ordinateur pour pouvoir ensuite
synchroniser son smartphone et la récupérer.
Ensuite, une petite information sur les plates-formes sur lesquelles est
disponible votre application. Il peut y avoir l’iPhone et/ou l’iPad, mais
également sous forme de plug-in pour iMessage et sous forme d’application
pour l’Apple Watch. Enfin, certaines informations, bien que moins
importantes, s’affichent, telles que la version de l’application, le poids, les
langues et même la compatibilité.
Sur cette page-ci, comme aucune note n’a été postée, un texte l’indique.
Dans le cas contraire, la page affiche le nombre d’avis et la note moyenne
sur la dernière version de l’application, ainsi que sur tous les avis laissés.
Nous avons pu le voir, les fiches Google Play et App Store sont légèrement
différentes, en ce qui concerne l’affichage et la prise en compte des
informations.
Le titre
Du côté de l’App Store, c’est un peu spécial. Jusqu’à iOS 10, le titre doit
faire au maximum 75 caractères sur l’App Store, mais seuls 54 caractères
sont visibles par l’utilisateur. Les autres ne servent qu’à optimiser
l’algorithme de recherche. À partir de iOS 11, sorti en septembre 2017, le
titre ne fait plus que 30 caractères sans distinction entre le visible et
l’algorithmique comme Google Play.
Le sous-titre
C’est une nouvelle façon de mettre en avant votre application pour attirer
de nouveaux utilisateurs.
La vidéo de présentation
Les fiches Google Play et App Store proposent désormais d’ajouter des
vidéos de démonstration : 15 à 30 secondes pour Apple, 30 secondes à 2
minutes pour Google, via YouTube.
Les catégories
Google Play n’autorise qu’une seule catégorie, alors qu’il y en a trois sur
l’App Store. Sur les deux plates-formes, la ou les catégorie(s) a/auront une
importance dans l’algorithme de recherche.
L’algorithme de recherche
Les mises en avant sont le moyen pour Google et Apple de proposer les
meilleures applications pour rendre le smartphone de l’utilisateur encore
plus puissant, productif et intelligent. Du côté de l’éditeur de l’application –
qui est contacté au préalable pour apporter des éléments à la campagne
marketing que représente cette mise en avant – il s’agit d’une aubaine.
Cette application est susceptible d’être téléchargée plusieurs dizaines, voire
centaines de milliers de fois et d’assurer un nombre très important de
nouveaux utilisateurs – et donc de nouvelles inscriptions – sur
l’application. Elle permettra également de relancer le bouche-à-oreille.
Ces mises en avant ne sont généralement pas le fruit du hasard. Elles font
suite à des publications – parfois sponsorisées – de votre application sur des
sites d’actualité américains bien connus. Cette couverture médiatique, qui
aura probablement déjà apporté son lot d’utilisateurs, ne constitue que le
début du processus de communication de votre application à la
communauté d’utilisateurs Android ou iOS.
Cela étant dit, ne vous inquiétez pas si vous n’êtes jamais sélectionné. Votre
application n’en sera pas moins un succès international sans cela. Les
équipes d’Apple et de Google peuvent même prendre connaissance de votre
application plus tard. Si vous n’êtes pas sélectionné, il vous reste
néanmoins à optimiser les données de votre application pour vous assurer
que chaque recherche correspondante mène vers elle.
Chez Apple tout d’abord, le titre a son importance. Outre le titre public
affiché aux utilisateurs, nous avons vu que les derniers caractères du titre ne
sont pas visibles et servent uniquement à optimiser la recherche de votre
application. Depuis septembre 2017 et la version iOS 11 néanmoins, la
donne a changé et, à l’instar de Google Play, les 30 caractères du titre sont
aussi importants pour l’utilisateur que pour l’algorithme de recherche.
Ensuite, le nombre moyen d’étoiles ainsi que le nombre d’avis laissés ont
un impact significatif sur cet algorithme. Outre le fait que le nombre
d’étoiles influence fortement le comportement des utilisateurs en matière
de téléchargement, cette donnée s’avère cruciale dans l’algorithme de
recherche. D’ailleurs, sur l’App Store, les avis laissés sur la dernière
version sont pris en compte différemment de ceux laissés sur les
précédentes. Apple prend en compte le fait que votre application évolue.
Les mises à jour de votre application, elles aussi, sont importantes aux yeux
d’Apple et de Google. Une application qui n’est jamais mise à jour
risquerait de chuter dans le classement tandis qu’une application que
l’éditeur améliore régulièrement est mieux considérée.
Enfin, donnée non influençable mais très importante, le nombre de
téléchargements, de clics sur la page et même d’utilisations. En effet, même
si l’utilisateur ne le sait sûrement pas, Apple et Google enregistrent chaque
clic et chaque téléchargement des applications. En tant qu’éditeur, vous
aurez ainsi accès à un récapitulatif de l’évolution de l’application auprès de
vos utilisateurs.
Nous aurons l’occasion d’y revenir par la suite dans la partie marketing de
l’ouvrage : vos applications ne sont pas uniquement découvertes par
l’intermédiaire du moteur de recherche des différents stores. De nouveaux
moyens de communication permettent d’amener le futur utilisateur vers
votre application.
En tant que développeur individuel, vous pouvez tout autant publier des
applications que les autres, mais votre compte est solo, vous ne pourrez pas
associer d’autres personnes. Vous êtes le seul à y avoir accès.
A contrario, un compte Entreprise vous donne la possibilité de lier d’autres
comptes Apple à l’organisation. Ainsi votre équipe de développeurs pourra
gérer les certificats, votre équipe marketing aura accès aux statistiques et la
direction pourra payer les factures.
Ce sont les deux utilisations les plus courantes. Pour information, il est
possible de passer facilement d’un type d’entité à l’autre.
Pour franchir cette étape, vous allez devoir remplir toutes les informations
vous concernant ou relative à votre entreprise, puis signer le contrat avec
Apple Developer. Enfin, vous devrez vérifier l’ensemble des informations
de votre compte ainsi que vos coordonnées :
Figure 6-2 – Récapitula f Apple Developer Enrollment
Vient alors la douloureuse conclusion. Vous allez devoir accepter les frais
liés à cet enregistrement. Apple vous associe un numéro d’enrollement (ici
grisé) :
Ça y est, votre inscription est finalisée. Vous êtes désormais Google – tiers
– Developer.
Nous allons désormais pouvoir publier votre application sur l’App Store et
Google Play.
Dans la liste, prenez le premier, iOS App Development, puis validez tout en
bas sur Continue :
Figure 6-12 – iOS App Development
Vous arrivez sur une page où vous allez pouvoir télécharger un fichier .cer :
Figure 6-14 – Télécharger le fichier .cer
En bas de la page, vous allez pouvoir déclarer utiliser des services dans
votre application, comme des notifications, le paiement avec Apple Pay ou
d’autres choses encore. Cochez les services désirés. Les services Game
Center et In-App Purchase sont cochés automatiquement. Ils servent
respectivement à lier les données utilisateurs aux données de jeux et à
utiliser les achats intégrés à l’application.
Cliquez sur Continue, nous avons alors un petit récapitulatif de notre
nouvelle application :
Figure 6-17 – Récapitula f de la nouvelle applica on
Bien que nous ne développions pas cette application pour l’Apple Watch, je
coche malgré tout cet appareil.
Et sur la dernière page, nommez ce profil. Dans mon cas, myAppForDemo
Development :
Enfin, nous allons générer l’application puis l’envoyer. Dans la liste des
simulateurs, sélectionnez tout en haut Generic iOS Device. Puis dans le
menu Product, sélectionnez Archive :
Figure 6-30 – Générer l’archive
Xcode va mouliner pour générer l’application puis ouvrir une fenêtre : celle
de la liste de toutes les archives de toutes vos (futures) applications.
Sélectionnez l’archive souhaitée, celle que vous venez de créer, puis cliquer
sur Upload to App Store :
Validez le choix de votre compte. Vous arrivez alors sur une fenêtre avec
plusieurs options :
Figure 6-32 – Op ons d’envoi sur l’App Store
image
Figure 6-40 – Choix des pays de disponibilité sur l’iTunes Connect
image
Figure 6-41 – Informa ons générales sur l’iTunes Connect
La partie Game Center vous sera utile dans le cadre d’une application de
jeu vidéo.
La partie de vérification vous servira à définir un compte pour l’équipe de
validation d’iTunes Connect. En effet, dans le cadre d’une application plate-
forme, où l’accès à des données est régi par la connexion à un compte strict,
cette partie sera obligatoire pour que l’équipe de validation ne reste pas
simplement à la fenêtre de connexion ou d’inscription.
Pour finir, la partie de publication pourra être intéressante si vous publiez
sur App Store et Google Play. En effet, vous savez déjà que l’App Store
prend entre un et trois jours pour valider et publier votre application, tandis
que le Google Play publie instantanément votre application. L’idée est donc
de faire une publication simultanée.
Vous ferez donc valider votre application par l’équipe d’iTunes Connect en
publication manuelle. Après cela, vous mettrez à jour l’application sur le
Google Play, puis vous ferez la publication manuelle sur l’App Store.
image
Figure 6-42 – Sélec on de l’achat in-app
Comme vous pouvez le constater, vous pouvez ajouter des achats avec date
d’expiration – appelés consommables – et ajouter des abonnements avec ou
sans renouvellement automatique.
Les consommables peuvent être des vies dans une application de jeu, une
visibilité supplémentaire dans une application de mise en relation. Les non-
consommables peuvent être quasiment tout et n’importe quoi.
Concernant les abonnements, vous pouvez sans conteste proposer le même
abonnement avec possibilité de renouvellement automatique, le changement
se faisant d’un simple clic au choix de l’utilisateur.
Nous allons ajouter un consommable pour notre application de météo. Si
c’est acheté, l’application enverra un SMS à l’utilisateur dès que le temps
changera de manière remarquable, et ce pendant un mois. Cette
fonctionnalité supplémentaire coûte 1 € à l’utilisateur.
Cliquez donc sur le + à droite de Achat intégré (0) et vous serez redirigé
vers la page d’ajout de fonctionnalités.
À partir de là, vous allez devoir saisir une référence et un identifiant –
invisibles, mais important pour vos relevés – à votre achat. Ensuite, de la
même manière que les prix de votre application elle-même, vous allez
pouvoir choisir le prix de la fonctionnalité payante et planifier des
changements de tarifs.
Juste en dessous, vous pourrez définir le nom et la description officiels et
visibles de votre achat in-app.
Enfin, les deux dernières parties concernent la promotion de votre achat in-
app dans l’App Store ainsi que les captures d’écran de ce dernier.
Vous serez par la suite à même de promouvoir ces achats intégrés dans
l’App Store. Cette promotion permettra de faire des recherches sur les
achats in-app directement – autrement dit sur le nom de l’achat – au même
titre que l’utilisateur pourrait rechercher une application. Cette promotion
affichera donc l’achat in-app dans la liste et fera une redirection directe vers
l’application elle-même. D’où l’importance du visuel du fameux achat.
Dans la suite de l’onglet, la partie Game Center servira dans le cadre du
développement de votre jeu vidéo – je vous laisse vous y intéresser – tandis
que le chiffrement permettra d’ajouter une sécurité supplémentaire à votre
application.
Enfin et surtout, vous allez pouvoir gérer des codes de promotion dans le
cadre de campagne marketing d’envergure, par exemple durant des
concours ou autres phases promotionnelles. Ces promotions s’appliqueront
à l’application elle-même ou aux achats in-app. Ces promotions ne pourront
être générées qu’une fois l’application validée.
image
Figure 6-43 – Accueil de TestFlight sur iTunes Connect
Cochez la build n° 1 dans la liste des Builds iOS. Vous allez pouvoir
soumettre une application aux tests :
image
Figure 6-44 – Soumission d’une build pour les tests sur iTunesConnect
image
Figure 6-45 – Ajouter de nouveaux testeurs sur iTunes Connect
Une fois ajouté, ce groupe sera automatiquement inséré dans les testeurs et
vous pourrez, par la suite, l’associer aux futures builds de votre application.
Les informations relatives aux tests, dans l’onglet suivant, permettent de
renseigner vos utilisateurs sur les nouveautés de la version et les différentes
informations, les mêmes que celles qui seraient présentes sur l’App Store.
Vous aurez également la possibilité de définir une personne à contacter en
cas de bogue ou si l’utilisateur a des suggestions dont il souhaite vous faire
part.
Enfin, le dernier onglet ne sera actif que 72 heures après les premiers tests
utilisateurs, mais pourra être crucial pour comprendre le fonctionnement de
votre application en situation réelle.
Finissons ce chapitre sur l’onglet Activité. Ce dernier donne accès à des
récapitulatifs très intéressants pour votre analyse marketing. Dans un
premier sous-onglet, vous aurez accès à toutes les informations de toutes les
builds que vous aurez envoyés sur iTunes Connect :
image
Figure 6-46 – Liste des ac vités sur iTunes Connect
image
Figure 6-47 – Invita on TestFlight par e-mail
Quand vous cliquerez sur View in TestFlight, vous serez redirigé vers une
page d’iTunes bêta vous donnant accès à un code de test :
image
Figure 6-48 – Code Redeem sur iTunes bêta
image
Figure 6-49 – Code Redeem accepté, téléchargement en cours
image
Figure 6-50 – L’applica on via TestFlight
image
Figure 6-51 – Build de la version de votre applica on sur l’iTunes Connect
image
Figure 6-52 – Choix de la build pour la version de l’applica on sur l’iTunes
Connect
image
Figure 6-53 – Open File or Project
image
Figure 6-54 – Android Studio ouvre le projet.
Une fois que cette petite fenêtre s’efface, il est possible qu’Android Studio
soit encore en train de traiter le projet. Vous le voyez sur la barre tout en bas
de l’interface.
Si vous n’avez pas encore testé l’application, je vous invite à lancer un
simulateur.
Nous allons voir comment envoyer une application sur le Google Play.
image
Figure 6-55 – Google Play Developer Console
image
Figure 6-56 – Créer une applica on sur Google Play
Une fois ceci fait, vous tombez sur la Fiche Google Play Store, sur laquelle
tous les champs sont affichés, lors de la publication, sur la fiche Google
Play officielle.
Vous pouvez :
• gérer les versions de production, bêta et alpha de votre application ;
• catégoriser votre application (Catégorie de contenu) selon une tranche
d’âge ;
• paramétrer le prix et la disponibilité (Tarifs et disponibilité) de votre
application selon les pays ;
• gérer différents services (Services et API) comme les services de jeux
ou les notifications ;
• obtenir des conseils d’optimisation très pertinents.
Vous l’aurez compris, avec les checks grisés à droite de chaque onglet, il va
falloir passer les onglets les uns après les autres et remplir tous les champs
obligatoires, notamment la fiche Google Play Store. Regardons cela de plus
près.
image
Figure 6-57 – Gérer la version bêta sur Google Play Developer Console
Ensuite, sur la page suivante, cliquez sur Créer une version. Vous arrivez
sur la fenêtre d’ajout de fichiers APK pour Google Play :
image
Figure 6-58 – Upload de l’APK sur le Google Play
De là, vous allez pouvoir nommer votre version, donner toutes les
informations sur les nouveautés de l’application, et dans toutes les langues
configurées sur la fiche Google Play Store.
Il ne manquera plus qu’à envoyer un fichier APK. Pour cela, retour sur le
logiciel Android Studio. Cliquez sur le menu Build puis sur Generate
Signed APK... :
image
Figure 6-59 – Generate Signed APK...
image
Figure 6-60 – Générer une clé de cer ficat
image
Figure 6-61 – New Key Store
image
Figure 6-62 – Générer une applica on signée sur Android Studio
Pour pouvoir activer ces checkboxes, il est possible que vous ayez besoin
d’éditer le fichier build.gradle dans le dossier app du dossier android. Ligne 87,
modifiez buildToolsVersion :
buildToolsVersion "25.0.0"
image
Figure 6-63 – Android Studio propose de me re à jour la synchronisa on
du projet.
Enfin, cliquez sur Finish. Le logiciel mouline un bon coup puis c’est bon :
image
Figure 6-64 – Généré avec succès
Juste en dessous, vous avez un cadre dans lequel vous devez indiquer la ou
les nouveautés de la version ajoutée. C’est une information très importante,
que ce soit pour une bêta ou pour une version officielle. Cette information
doit être complétée au risque que Google Play Developer Console ne vous
autorise pas à déployer cette nouvelle version.
Cliquez sur Enregistrer puis sur Vérifier. Dans la nouvelle page, vous allez
simplement vérifier la version choisie avant de l’envoyer :
image
Figure 6-66 – Examen de la version bêta sur Google Play Developer Console
image
Figure 6-67 – Menu de l’applica on
image
Figure 6-68 – Filtre dans la liste des appareils sur le Google Play Developer
Console
image
Figure 6-69 – Filtre de la RAM sur le catalogue des appareils
Une fois le filtre placé, la liste des appareils compatibles s’affiche. Vous
pouvez alors cliquer sur l’un d’eux puis l’exclure :
image
Figure 6-70 – Exclure un appareil dans le catalogue sur le Google Play
Developer Console
image
Figure 6-71 – Captures d’écran sur le Google Play
Comme le Google Play vous l’explique, les captures d’écran seront en PNG
ou en JPG sans canal alpha, d’une longueur maximale de 3 840 pixels sur
chaque côté.
Vous devez ajouter au moins deux captures d’écran et au plus huit. Par
ailleurs, l’interface précise que pour que votre application soit disponible
sur chaque plate-forme, il faut ajouter une capture d’écran pour chaque
catégorie. Pour la faire répertorier sur les smartphones, il faut donc au
moins une capture d’écran de téléphone, pour les tablettes, il faut une
capture d’écran de tablette 7 pouces et une autre de tablette 10 pouces, etc.
Ensuite, vous allez devoir ajouter une icône pour votre application ainsi
qu’une image de couverture qui apparaîtra sur la fiche Google Play Store de
votre application.
De manière facultative, vous pouvez ajouter des images et vidéos
promotionnelles.
Enfin, la classification. Il vous faut définir le type et la catégorie de votre
application puis la classification de contenu.
image
Figure 6-72 – Classifica on de votre applica on sur le Google Play
Developer Console
image
Figure 6-74 – Classifica on du contenu
image
Figure 6-75 – Message de configura on du compte Google Payments sur le
Google Play
image
Figure 6-76 – Ajouter un tarif à votre applica on payante sur le Google Play
image
Figure 6-77 – Ajout d’un prix à l’applica on sur le Google Play
image
Figure 6-78 – Applica on prête à être publiée
En cliquant sur Fichiers prêts à être publiés, vous allez pouvoir gérer les
versions de votre application et ainsi la publier.
Sélectionnez Gérer la version puis, en dessous de la partie des Bêta, cliquez
sur Modifier la version. Vous êtes de nouveau sur le formulaire de
publication de la dernière version. Rien n’a changé depuis nos dernières
modifications. Cliquez sur Vérifier puis sur Lancer le déploiement en
version bêta.
Un petit message vous informe que votre application sera disponible pour
les bêta-testeurs uniquement. Et justement, c’est l’occasion d’en ajouter.
Confirmez votre choix et sélectionnez des testeurs :
image
Figure 6-79 – Gérer les bêta-testeurs sur le Google Play Developer Console
Sélectionnez le mode de test, par exemple Tests bêta fermés, une liste
d’utilisateurs – que vous allez pouvoir créer dans un premier temps en
cliquant sur le bouton Créer une liste, en saisissant le nom de la liste et les
adresses e-mail des testeurs – et enfin une adresse e-mail ou une URL pour
l’envoi des feedbacks.
L’URL d’activation sera affichée dès que la publication de l’application
sera concluante. Cela peut prendre un petit peu de temps lors de la mise en
ligne de la première version, le temps de créer la fiche Play Store et de
générer les premières informations.
Actualisez régulièrement la page et vous découvrirez à un moment ou un
autre le lien d’activation. Vous avez le temps d’aller boire un
rafraîchissement. Soyez patient, le déploiement peut prendre plusieurs
dizaines de minutes.
Ce lien d’activation devra être envoyé manuellement à vos testeurs sur leur
adresse e-mail car ce n’est pas automatique. Après avoir cliqué dessus, ils
seront redirigés vers une page où ils devront valider leur statut de testeur :
image
Figure 6-80 – Fenêtre de testeurs sur Google Play
image
Figure 6-81 – Fiche Google Play Store de Test
image
Figure 6-82 – Créer une promo on sur le Google Play Developer Console
Dans ce formulaire, donnez un nom à cette promotion – par exemple
Marketing –, une période et un prix, puis validez.
Attention, plusieurs contraintes s’appliquent aux promotions sur Google
Play Developer Console :
• Vous ne pouvez pas définir plusieurs promotions simultanément, même
en mettant leurs dates de début et de fin les unes après les autres.
• Une promotion ne peut pas durer moins d’une journée ni durer plus de
huit jours.
• Une promotion ne peut en suivre une autre moins de 30 jours après la
fin de la première.
image
Figure 6-83 – Passer la bêta en produc on
Choix du logo
Cette phase de lancement de votre application sera le dernier moment pour
choisir ou changer de logo. Vous n’aurez pas énormément d’utilisateurs
(comparé aux millions qui viendront par la suite !) et vous ne risquerez pas
trop de déstabiliser l’utilisateur qui a téléchargé votre application, encore
peu habitué au logo présent sur la page d’accueil de son smartphone.
Attention au logo malgré tout. Comme vous le savez, il apparaîtra partout !
Dans les listes de recherche, sur la fiche de l’App Store et du Google Play
et surtout sur l’écran d’accueil du téléphone portable de l’utilisateur.
Êtes-vous prêt ?
Votre application est utilisée par votre clientèle depuis quelques semaines ?
Elle a attiré, via des publications sur les réseaux sociaux, plusieurs
centaines de milliers d’utilisateurs ? Vous avez corrigé plusieurs dizaines,
voire centaines de bogues et vous avez amélioré certaines fonctionnalités à
la demande des utilisateurs ou selon votre planning prévisionnel ?
Alors vous êtes prêt !
Le lexique du marke ng
Avant d’aller plus loin, il est temps d’étudier un peu la terminologie propre
au marketing, pour savoir de quoi l’on parle et pour comprendre les équipes
marketing qui travailleront peut-être avec vous dans peu de temps, qu’elles
soient internes ou via une agence spécialisée.
Les coûts
Les coûts disposent de leurs acronymes spécifiques. En voici une liste
exhaustive.
• Le CPM, à savoir le coût par 1 000 impressions. Il s’est largement
généralisé dans le milieu du marketing et notamment dans le domaine
du Web. Le mobile introduit de nouveaux usages, mais il y est malgré
tout très représenté.
• Le CPC ou le coût par clic. Une fois l’impression réalisée sur l’écran du
smartphone de l’utilisateur, il sera susceptible de cliquer pour
télécharger votre application et s’y inscrire.
• Le CTR aussi connu comme ratio clics/impressions (clics-through-rate
en anglais). Il s’agit du pourcentage d’utilisateurs qui ont cliqué en
voyant la publicité.
• Le CPI ou coût par installation. L’utilisateur a vu votre publicité, a
cliqué dessus et a téléchargé l’application. Jackpot, vous aurez
probablement dans peu de temps un nouvel utilisateur.
• Le IR, autrement le ratio installations/impressions (installation-rate en
anglais). L’utilisateur a vu votre publicité, a cliqué dessus et a téléchargé
l’application.
• Le CPA, à savoir le coût par action. Il s’agit par exemple d’une création
de compte. La boucle est bouclée.
• Le CPS, aussi appelé le coût par vente (sale en anglais). Il peut s’agir
par exemple du premier achat de l’utilisateur.
• Le CPL ou coût par prospect (lead en anglais). Par exemple un
utilisateur qui a donné son nom et son adresse dans une application de
recherche.
• Le CPE, connu comme étant le coût par engagement. Par exemple, un
joueur qui a atteint le troisième niveau d’un jeu vidéo mobile.
• Le CPV ou coût par vue (view en anglais). Principalement utilisé en
format vidéo, il s’agit de payer pour chaque vidéo entamée.
• Et enfin, le CPCV, aussi baptisé coût par vue complète (complete view
en anglais). Encore une fois principalement utilisé dans le format vidéo,
il s’agit de payer pour chaque vidéo entièrement visionnée.
Une fois que vous avez défini le type de coût souhaité, vous allez pouvoir
utiliser des outils de mesure.
Les op ons
Les options de ciblage sont nombreuses et permettent de diffuser votre
publicité à l’audience que vous estimez la plus à même de s’inscrire. Les
voici présentées.
• Démographique : il s’agit de cibler les utilisateurs par leur âge, leur sexe
ou leur localisation – qu’il s’agisse du pays, de la ville, de la rue et
même du numéro de la rue pour un ciblage précis.
• Psychographique : il s’agit de la catégorie socio-économique cible de
votre application. On peut également viser des utilisateurs avec des
affinités particulières (voyages, finances, jeu, etc.) ou des activités
spécifiques (usage régulier des réseaux sociaux, photographie,
équitation, danse, informatique et j’en passe).
• Comportement mobile : il s’agit plus précisément de cibler les
utilisateurs faisant régulièrement ou récemment usage d’une certaine
application. On peut également parfois s’intéresser aux utilisateurs selon
les applications présentes sur leur smartphone ou encore pour les sites
web visités récemment.
• Mobile : on peut cibler un utilisateur selon son téléphone, sa marque,
son modèle, qu’il s’agisse d’un smartphone ou d’une tablette. On peut
également viser un système d’exploitation en particulier et même une
version. Enfin, on va pouvoir opter pour un opérateur téléphone ou un
mode de connectivité (Wi-Fi, 3G, etc.).
Une autre option, qui ne dépend pas des utilisateurs à proprement parler, est
disponible : l’option de temps de validité de votre campagne marketing.
Combien de fois par jour et/ou par campagne votre publicité va être affichée
à l’écran du même mobinaute ? Il est également possible de programmer
des heures du jour et des jours de la semaine où la campagne va être visible.
Enfin, il est possible de gérer le mode de dépense du budget : au plus vite
ou bien réparti sur la journée ou même sur toute la durée de la campagne.
Facebook
Aucune surprise, vous avez certainement pensé à Facebook aussi. Et pour
cause, deux milliards d’utilisateurs gravitent sur ce réseau. Avec Google, ils
brassent tous deux plus de la moitié de la publicité mondiale. Facebook
génère 80 % de ses revenus grâce à la publicité, soit 4,5 milliards de dollars.
Aujourd’hui, Facebook est utilisé plus de 80 % du temps sur mobile, ce qui
est une aubaine dans la recherche de mobinautes pour votre application.
Mieux encore, plus de 20 % du temps passé sur mobile est consacré à
Facebook.
Grâce à Facebook, vous allez pouvoir cibler les utilisateurs que vous voulez
grâce à des données démographiques de précision. Comme vous le savez,
les publicités de ce réseau sont parfois intégrées au sein même du fil
d’actualité, ce qui les rend plus naturelles, moins intrusives et donc plus
propices aux clics des utilisateurs.
Alors qu’attendez-vous ? Aucune campagne marketing n’est complète sans
Facebook, lequel met à votre disposition des outils marketing puissants.
Vous allez pouvoir diffuser le nom de votre application, un petit descriptif
et même une image.
Par ailleurs, les tarifs ne sont pas exorbitants et Facebook ne vous fait payer
que ce qui est réellement utilisé. En effet, si une campagne attire le nombre
voulu d’utilisateurs avant l’échéance, la fin de la campagne n’est pas
facturée.
Twi er
Le second réseau social le plus prisé des utilisateurs est sans conteste
Twitter. Du haut de leurs 140 caractères, les messages des utilisateurs sont
succincts et retiennent donc l’attention de leurs lecteurs.
Sur Twitter, la publicité est également très intéressante. On peut utiliser les
publicités simples sous forme de texte ou les agrémenter d’images et même
de vidéos.
Les images apportent souvent plus de 20% de clics en plus, plus de 90 % de
likes en plus et même parfois plus de 150% de retweets supplémentaires.
Les vidéos peuvent être publicitaires – bandes annonces, présentation, etc. –
ou directes, comme via le réseau social Periscope, qui appartient désormais
à la même société.
Concernant les outils marketing, comme pour Facebook et Google, ils sont
très puissants. Ils permettent un ciblage très précis des résultats ainsi qu’une
mesure en direct par un outil d’analyse.
Snapchat
Avant même de penser à Snapchat, il faut penser à son audience. Ce réseau
de photos et de vidéos éphémères est utilisé principalement par les
Millennials. Vous souvenez-vous ? Ces personnes nées entre 1980 et 2000
qui représentent une bonne partie de la population ? Si votre application
cible – exclusivement ou en partie – cette audience, alors l’utilisation de
Snapchat dans votre campagne marketing est à étudier. Il faut dire que sa
montée en puissance a été spectaculaire et il est encore trop peu utilisé dans
le cadre du marketing des entreprises.
Concernant les chiffres, Snapchat, c’est 100 millions d’utilisateurs actifs qui
diffusent photos et vidéos, courtes, au format vertical. C’est également 10
milliards de vidéos par an et ce chiffre est en constante augmentation.
Niveau marketing, Snapchat vous propose trois formats.
• L’utilisation de vidéos enrichies de dix secondes dans leur fil
d’actualité. Si l’utilisateur balaie cette vidéo, elle sera suivie par un spot
vidéo plus long, par un article ou par un call-to-action, etc.
• L’utilisation de filtres géolocalisés. Ils se superposeront aux photos et
vidéos prises dans les endroits prédéterminés.
• L’utilisation de lentilles sponsorisées. Il s’agit de créer un filtre qui
modifie les selfies des utilisateurs.
Ces trois formats contribuent à l’image et à la visibilité de votre application
via le contenu de Snapchat.
Voilà pour les possibilités marketing des plus grands réseaux sociaux
mondiaux. D’autres solutions sont possibles mais il serait trop long d’en
faire la liste exhaustive. Maintenant que nous avons parlé des réseaux
sociaux du point de vue marketing, parlons de leur utilisation pure et
simple. Vous allez voir que ces trois acteurs vont avoir une place
prédominante dans votre communication.
Facebook
Vous le savez, la communication passe en priorité par Facebook.
Publications, annonces, photos, vidéos, le réseau diffuse votre
communication à très grande échelle et les contenus peuvent être
sponsorisés via le marketing pour atteindre une audience plus large.
Aujourd’hui, créer une page Facebook est presque aussi important que
d’avoir son nom de domaine avec son site, c’est s’assurer d’une première
visibilité. C’est comme cela que la phase initiale de marketing, celle
gratuite que l’on nomme « guérilla », va pouvoir se faire.
Dans l’usage, Facebook servira également à la relation client, notamment
via la plate-forme Messenger qui est de plus en plus utilisée et dont les
chatbots, ces assistants virtuels, vous serviront, à terme, à gérer plusieurs
dizaines (de milliers ?) de discussions simultanées avec vos utilisateurs.
Les chatbots sont en train de se généraliser sur de nouveaux services de
messagerie et assureront probablement plus tard l’ensemble de la première
phase de relation client : la prise de contact. Leur intelligence artificielle
permet déjà et permettra, en progressant jour après jour, de servir les clients
du mieux qu’ils peuvent.
Twi er
Quand on évoque la relation client, Twitter arrive généralement en pole
position. En effet, la plate-forme est bien connue pour ses facultés à ce
sujet. Ses 140 caractères sont devenus tout un symbole.
De nombreuses catégories socio-professionnelles ont fait de Twitter leur
territoire de communication : les artistes, les développeurs, les hommes
politiques et même les marques. Le réseau social comptabilise plus de 310
millions d’utilisateurs mensuels.
De nos jours, près de 60 % des marques ont plus de 100 000 followers et
plus de la moitié des utilisateurs de Twitter sont entrés en interaction avec
une marque après l’avoir vue dans un tweet, dans un retweet, sur un site
web ou même dans une recherche Google.
Selon certaines études, avoir son compte Twitter et communiquer avec ses
followers permet d’augmenter l’indice de satisfaction client de 20 % ! Ce
n’est donc clairement pas négligeable même si, en définitive, il s’agit d’un
métier à part entière, celui de community manager.
Les autres
Bien sûr, d’autres réseaux sociaux et outils de communication peuvent être
grandement enrichissants pour votre communauté.
Par exemple, Instagram favorise de plus en plus la communication à travers
des photos postées sur son réseau. Le bouche-à-oreille marche très fort et la
communication via les photos est vraiment très appréciée des internautes.
De même, bien que négligé et laissé à l’abandon, Google+ est un réseau
social utilisé par plus de 100 millions d’utilisateurs actifs. Certes, l’usage
est bien moins important que celui de Facebook, mais il n’en reste pas
moins un média sur lequel vous pouvez interagir.
Figure 8-1 – Accueil des Analyses des apps sur l’iTunes Connect
Sur cette page, vous voyez directement l’ensemble des statistiques sur
chacune de vos applications. Vous allez également pouvoir établir ces
statistiques sur différentes périodes.
Ces premières données vous donnent une bonne indication de l’évolution de
l’utilisation de votre application à travers le temps, avec des pourcentages
d’utilisateurs supérieurs et inférieurs et un nombre très précis d’usagers.
Vous allez donc savoir si votre application est de plus en plus utilisée – le
bouche-à-oreille fonctionne –, stagne – il va falloir redoubler d’efforts en
marketing pour conserver vos utilisateurs actuels ou en convertir de
nouveaux – ou est de moins en moins utilisée – déclin temporaire ou signe
avant-coureur ?
Pour information, ces analyses ne peuvent provenir que des données des
utilisateurs ayant accepté de partager leurs diagnostics avec les
développeurs d’applications. Vous pouvez consulter leur nombre en
cliquant sur le point d’interrogation à droite de À propos des données
d’Analyses des apps. Actuellement, Apple m’informe qu’au cours de 30
derniers jours, 33 % des utilisateurs ayant installé des applications ont
accepté de partager leurs données.
Figure 8-2 – Partage de données avec Apple et les développeurs ers sur
l’iPhone
Si vous souhaitez activer le partage des diagnostics sur votre iPhone et ceux
de vos collaborateurs, voici la procédure :
1. Allez dans l’application Réglages.
2. Puis dans la partie Confidentialité.
3. Tout en bas, allez dans Analyse.
4. Activez Partager l’analyse ou Partager l’analyse (iPhone+Watch) dans
le cas où une Apple Watch est associée à votre iPhone. En effet, l’Apple
Watch transmet à l’iPhone énormément d’informations collectées.
5. Enfin, activez Partager, ainsi vous aidez les développeurs
d’applications – c’est-à-dire vous et vos confrères – à améliorer leurs
créations en autorisant Apple à partager avec eux les données liées aux
pannes et les statistiques que nous allons voir.
6. Cliquez sur le nom de l’application dont vous voulez étudier les
statistiques et vous arrivez sur une page très complète.
Bien sûr, vous allez pouvoir comparer les différents graphiques de manière
à voir, par exemple, où s’arrêtent le plus fréquemment vos utilisateurs entre
la découverte de l’application et l’achat in-app.
Prenons un exemple. Sur le dernier mois, 1 000 utilisateurs ont découvert la
page produit de votre application – 500 via une recherche directe sur l’App
Store, 250 en navigant dans le magasin d’application et 250 par
l’intermédiaire de liens que vous avez diffusés sur différents réseaux
sociaux. Sur tous ces utilisateurs, 70 % ont téléchargé l’application. Sur
tous ces utilisateurs, 90 % l’ont ouverte – cela ne fait déjà plus que 630
utilisateurs ! Sur ces 630 utilisateurs, 570 ont eu le courage de se créer un
compte ou s’y sont simplement connectés – ces données, ce sont vos
propres statistiques qui pourront vous les donner et non Apple. Plus
exactement, 420 avaient déjà un compte tandis que les 150 restants se sont
inscrits. Sur l’ensemble des utilisateurs, 140 ont acquis des achats in-app –
rappelons que l’application était gratuite. Cela ne fait donc que 14 % des
utilisateurs initiaux, ce qui est relativement peu, il faut l’avouer.
La morale de cet exemple, si on l’imagine concret, c’est que sur la totalité
des utilisateurs qui ont pu découvrir l’application sur l’App Store, beaucoup
l’ont utilisé au moins une fois – plus de 60 % des utilisateurs – mais peu ont
acheté des fonctionnalités payantes – moins de 15 %. On peut en conclure
soit que vos articles sont trop chers, soit qu’ils ne sont pas suffisamment
attractifs, soit les deux.
Un autre exemple, beaucoup moins réjouissant mais plausible durant la
phase bêta, serait de constater que sur 100 % des sessions effectuées sur
l’application – peu importe le nombre de vues de la page produit ou le
nombre d’installations –, 70 % ont conduit à une panne de cette dernière. Il
serait temps de passer à une phase critique de débogage.
Dans cette partie, l’outil d’iTunes Connect donne des graphiques et des
vues préconfigurées, mais vous pouvez créer vos propres vues en cliquant
sur le titre Ventes en haut à gauche de la page, puis sur Rapports.
Sans pour autant élaborer des vues dès le départ, vous allez pouvoir filtrer
le contenu de ces graphiques. Par exemple, selon le territoire et l’appareil.
Ici, je choisis l’iPhone en Europe :
Sur cette page, vous voyez directement l’ensemble des statistiques de votre
application. Vous allez également pouvoir établir ces statistiques sur
différentes périodes.
Ces premières données vous donnent une bonne indication de l’évolution de
l’usage de votre application à travers le temps avec des pourcentages
d’utilisations supérieurs et inférieurs, ainsi qu’un nombre très précis
d’utilisateurs. Vous avez également une visualisation des revenus – ici nulle
car il s’agit d’une application gratuite –, des notes et des plantages.
Tout comme sur l’App Store, vous allez vous rendre compte ici même de
l’utilisation de votre application. Mettez en commun les données des deux
magasins d’application pour en savoir plus sur la tendance actuelle.
Les sta s ques de votre applica on
Cliquez sur l’onglet Statistiques pour accéder aux données détaillées de
l’application et aux rapports personnalisés :
Figure 8-12 – Versions d’Android sur lesquelles l’applica on est installée sur
le Google Play Developer Console.
Comme je l’ai souligné, ces statistiques peuvent être gérées selon une
période souhaitée. Vous pouvez également télécharger le rapport. Il sera
ajouté à votre liste de rapports téléchargeables afin de le retrouver à tout
moment.
Bien sûr, ce rapport n’est qu’une configuration parmi tant d’autres. Vous
allez pouvoir le paramétrer en cliquant sur le bouton éponyme.
Figure 8-13 – Configurer le rapport d’une applica on sur le Google Play
Developer Console
Parmi les rapports possibles, ceux concernant les installations, les notes, les
revenus, ainsi que les blocages et plantages de l’application. Tous ces
rapports peuvent s’afficher selon différents critères.
En parlant des blocages et des plantages, Google a mis en place un onglet
spécial pour ces données. Nommé Android Vitals, il donne des indications
très précises sur les différents problèmes qui peuvent remonter du
smartphone Android de vos utilisateurs.
Ces données vous permettront par exemple de réfléchir à une version dite
« lite » comme Facebook, Google et bien d’autres le proposent pour leurs
applications dans des pays où la connexion réseau est faible.
Les sources de téléchargement de votre applica on
D’où viennent vos utilisateurs ? Que ce soit d’une recherche précise dans le
Google Play, d’une navigation classique ou même d’une application mobile
ou site référent, cette question est très importante, car elle vous donne une
bonne indication du secteur qui est peut-être négligé et qu’il faut améliorer,
soit avec des campagnes marketing soit avec des partenariats.
Ces données sont disponibles dans l’onglet Acquisition d’utilisateurs :
Sur cette page, vous serez en mesure d’identifier les utilisateurs venant
naturellement du Play Store, ceux venant de campagnes AdWords – le
service publicitaire de Google –, ceux issus de recherches Google et ceux
d’URL directes.
Vous avez la possibilité de gérer la semaine souhaitée ainsi que le canal
d’acquisition des données. Enfin, vous allez pouvoir télécharger le rapport.
À partir de cet onglet, vous pouvez gérer des campagnes AdWords pour
attirer des millions d’utilisateurs depuis l’ensemble des canaux de publicité
de Google, que ce soit les annonces sur Google Play, la recherche Google
ou les autres sites du groupe.
La création des annonces Google AdWords sera faite depuis le compte
Google associé. En effet, vous allez être redirigé vers la plate-forme de
publicité sur une page réservée à la création d’une annonce pour la publicité
en question.
Figure 8-15 – Visualisa on des graphiques sur l’applica on Play Console sur
Android
Le choix du placement
La question du placement de la publicité va être primordiale pour obtenir un
bon chiffre d’affaires. En effet, une publicité mal placée pourrait être soit
invisible aux yeux de l’utilisateur (et donc totalement inefficace), soit trop
intrusive et donc lassante pour les utilisateurs.
Plusieurs solutions s’offrent à vous, mais libre à vous – et je vous le
recommande – de réfléchir à d’autres moyens d’introduire de la publicité
sur votre application.
Le fil d’actualité
Ce placement n’est évidemment possible que si vous disposez d’un fil
d’actualité sur votre application, mais c’est un des exemples les plus
courants. Que ce soit un réseau social, une application de messagerie, d’e-
mails, des listes de tâches ou bien d’autres choses encore, les possibilités
sont multiples.
Ce placement est non intrusif et souvent bien perçu par les utilisateurs, à
condition de cibler correctement ceux qui seront intéressés par ladite
publicité. En effet, s’ils ne sont pas « perturbés » par une publicité, ils
peuvent continuer le fil d’actualité sans être dérangés à outrance et peuvent
évidemment cliquer s’ils désirent en savoir plus.
L’inters el
Ce placement est déjà plus risqué car plus intrusif. Lorsque les utilisateurs
navigueront entre divers fenêtres de votre application, ils se retrouveront
confrontés, pendant plusieurs dizaines de secondes, à une image ou à une
vidéo.
Outre la recommandation de laisser une petite croix en haut à gauche ou à
droite pour pouvoir fermer cet interstitiel, cela risque, à force, de lasser les
utilisateurs.
Ici encore, le ciblage doit être parfait, c’est l’utilisation pure et simple de
votre application qui est en jeu !
Les bannières
Les bannières de publicité furent un temps monnaie courante. Elles sont
pourtant moins utilisées, car elles contribuent à rendre votre application
beaucoup moins intuitive et simple d’utilisation. Outre les animations
qu’elles affichent, c’est une partie de l’écran qui se retrouve ainsi accaparée
par de la publicité, sur toute l’application.
Les clics pourront être nombreux, mais cela risque d’être involontaire de la
part de vos utilisateurs.
Le format adapté
Quel format utiliser ? Tout simplement celui qui est le plus courant dans
votre application. Il s’agit d’une application avec un flux textuel ?
Privilégiez une publicité textuelle. Votre application diffuse bien souvent les
photos ou les vidéos de vos utilisateurs ? Privilégiez une publicité visuelle.
Si vous ne savez pas quel format utiliser, testez dans un premier temps le
moins intrusif et vous pourrez progressivement passer à de la publicité de
plus en plus animée jusqu’à, peut-être, arriver sur de la vidéo.
Le ming parfait
Le timing est LA question essentielle dans l’utilisation de la publicité.
Aussi fondamental que le ciblage – que nous verrons par la suite –, il assure
à votre publicité de marquer les esprits dans le bon sens.
Imaginons une application d’itinéraire comme Google Maps ou Apple
Plans. Vous diffusez une publicité faisant la promotion du dernier film en
vogue sorti dans les salles au moment où l’utilisateur lance l’itinéraire.
L’intérêt sera nul : il vient de quitter sa précédente position, quelle idée
d’aller au cinéma maintenant ? Pire encore, il perdra la fenêtre de
localisation pendant quelques secondes ou plus.
Outre la gêne occasionnée, c’est l’expérience utilisateur qui s’en retrouvera
compromise. Il existe un réel risque que celui-ci ferme l’application puis la
supprime définitivement.
Maintenant, imaginons la même application. Une fois l’itinéraire terminé,
l’utilisateur arrivé à son point de destination aura peut-être faim. À ce
moment, quelques secondes après la fenêtre avertissant l’utilisateur qu’il est
arrivé, une page (un interstitiel) pourra s’afficher, lui indiquant qu’un
restaurant se trouve à proximité de sa nouvelle position et qu’il pourra
ajouter cette adresse sur son trajet de retour.
Dans ce cas, le timing est parfait et les chances que l’utilisateur clique sur la
publicité pour pouvoir s’y rendre augmentent considérablement.
Le ciblage
Au même titre que le timing, le ciblage est fondamental.
Songeons à la même application d’itinéraire, mais cette fois-ci avec une
publicité pour une salle de sport par exemple. Comme pour la publicité pour
le film, l’intérêt sera relativement faible. L’utilisateur, avant ou après son
trajet, potentiellement long et épuisant, sera invité à aller faire du sport en
salle.
Bien qu’ici le risque de suppression de l’application reste faible, le taux de
clics risque d’être proche de zéro et donc la publicité gênera les utilisateurs
sans rentabiliser l’application.
Voilà qui est fait. AdMob vous confirme la création de votre application sur
la plate-forme sélectionnée, vous donne l’identifiant de publication AdMob
puis vous propose d’ajouter directement un bloc d’annonces.
Cliquez sur OK. Vous êtes alors redirigé vers la page d’accueil d’AdMob
avec une liste des annonces que vous avez créées et quelques informations
les concernant. Pour le moment, pas très intéressant, mais cela va venir.
Puis :
react-native link
target 'myApp-tvOS' do
# Uncomment the next line if you’re using Swift or would like to
use dynamic frameworks
# use_frameworks!
# Pods for myApp-tvOS
target 'myApp-tvOSTests' do
inherit! :search_paths
# Pods for testing
end
end
[!] Please close any current Xcode sessions and use 'myApp.xcworkspace' for this
project from now on.
Sending stats
Pod installation complete! There is 1 dependency from the Podfile and 1 total pod
installed.
[!] Automatically assigning platform ios with version 8.0 on target myApp because
no platform was specified. Please specify a platform for this target in your
Podfile. See `https://guides.cocoapods.org/syntax/podfile.html#platform`.
[!] The 'myAppTests [Debug]' target overrides the 'OTHER_LDFLAGS' build setting
defined in 'Pods/Target Support Files/Pods-myAppTests/Pods-
myAppTests.debug.xcconfig'. This can lead to problems with the CocoaPods
installation
- Use the '$(inherited)' flag, or
- Remove the build settings from the target.
[!] The 'myAppTests [Release]' target overrides the 'OTHER_LDFLAGS' build setting
defined in 'Pods/Target Support Files/Pods-myAppTests/Pods-
myAppTests.release.xcconfig'. This can lead to problems with the CocoaPods
installation
- Use the '$(inherited)' flag, or
- Remove the build settings from the target.
Si vous voulez utiliser autre chose qu’une bannière comme annonce, libre à
vous bien évidemment d’importer le nécessaire. Ensuite, nous allons
rajouter la bannière en bas de page. Comme ceci :
<View style={styles.container}>
// Display a banner
<AdMobBanner
bannerSize="fullBanner"
adUnitID="your-admob-unit-id"
testDeviceID="EMULATOR"
didFailToReceiveAdWithError={this.bannerError } />
</View>
À vous de compléter le code avec l’identifiant de votre propre bannière. Ce
code, vous l’obtiendrez via la plate-forme AdMob sous la forme de ca-app-
pub-XXXXXXXXXXXXXXXX/XXXXXXXXXX. Une fois le code ajouté, il va y avoir une petite
complication.
En effet, l’ajout d’AdMob via CocoaPod implique maintenant d’ouvrir
l’application par le fichier myApp.xcworkspace et non par le fichier myApp.xcodeproj
de manière à ce que Xcode comprenne l’ensemble des bibliothèques qu’il
faut inclure à l’application, par le biais des bibliothèques ainsi qu’à travers
le fichier Podfile.
Si les problèmes persistent, n’hésitez pas à nettoyer les fichiers de
compilations de l’application en allant dans le menu Product, puis en
cliquant sur Clean.
Dès lors, vous allez pouvoir exécuter l’application sur le simulateur.
Figure 9-8 – La publicité sur l’applica on
En cliquant sur ladite publicité, vous serez redirigé vers une page de la
plate-forme AdMob, gérée par Google.
Si vous voulez entrer dans le détail des statistiques, cliquez sur Afficher le
rapport puis resélectionnez Aujourd’hui dans le menu en haut à droite de la
page.
Figure 9-14 – Rapport de sta s ques détaillées sur AdMob
Comme toute plate-forme digne de ce nom, vous allez pouvoir changer les
configurations en y ajoutant des variables et des filtres. Il vous sera
également possible de personnaliser les statistiques affichées.
Figure 9-15 – Personnalisa on des sta s ques sur AdMob
Une fois ceci fait, vous allez pouvoir l’exporter sous format CSV.
Plus tard, vous pourrez voir les statistiques de la page d’accueil mise à jour
avec les revenus que vous et vos utilisateurs aurez générés.
Figure 9-16 – Sta s ques financières sur AdMob
Comme vous pouvez le constater, la catégorie sur les paris et les jeux
d’argent et de hasard est bloquée par défaut, car réservée aux plus de 18
ans. Néanmoins, vous pouvez la débloquer si votre application est destinée
à cette catégorie d’utilisateurs.
En revanche, vous allez pouvoir bloquer les catégories faisant référence à la
sexualité, à la religion et bien d’autres sujets.
De même, si vous voulez suspendre les annonces concernant une
application concurrente, vous avez la possibilité de sélectionner les
identifiants uniques de la ou les applications concernées, qu’elle soit sur
Google Play ou App Store.
Enfin, vous pouvez directement stopper des annonces à partir de leur URL.
Prenez grand soin de ces blocages, ils vous permettront, à terme, de gérer
les mauvaises publicités qui pourraient s’afficher sur votre application et
qui seraient susceptibles de la décrédibiliser.
Types de campagnes
Si vous projetez de créer plusieurs campagnes de publicité sur AdMob,
vous avez la possibilité de définir un nom. Naturellement, celui-ci restera
privé et ne sera affiché ni aux autres éditeurs ni aux utilisateurs.
Ensuite, vous allez devoir définir le type et l’objectif de l’annonce. Le type
est un élément important si vous envisagez de lancer plusieurs applications.
En effet, il est possible de faire de l’autopromotion, autrement dit de faire la
promotion de vos diverses applications. Si vous n’en avez pas d’autres ou
ne souhaitez pas le faire, vous pouvez naturellement faire de la vente
directe, c’est-à-dire de la promotion sur les applications d’autres éditeurs,
ce qui est le plus classique.
L’objectif correspond à la façon dont va être utilisé l’argent de la campagne.
Vous avez la possibilité de régler l’objectif sur différents paramètres comme
le nombre d’impressions que vous souhaitez générer sur la campagne ou le
nombre de clics. D’autres objectifs plus spécifiques sont disponibles,
comme le pourcentage du trafic ou l’autopromotion par médiation.
Puis, vous allez devoir définir les dates de début et de fin de campagne.
Enfin, vous pourrez limiter le nombre d’expositions, paramètre très
intéressant puisque cela permet de réduire le nombre de fois qu’une
annonce est diffusée auprès de la même personne, chaque jour, chaque
semaine et chaque mois.
Également, si vous avez plusieurs campagnes, vous pouvez gérer ce nombre
entre plusieurs d’entre elles. Outre le fait d’éviter la lassitude de votre
utilisateur face à votre campagne de promotion, cet outil vous garantit de
diffuser cette dernière auprès d’une nouvelle audience.
Continuons sur notre lancée. Dans la deuxième phase du formulaire, nous
allons définir l’emplacement d’affichage de votre annonce. Les
emplacements publicitaires de toutes vos applications seront affichés dans
le tableau. Vous pourrez sélectionner soit une annonce particulière soit
l’ensemble des annonces d’une application.
La compatibilité porte sur le format et le type de l’annonce. En effet, la
compatibilité ne sera pas la même si l’annonce est une bannière, une
annonce interstitielle, une vidéo ou encore une annonce native – intégrée à
votre fil d’actualité par exemple.
En ce qui concerne le type, on parle ici des annonces textuelles ou
illustrées. Des annonces interactives – bien souvent en HTML5 – ou encore
des vidéos – classiques, avec installation d’une application au clic ou même
avec récompense.
Vous l’aurez donc compris, l’annonce que vous êtes en train de créer ne sera
affichée que dans les emplacements où elle est compatible.
La page de support d’AdMob met à votre disposition un tableau des
compatibilités.
Figure 9-19 – Tableau des compa bilités des types d’annonces sur AdMob
Une fois les emplacements souhaités sélectionnés, vous allez pouvoir les
affiner suivant la zone géographique, la langue, les données
démographiques ou même techniques (opérateur, téléphone, système
d’exploitation, etc.) de l’utilisateur.
Le cadre suivant nous propose une nouvelle fonctionnalité qui permet
d’effectuer une prévision afin de déterminer si les objectifs de cette
nouvelle campagne sont susceptibles d’être atteints. Un algorithme calcule
cette probabilité selon les chiffres dont vous disposez afin de vous donner le
résultat le plus probant. Évidemment, si les chiffres à la disposition
d’AdMob sont trop peu nombreux, le calcul ne sera pas réalisé.
Maintenant que nous avons finalisé la configuration de notre première
campagne, il est temps de créer un bloc d’annonces. Ce n’est pas
obligatoire pour le moment mais cela devra être fait pour lancer votre
campagne. Une campagne n’est en réalité qu’un rassemblement de
plusieurs annonces à l’objectif commun.
Créons donc notre annonce. AdMob vous laisse la possibilité entre les
quatre types d’annonces que nous avons vues précédemment.
Figure 9-20 – Les types d’annonces disponibles dans AdMob
Le format carrousel est le plus fréquent sur le fil d’actualité. Vous pouvez
utiliser une image ou une vidéo mais aussi un diaporama, qui sera une sorte
de vidéo de dix images qui passeront en boucle.
De plus, vous pouvez ajouter un « canevas » plein écran pour une
expérience instantanée depuis le mobile. C’est un moyen efficace de faire
tester votre application, votre plate-forme ou quoi que ce soit d’autre dès
que l’utilisateur a cliqué sur la publicité.
Une fois ceci fait, vous allez pouvoir configurer le visuel de la publicité.
Vous devez d’abord saisir le titre. Ensuite, et selon le format choisi, la page
vous demande de sélectionner la ou les image(s) ou bien la vidéo. Tout est
correctement expliqué et vous pourrez configurer ce qui est nécessaire pour
l’affichage de votre publicité.
Par ailleurs, vous aurez un aperçu de cette dernière sur la droite de la page.
En haut à droite du cadre de l’aperçu, une icône vous permet de visualiser
cette publicité sur votre téléphone. Cliquez donc sur l’icône en question
puis sur Envoyer une notification à Facebook :
Figure 9-26 – Aperçu sur l’appareil de Facebook Ads
Bien évidemment, ceci n’est qu’un simple test. Je vous invite donc à
compléter au mieux votre publicité.
Une fois que la publicité est configurée, confirmez-la à l’aide d’un
formulaire et payez. Elle est opérationnelle. Préparez-vous à l’assaut de
nouveaux utilisateurs sur votre plate-forme !
10
Mises à jour et débogages
Me re à jour React Na ve
Il s’agit là d’un élément essentiel. Développé par l’entreprise Facebook et
par une grande communauté de développeurs, React Native évolue
extrêmement vite. Bien qu’il n’y ait pas de nouvelle version stable chaque
jour, les mises à jour sont fréquentes.
Pour mettre à jour React Native, il suffit de télécharger – encore une fois,
via l’invite de commande – l’outil react-native-git-upgrade en mode global :
npm install -g react-native-git-upgrade
Me re à la dernière version
Pour le mettre à la dernière version, tapez tout simplement le nom de l’outil
que nous venons d’installer :
react-native-git-upgrade
Cela va résulter en un bon nombre de lignes dans la console symbolisant la
mise à jour, pour finir sur un git-update info Upgrade done :
Erreur courante
Si l’une ou l’autre des commandes (react-native-git-upgrade ou react-native-
git-upgrade x.y.z) vous renvoie l’erreur suivante :
Me re à jour NPM
Pour mettre à jour NPM, c’est très simple, il faut lancer la commande :
npm install npm@latest -g
Vous devez vérifier que myApp est bien le nom de la classe principale de votre
application.
React Native est un outil de débogage vraiment très bien conçu. Il vous
indique ce qui se passe (variable this.props.meteoData non définie), dans quel
fichier (MeteoView.js) et à quelle ligne (62).
À vous ensuite de trouver le pourquoi du comment.
Si vous ne comprenez pas l’erreur en question (à cause de l’utilisation de
l’anglais ou du développement lui-même), allez faire un tour sur votre
moteur de recherche préféré.
Elle provient du fait que vous n’avez pas intégré l’objet React Native en
question ; dans le cas présent, le composant <TouchableHighlight> dans les
composants à inclure dans votre développement. Vous devez donc l’y
ajouter :
Bien que l’erreur vous spécifie ce que vous devez faire, je tenais à vous le
préciser, vous devez supprimer l’ancien dossier node à l’aide de :
rm -rf node_module
A
achat in-app 83, 161
Android
AndroidManifest.xml 47, 62
SDK (Software Development Kit) 21
uses-permission 48
uses-sdk 48
Android Studio 21, 28
API 39
AppRegistry 29
ARPDAU (Average Revenue Per Daily Active User) 151
ARPPU (Average Revenue Per Paying User) 151
ARPU (Average Revenue Per User) 151
B
bind 37
brew 9
C
campagne
e-mail 148
marketing 153
class 28, 33, 34, 37, 71
CocoaPods 14, 15
Component 71
constructor 36
Cost Per
CPC (Cost Per Clic 150
CPCV (Cost Per Complete View) 150
CPE (Cost Per Engagement) 150
CPI (Cost Per Installation) 150, 152
CPL (Cost Per Lead) 150
CPM (Cost Per Mille) 150
CPS (Cost Per Sale) 150
CPV (Cost Per View) 150
CSS 28
D
dataSource 53
E
Exception Domains 47
F
fetch 39
catch 40
then 39
G
gem 14, 15, 17
gradle 24
guérilla 147, 154
H
Homebrew 9
HTML 30
I
import 31, 34
index.android.js 13
index.ios.js 13, 27
Info.plist 45, 60
IR (Installation-Rate) 150
J
Java 21
SDK 22
JavaScript 37
Jest 11
jQuery 37
L
ListView 53
localhost 45
location 58
M
MINE 40
MINGW development toolchain 14
MSYS2 14
N
navigation.navigate 75
navigator.geolocation.getCurrentPosition 58
node 9
Node.js 9
npm 9, 65, 197
npm install 73
NSAllowsArbitraryLoads 46
NSAppTransportSecurity 45
O
onChange 37
onClick 37
onPress 39
P
package.json 12
pods 17
POST 40
PowerShell 10
Privacy – Location When In Use Usage Description 60
Programmation Orienté Objet 35
props 36, 75
R
React.js 11
react-native 11
React Native
API 57
composants 57
plug-ins 57
react-native-cli 10, 197
react-native-git-upgrade 197
react-native run-ios 12
react-native start 26
react-native-storage 65
react-native upgrade 29
react-navigation 72
react-navigation
SlackNavigator 72
render 28, 33
renderRow 53
require 33
résultats
résultats organiques 152
résultats payants 152
RPI 82
RubyInstaller 14
S
Scoop 9, 10
SDK (Voir Software Development Kit) 21
setState 38
settings.gradle 29
simulateur 19, 25
state 35
String 60
StyleSheet 28, 31
super 36
T
Text 28
TextInput 37
this 35
V
View 50
W
Watchman 10
X
Xcode 13
xcodeproj 29, 181
xcworkspace 181
Merci d’avoir choisi ce livre Eyrolles.
Nous espérons que sa lecture vous a été utile et vous aidera pour mener à
bien vos projets.
L’équipe Eyrolles
P.S. : chaque mois, 5 lecteurs sont tirés au sort parmi les nouveaux inscrits à
notre lettre d’information et gagnent chacun 3 livres à choisir dans le
catalogue des éditions Eyrolles. Pour participer au tirage du mois en cours,
il vous suffit de vous inscrire dès maintenant sur go.eyrolles.com/newsletter
(règlement du jeu disponible sur le site).
Pour suivre toutes les nouveautés numériques du Groupe Eyrolles, retrouvez-nous sur Twitter et
Facebook
@ebookEyrolles
EbooksEyrolles