Flutter — créer une application sous Android…

Pourquoi Flutter a suscité mon intérêt ? D’une part, parce que… je ne m’emballais pas trop avec les outils ReactNative/NativeScript ni les framework hybrides tels que Cordova/Xamarin… (quoique j’ai un faible pour Ionic hic ;). Aussi, je connais le développement Android JAVA mais pas Swift. Au passage, j’ai créé une application full Android avant la montée en popularité de Kotlin 🙂

Flutter est un framework Open source créé par Google. Il permet de créer une application mobile native sous Android et IOS.

…Origines

Flutter a été créé avec le langage Dart (lui même créé par Google). Dart avait été créé dans l’objectif de concurrencer JavaScript, de créer des applications plus rapides et d’ajouter des fonctionnalités manquantes au JavaScript telles que les classes par exemple…

Pour en revenir à nos moutons, je veux créer une application mobile native compatible avec Android et IOS sans devoir apprendre à/et coder avec 2 langages différents (Android/kotlin et swift). Le choix de Flutter m’a donc paru évident 😉 Au final, je ne me concentre que sur mon code dart. Le reste du travail est confié à Android pour faire en sorte que mon appli fonctionne.

Flutter est très bien documenté. Une application basique Flutter se lance en (à peine) 5 minutes.

Installons Flutter

Je bosse généralement avec Windows. J’utilise un simple éditeur de texte tel que Sublime text et la ligne de commande pour développer avec Flutter : création d’une application, lancement dans un simulateur ou un device, mise à jour d’un package…

On va sur https://flutter.dev/docs/get-started/install/windows et on télécharge le zip

On extrait le zip téléchargée dans C:flutter

On crée/ajoute une entrée dans notre variable d’environnement PATH qui aura la valeur suivante : C:flutterbin

On a le choix de faire cela manuellement ou en ligne de commande. Si on choisit de faire cette manip. en ligne de commande, on ouvre une console DOS et on tape la commande suivante :

PATH %PATH%;C:flutterbin

Pour vérifier, on saisit

path

C:flutterbin doit être ajoutée à la liste. On n’hésite pas à redémarrer la console DOS si besoin (et s’il arrive que cela ne fonctionne pas du premier coup)

Check de flutter avant la création de l’application

flutter doctor

Il se peut qu’on ait les lignes suivantes en retour

[√] Flutter (Channel stable, v1.5.4-hotfix.2, on Microsoft Windows [version 10.0.17134.765], locale fr-FR)
[!] Android toolchain — develop for Android devices (Android SDK version 28.0.3)
 ! Some Android licenses not accepted. To resolve this, run: flutter doctor — android-licenses
[!] Android Studio (not installed)

Dans ce cas, on tape ceci pour ajouter les licences Android.

flutter doctor --android-licenses

A cette étape, si Android Studio n’est pas installé sur la machine, cela fonctionnera quand même. Ce n’est pas une information bloquante donc.

Créons notre 1ere app

Il est temps de passer à l’acte. On ouvre une console DOS dans un dossier sur notre disque dur, et on tape ceci :

flutter create monAppli

Que fait cette commande :

  • Elle crée le dossier monAppli
  • Dans ce dossier, elle crée une application qui utilisera le Material Components.

PS: Petite blague, j’ai voulu faire

flutter create flutter

Pourquoi? par flemme – mais aussi par pur hasard ! et bien, je me suis retrouvé avec l’erreur suivante

Invalid project name: 'flutter' - this will conflict with Flutter package dependencies.

Bon à savoir donc

Lançons cette app

Toujours dans la console DOS, on va dans le dossier monAppli et on lance run

cd monAppli
flutter run

Observons la magie dans notre simulateur ou notre téléphone directement tant qu’on y est 😉

Et voilà… on a créé notre première appli.

Modifions un peu cette app

On va dans notre éditeur de texte , et on ouvre le fichier libmain.dart.

On va modifier le titre . On remplace

home: MyHomePage(title: ‘Flutter Demo Home Page’),

par

home: MyHomePage(title: ‘Flutter application MR’),

Puis le texte

Text(
 ‘You have pushed the button this many times:’,
 ),

par

Text(
 ‘Nb de Clic effectué sur ce bouton :’,
 ),

Dans notre console DOS, on appuie sur la touche “r” de notre clavier. On regarde le résultat dans l’application

Et si…

Parce que la vie nous réserve dès fois quelques surprises. Voici des “Et si…”

J’ai plusieurs simulateurs.

Et que je veux lancer l’appli sur tous les simulateurs y compris mon téléphone.

Ok — au lieu de faire flutter run, on fait

flutter run -d all

Ou sur un seul simulateur dans la liste

flutter run -d <deviceid>

Pour avoir le “deviceid” on fait

flutter devices

On a un retour comme ceci

1 connected device:
Nokia 2 • E1MGAP27C2249175 • android-arm • Android 7.1.1 (API 25)

Il suffit ensuite de faire

flutter run -d E1MGAP27C2249175

pour lancer l’application sur ce device uniquement.

Je ne veux pas installer Android Studio

tout en ayant quand même le SDK android qui tourne

Et ben, on passe par Chocolatey (un gestionnaire de package sur windows)

On lance un powershell pour installer chocolatey. Et on tape:

@powershell -NoProfile -ExecutionPolicy unrestricted -Command “iex ((new-object net.webclient).DownloadString(‘https://chocolatey.org/install.ps1'))" && SET PATH=%PATH%;%ALLUSERSPROFILE%chocolateybin

Lorsque Choco est installé, on va pouvoir installer JDK et android-sdk avec.

choco install adoptopenjdk — version 8.192
choco install android-sdk gradle -y

On installe ensuite le SDK manager (permet d’installer une version quelconque de Android)

"%ANDROID_HOME%toolsbinsdkmanager" "emulator" "platform-tools" "platforms;android-28" "build-tools;28.0.3" "extras;android;m2repository" "extras;google;m2repository"

Autour de flutter

Exemples d’applications développés avec flutter : https://itsallwidgets.com/

Les packages: https://pub.dev/flutter

Version anglaise de cet article

Cet article est également disponible sur Medium https://medium.com/@miarirabs/flutter-dev-1ere-exp%C3%A9rience-ca02e5aeaeec

Mise à jour du 05 nov 2019

Upgrade de flutter

C’est très simple

flutter upgrade

Et le tour est joué.