Blog ENI : Toute la veille numérique !
Accès illimité 24h/24 à tous nos livres & vidéos ! 
Découvrez la Bibliothèque Numérique ENI. Cliquez ici
💥 Du 22 au 24 novembre : Accès 100% GRATUIT
à la Bibliothèque Numérique ENI. Je m'inscris !
  1. Livres et vidéos
  2. Flutter
  3. API
Extrait - Flutter Développez vos applications mobiles multiplateformes avec Dart
Extraits du livre
Flutter Développez vos applications mobiles multiplateformes avec Dart
9 avis
Revenir à la page d'achat du livre

API

Introduction

En fonction des projets d’applications, il est parfois utile de recourir au hardware de l’appareil, c’est-à-dire sa partie matérielle.

Communément, les deux outils qui servent le plus restent l’appareil photo et le GPS. Ces éléments ne sont pas accessibles directement. L’utilisation de dépendances permettant de les mettre en œuvre facilement est donc indispensable.

Dans ce chapitre, deux exemples concrets sont donnés pour recourir à l’utilisation de l’appareil photo et du GPS.

Pour finir, un point est fait sur les packages disponibles aujourd’hui qui viennent compléter cette offre afin d’avoir accès à d’autres fonctionnalités comme le gyroscope, l’accéléromètre, la batterie…

Appareil photo

L’utilisation de l’appareil photo n’est pas directement intégrée dans le SDK. Il convient de faire appel à un package spécialement dédié à cette tâche. Il en existe plusieurs, mais le plus fiable à ce jour est développé par l’équipe Flutter. Il s’agit d’image_picker. Ce package possède un double rôle puisqu’il permet de prendre des photos et donc d’utiliser le hardware, mais il peut aussi lire des fichiers images présents dans le téléphone.

À ce jour, il possède la note maximale de 100.

Voici l’URL permettant d’y accéder : https://pub.dev/packages/image_picker

1. Installation du package

La première étape consiste, comme à chaque fois, à modifier le fichier pubspec.yaml sous dependencies :

image_picker: ^0.6.4 

Attention, il ne faut pas oublier de cliquer sur Packages get pour récupérer cette dépendance et pouvoir l’utiliser par la suite.

2. Mise à jour des permissions

Précédemment, nous avons évoqué très brièvement les permissions. Elles sont gérées dans des fichiers spécifiques pour chaque OS. Pour Android, le fichier AndroidManifest.xml joue ce rôle tandis que pour iOS, le fichier se nomme Info.plist

Voici l’emplacement de ces fichiers :

  • AndroidManifest.xml :

    Racine du projet -> android -> app -> src -> main

  • Info.plist :

    Racine du projet -> ios -> Runner

Dans le cadre de l’utilisation du package image_picker, il n’y a pas de permission à ajouter pour Android. En revanche, pour iOS, il va falloir les mettre en place. Voici ce qu’il faut ajouter à Info.plist :

<dict> 
   <key>NSPhotoLibraryUsageDescription</key> 
   <string>Utilisation de la librairie de photos</string> 
   <key>NSCameraUsageDescription</key> 
   <string>Utilisation de la camera</string> 
... 

La première permission est NSPhotoLibraryUsageDescription. Elle donne la possibilité d’accéder à la lecture des images dans l’appareil....

GPS

L’utilisation du GPS se passe d’une manière proche de celle développée ci-dessus pour les images.

Il faut recourir à un package permettant d’accéder à la puce GPS. En l’occurrence, il en existe plusieurs qui sont plus ou moins complets.

Parmi eux, le package de l’équipe Flutter, gps, en version 0.1.1 à ce jour. Vraisemblablement, il ne s’agit pas du meilleur aujourd’hui. Il obtient une note de seulement 88 sur 100. Il s’avère assez peu complet, mais reste très accessible. 

Il est disponible ici : https://pub.dev/packages/gps

La communauté se tourne plus vers geolocator ou location qui possèdent tous les deux une note de 100.

Geolocator est disponible ici : https://pub.dev/packages/geolocator

Location est disponible ici : https://pub.dev/packages/location

Pour l’exemple qui va suivre le package location va être utilisé. Il est plus simple d’emploi et convient mieux au débutant.

1. Installation du package

Afin d’avoir accès à l’ensemble des éléments du package location, il convient de le déclarer dans le fichier pubspec.yaml :

dependencies: 
 location: ^3.0.2 

Après avoir sauvegardé cette modification, il suffit maintenant de cliquer sur Packages get pour récupérer les sources.

2. Mises à jour des permissions

L’utilisation de la puce GPS afin de déterminer la position de l’utilisateur requiert des permissions....

Autres API

Il existe de nombreux packages et ressources permettant de contrôler le hardware des appareils. Sans vouloir en faire une liste exhaustive, il est intéressant de noter la présence de quelques dépendances utiles :

  • Pour l’accéléromètre et le gyroscope : sensors de l’équipe Flutter :

  • Pour contrôler l’état du réseau mobile et du Wi-Fi ou obtenir des informations dessus : connectivity de l’équipe Flutter :

  • Pour obtenir des informations sur l’appareil (modèle, marque, version d’OS…) : device_info de l’équipe Flutter :

  • Pour obtenir des informations concernant la batterie : battery de l’équipe Flutter :

Ces packages évoluent plus ou moins vite en fonction des mises à jour qu’ils subissent. Avant de choisir un package, il faut toujours faire le tour de ce qui est proposé et bien vérifier que le package répond aux besoins.