Petite introduction
Après les vacances (c'était en janvier), j'ai décidé de travailler un peu en tant que développeur Android à mi-temps afin de combiner travail et études.
En décembre, j'ai rencontré le programmeur en chef d'une société informatique basée à Sotchi.
Je ne divulguerai pas le nom de l'entreprise à des fins de secret d'entreprise, ce n'est pas le but. L'entreprise est assez jeune et utilise donc des technologies plus récentes. J'ai été surpris quand on m'a dit qu'ils avaient besoin d'un développeur Flutter, pas de Java / Kotlin.
C'est comme ça que j'ai connu Flutter.
Premières impressions
J'ai été complètement surpris quand j'ai vu pour la première fois le projet d'application mobile généré dans Flutter. Tout était complètement différent du développement Android natif habituel.
La première chose qui a attiré mon attention était une langue complètement différente, Dart.
J'ai immédiatement commencé à étudier cette section et j'ai découvert que Flutter est un Framework avec un style déclaratif d'écriture d'interface utilisateur.
Je n'ai jamais compris ce style de codage. Dans le passé, j'ai décidé de maîtriser React JS, mais je ne pouvais pas m'en remettre et j'ai abandonné (principalement à cause de la stupidité et de la paresse). Pourquoi un style de programmation déclaratif? Il y en a un intuitivement impératif: créer un objet bouton, l'ajouter à un élément parent, etc.
Lorsque je me suis intéressé à Flutter, j'ai réalisé et compris les principaux avantages de cette approche:
Moins de code
Intuitif
Développement accéléré
Pouvoir
. .
, , UI , Android Studio:
Scaffold(
appBar: AppBar(
title: Text("Counter App"),
),
body: Center(child: Column(
mainAxisAlignment: MainAxisAlignment.center,
children: [
Text("You have pushed the button this many times: "),
SizedBox(height: 10),
Text("$counter",
style: Theme.of(context).textTheme.headline4,
)
],
),),
floatingActionButton: FloatingActionButton(
onPressed: () { setState(() => counter = counter + 1); },
child: Icon(Icons.add),
),
);
: , )))
: , - , UI
: . UI .
, Dart : , , UI .
. Flutter , , Java / Kotlin - 100% ( ).
, , : , .
flutter.dev, .
, sqlite Android iOS - sqflite.
, (pub-) pubspec.yaml, build.gradle (Android).
Dart ( Flutter) pub.dev
, Flutter Android iOS, .
C .
Dart. , Dart Tour
, - , UI (, ..). : , ..
Thread' (Java), Coroutines (Kotlin) Android
Flutter , :
fun getArticles() async {
final response = await http.get("https://xxx.ru/rest/getArticles");
final List<Article> articles = decodeArticles(response.body);
setState(() {
this.articles = articles;
});
}
Flutter , setState
.
setState
(Dart ) , .
setState
: , , Flutter . ( , Flutter , , , ).
Flutter - .
Flutter .
Flutter - ( ).
Flutter .
provider . .
Flutter
, Flutter - framework , , React Native .
Flutter.
Flutter :
UI framework, . Android , .. View ;
- .. Flutter , iOS Android, , :)
,
- Flutter , pub-, ). Flutter , Flutter Engage 2021
Flutter:
- , Flutter
-
L'article est d'une opinion subjective et donc je peux me tromper à certains, et peut-être à tous les égards.
Mon objectif principal était d'exprimer mon humble expérience de développement avec Flutter et de partager mon avis et quelques commentaires.
En fin de compte, je voudrais noter que Flutter a toutes les circonstances nécessaires pour un développement futur et peut même dépasser d'autres approches de développement multiplateforme (React Native), s'il n'est pas encore dépassé.
Liens utiles: