Article
Développement mobile
19.6.2014
Perturbation continuum temporel
5 minutes
Temps d'un café
Qu'est-ce que le geofencing ?
Qu'est-ce que le geofencing ?
Remy Stère
Note : Ce contenu a été créé avant que Fabernovel ne fasse partie du groupe EY, le 5 juillet 2022.

Le geofencing dans iOS et Android

Dans sa documentation pour les développeurs, Apple communique sur les termes “regions” (zones) et “region monitoring” (surveillance de zone). La fonctionnalité est disponible depuis iOS 4.0 et a été améliorée depuis.

Sur Android

Les deux implémentations définissent un cercle autour d’un point. Si vous avez besoin de définir des zones plus complexes, il faudra chercher des solutions tierces.

Voici une liste de choses à savoir à propos des implémentations du geofencing dans iOS et Android :

Region monitoring (iOS)

Geofencing (Android)

Disponibilité

A partir d’iOS 4.0

A partir de 1.6, Location Services nécessaire

Exécution en tâche de fond

Oui

Oui

Limites de zones contrôlables dans une application

20

Illimité

Possibilité de configurer une durée d’expiration

Non

Oui

Tests

Sur simulateur ou appareil

En utilisant le mode simulation

Avec un peu d’imagination, le geofencing peut apporter des fonctionnalités sympas sur votre application. Voici quelques exemples d’applications :

  • Informations : pour rafraîchir le contenu avant de prendre les transports
  • Calendrier : pour vous rappeler de récupérer vos vêtements au pressing
  • Paramétrage de smartphone : pour activer le mode silencieux quand vous partez de la maison
  • Réseau social ambiant basé sur les lieux : pour avoir une idée de la position de vos amis proches.

Certaines applications y recourent de manière intelligente :

  • Instapaper, un lecteur d’actualités (ex : rafraîchit votre flux d’actualités en partant de la maison)
  • IFTTT, un service permettant de lier un évènement à une action (ex : activer la sonnerie de votre téléphone quand vous arrivez à la maison)

Précision et consommation de la batterie

Cette partie traite du compromis à faire entre une bonne précision et une bonne autonomie. Le GPS consomme beaucoup de batterie. Pour en consommer beaucoup moins, le geofencing ne l’utilise pas. A la place, il utilise les informations des stations cellulaires et du Wi-Fi. Cela fournit une précision honnête tout en étant moins énergivore.

Précision

Oui, le réseau cellulaire et le Wi-Fi peuvent aider votre smartphone à fournir sa position. Comment ? Avec la triangulation ainsi que les données de positions que Apple / Google relèvent. La précision dépend grandement de la densité de routeurs Wi-Fi et de stations cellulaires : la triangulation fonctionne assez mal dans des milieux ruraux.

Pour vous donner une idée de la précision des différentes technologies, Google fournit les indications suivantes:

Type

Précision

Remarques

GPS

“Plusieurs mètres” (5-15m)

ne fonctionne pas en intérieur

Wi-Fi

“similaire à la portée d’un routeur standard” (20-200m)

précision honnête

Identifiant de station cellulaire

“jusqu’à plusieurs km” (500m-10km)

dépend de la densité du réseau cellulaire

Cependant, vous ne devriez pas vous attendre à une très bonne précision en utilisant les implémentations de geofencing fournies par Apple et Google. L’implémentation dans iOS ajoute un seuil (qui n’est pas documenté pour Android, mais le fonctionnement doit être similaire), afin d’éviter les fausses notifications :

The user’s location must cross the region boundary, move away from the boundary by a minimum distance, and remain at that minimum distance for at least 20 seconds before the notifications are reported.The specific threshold distances are determined by the hardware and the location technologies that are currently available. For example, if Wi-Fi is disabled, region monitoring is significantly less accurate. However, for testing purposes, you can assume that the minimum distance is approximately 200 meters.

En substance, le seuil (distance minimum) doit être largement dépassé pendant un certain temps pour que la notification soit envoyée. On notera donc que si l’utilisateur franchit la zone, la notification n’est pas lancée immédiatement. De plus, ce seuil dépend des technologies disponibles (Wi-Fi et réseau cellulaire activés ou non).

Ainsi, les questions que vous devriez vous poser quand vous concevez votre application sont :

  • Mes utilisateurs vivent-ils en ville ?
  • Mes utilisateurs laissent-ils le Wi-Fi activé quand ils utilisent mon application ?
  • Est-il crucial que mon application envoie une notification immédiatement après que l’utilisateur franchit la zone ?
  • Le pire cas est-il acceptable pour mon service ?

Autonomie

Comme le geofencing utilise seulement le réseau cellulaire et le Wi-Fi, il ne devrait pas être très énergivore. Cependant, certains utilisateurs de la fonction de geofencing dans l’application Rappels d’iOS se sont plaints d’une chute d’autonomie anormale. L’impact du geofencing sur l’autonomie sera abordé prochainement, dans un autre article.

Google a introduit le geofencing via matériel avec Jelly Bean, qui est plus efficient que de faire les calculs de localisation de façon logicielle. Ceci est disponible sur les Nexus 4 et 7 (2013) et peut-être plus, mais ni Google ni les fabricants n’ont communiqué dessus après la sortie de Jelly Bean.

Ils ont également ajouté un mode de scan Wi-Fi (logiciel), qui est exactement le même que celui d’iOS.

Conclusion

Le geofencing permet d’ajouter des fonctionnalités discrètes, mais géniales si le cas d’usage est bien adapté (c’est-à-dire si la précision convient à vos besoins). On devra tester l’impact sur l’autonomie, mais s’il est acceptable, rien ne devrait vous retenir de l’utiliser !

Apple et Google fournissent tous deux aux développeurs des méthodes assez haut-niveau pour utiliser le geofencing dans vos applications. Pour qu’il consomme assez peu de batterie, il recourt au Wi-Fi et/ou à la triangulation cellulaire. Le défaut de cette technique est qu’elle a une précision moyenne et dépend grandement de la densité d’émetteurs, mais peut suffire en fonction de vos cas d’usages.

Sur Android, vous pouvez réveiller votre application avec le geofencing et récupérer des positions GPS afin d’améliorer la précision de la position de votre smartphone. Mais si vous ne pouvez pas recourir au geofencing à cause de précision moyenne, vous devrez chercher ailleurs. Vous avez peut-être entendu parler d’iBeacon qui peut aider en intérieur mais ce sera pour un autre billet également.

No items found.
Pour aller plus loin :