Flutter
Flutter est un kit de développement logiciel (SDK) d'interface utilisateur open-source créé par Google en 2011. Il est utilisé pour développer des applications pour Android, iOS, Linux, Mac, Windows, Google Fuchsia et le web à partir d'une seule base de code (en Dart).
Architecture
- La langage Dart
- Le Moteur Flutter (écrit en C++), s'interface avec les SDK spécifiques aux plateformes
- La Bibliothèque Foundation (API pour communiquer avec le moteur)
- Les Widgets spécifiques à la conception (Material Design-Androïd | Cupertino-Ios)
Hello World
// Copyright 2018 The Flutter team. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.
import 'package:flutter/material.dart';
void main() {
runApp(const MyApp());
}
class MyApp extends StatelessWidget {
const MyApp({Key? key}) : super(key: key);
@override
Widget build(BuildContext context) {
return MaterialApp(
title: 'Welcome to Flutter',
home: Scaffold(
appBar: AppBar(
title: const Text('Welcome to Flutter'),
),
body: const Center(
child: Text('Hello World!'),
),
),
);
}
}
Gestionnaire de dépendances
voir Using packages
Fichier pubspec.yaml
name: myapp
description: A new Flutter project.
# The following line prevents the package from being accidentally published to
# pub.dev using `flutter pub publish`. This is preferred for private packages.
publish_to: 'none' # Remove this line if you wish to publish to pub.dev
# The following defines the version and build number for your application.
# A version number is three numbers separated by dots, like 1.2.43
# followed by an optional build number separated by a +.
# Both the version and the builder number may be overridden in flutter
# build by specifying --build-name and --build-number, respectively.
# In Android, build-name is used as versionName while build-number used as versionCode.
# Read more about Android versioning at https://developer.android.com/studio/publish/versioning
# In iOS, build-name is used as CFBundleShortVersionString while build-number used as CFBundleVersion.
# Read more about iOS versioning at
# https://developer.apple.com/library/archive/documentation/General/Reference/InfoPlistKeyReference/Articles/CoreFoundationKeys.html
version: 1.0.0+1
environment:
sdk: ">=2.16.1 <3.0.0"
# Dependencies specify other packages that your package needs in order to work.
# To automatically upgrade your package dependencies to the latest versions
# consider running `flutter pub upgrade --major-versions`. Alternatively,
# dependencies can be manually updated by changing the version numbers below to
# the latest version available on pub.dev. To see which dependencies have newer
# versions available, run `flutter pub outdated`.
dependencies:
flutter:
sdk: flutter
# The following adds the Cupertino Icons font to your application.
# Use with the CupertinoIcons class for iOS style icons.
cupertino_icons: ^1.0.2
english_words: ^4.0.0
dev_dependencies:
flutter_test:
sdk: flutter
Ajout de package
flutter pub add english_words
Mise à jour
flutter pub get
Liste des librairies
Incorparation
import 'package:english_words/english_words.dart';
Compilation
Ajout du support Desktop à un projet existant :
flutter create --platforms=windows,macos,linux .
Formattage du code
dart format bin lib
Build pour le web :
flutter build web
Thèmes spécifiques
- State management
- Navigation
- Solutions de persistance