Kleine Einführung
Nach der Ferienpause (dies war im Januar) habe ich mich entschlossen, ein wenig als Android-Entwickler auf Halbzeitbasis zu arbeiten, um Arbeit und Studium zu verbinden.
Bereits im Dezember traf ich den Chefprogrammierer eines IT-Unternehmens mit Sitz in Sotschi.
Ich werde den Namen des Unternehmens nicht zum Zwecke des Unternehmensgeheimnisses offenlegen, dies ist nicht der Punkt. Das Unternehmen ist noch recht jung und nutzt daher neuere Technologien. Ich war überrascht, als mir gesagt wurde, dass sie einen Flutter-Entwickler brauchen, nicht Java / Kotlin.
So habe ich Flutter kennengelernt.
Erste Eindrücke
Ich war total erstaunt, als ich das generierte Mobile App Projekt in Flutter zum ersten Mal sah. Alles war völlig anders als bei der üblichen nativen Android-Entwicklung.
Das erste, was mir auffiel, war eine völlig andere Sprache, Dart.
Ich begann sofort, diesen Abschnitt zu studieren und fand heraus, dass Flutter ein Framework mit einem deklarativen Schreibstil für die Benutzeroberfläche ist.
Ich habe diesen Codierungsstil nie verstanden. Irgendwann in der Vergangenheit habe ich mich entschlossen, React JS zu beherrschen, aber ich konnte nicht darüber hinwegkommen und gab auf (hauptsächlich wegen Dummheit und Faulheit). Warum überhaupt deklarativer Programmierstil? Es gibt einen intuitiv zwingenden: ein Schaltflächenobjekt erstellt, einem übergeordneten Element hinzugefügt usw.
Als ich mich für Flutter interessierte, erkannte und verstand ich die Hauptvorteile dieses Ansatzes:
Weniger Code
Intuitiv
Beschleunigte Entwicklung
Leistung
. .
, , 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
-
Der Artikel ist subjektiv und daher kann ich mich in einigen und vielleicht in jeder Hinsicht irren.
Mein Hauptziel war es, meine bescheidene Entwicklungserfahrung mit Flutter auszudrücken und meine Meinung und einige Kommentare zu teilen.
Am Ende möchte ich darauf hinweisen, dass Flutter alle notwendigen Umstände für die zukünftige Entwicklung hat und möglicherweise sogar über andere Ansätze der plattformübergreifenden Entwicklung (React Native) hinauswächst, wenn sie noch nicht entwachsen sind.
Nützliche Links: