Flutter (software)

Da Wikipedia, l'enciclopedia libera.
Jump to navigation Jump to search
Flutter
software
Logo
Genereframework (non in lista)
SviluppatoreGoogle and community
Data prima versioneAlpha (v0.0.6) / Maggio 2017
Ultima versioneFlutter v1.9.1 (11 settembre 2019 [1])
Ultima betaRelease Preview 2 (v0.8.2) (Settembre 2018)
Sistema operativoWindows, MacOS e Linux(non in lista)
LinguaggioSkia Graphics Engine
DART
C++
c, c++, dart e skia graphics engine (non in lista)
Licenzalicenza BSD
(licenza libera)
Sito webflutter.dev

Flutter è un framework open-source creato da Google per la creazione di interfacce native per iOS e Android, oltre ad essere il metodo principale per la creazione di applicazioni per Google Fuchsia.

Con la versione 1.9, Google introduce il supporto per le applicazioni web e per siti statici scritti in linguaggio Dart. Così, con questo aggiornamento, si è ampliata la lista delle piattaforme supportate.

Storia[modifica | modifica wikitesto]

La prima versione di Flutter fu conosciuta come "Sky" e girava su Android. Presentato al summit per sviluppatori Dart del 2015, con l'obbiettivo di renderizzare costantemente a 120 fps. Durante il Keynote del Google Developer Days a Shanghai, Google annuncia Flutter Release Preview 2 il quale è stato l'ultimo grande rilascio prima di Flutter 1.0.[2] Il 4 dicembre 2018, Flutter 1.0 è stato rilasciato all'evento Flutter Live, e rappresenta la prima versione "stabile" del framework.

Architettura Framework[modifica | modifica wikitesto]

I componenti principali di Flutter sono:

  • Dart Platform
  • Flutter engine
  • Foundation library
  • Design-specific widgets

Flutter engine[modifica | modifica wikitesto]

Flutter engine è scritto principalmente in C++, fornisce supporto per il rendering a basso livello utilizzando la libreria grafica di Google, Skia Graphics. Inoltre, si interfaccia con SDK della piattaforma specifica come quelli di Android o iOS. Una particolarità molto apprezzata del Flutter engine, grazie al codice scritto in Dart, è quella di poter effettuare un "hot-reload" dell'applicazione dove la modifica del codice viene iniettata immediatamente all'interno dell'applicazione così da visualizzare all'istante le modifiche effettuate senza un riavvio completo o un cambio di stato.

Foundation library[modifica | modifica wikitesto]

La Foundation library, scritta in Dart, fornisce classi e funzioni di base utilizzate per costruire applicazioni che utilizzano Flutter, come le API per comunicare con l'engine.

Widgets[modifica | modifica wikitesto]

La progettazione dell'interfaccia utente in Flutter prevede l'assemblaggio e/o la creazione di vari widget. Un widget in Flutter rappresenta una descrizione immutabile dell'interfaccia utente; grafici, testo, forme e animazioni vengono creati utilizzando i widget. È possibile creare widget più complessi combinando molti più semplici. Sul sito della documentazione[3] di Flutter è possibile consultare tutti i Widgets disponibili.

Design-specific widgets[modifica | modifica wikitesto]

Il framework Flutter contiene due set di widget conformi a specifici linguaggi di progettazione. I widget in stile Material Design implementano il design di Google con lo stesso nome, mentre i widget di Cupertino imitano il design iOS di Apple.

Esempio di Hello, World in Flutter[modifica | modifica wikitesto]

 1 import 'package:flutter/material.dart';
 2 
 3 void main() => runApp(HelloWorldApp());
 4 
 5 class HelloWorldApp extends StatelessWidget {
 6   @override
 7   Widget build(BuildContext context) {
 8     return MaterialApp(
 9       title: 'Hello World App',
10       theme: ThemeData(
11         primaryColor: Colors.red[400],
12         accentColor: Colors.yellow,
13         fontFamily: "Roboto",
14       ),
15       home: Scaffold(
16         appBar: AppBar(
17           title: Text('App Bar Title'),
18         ),
19         body: Center(
20           child: Text('Hello World'),
21         ),
22       ),
23     );
24   }
25 }


L'importazione del pacchetto (package) Material consente l'uso di classi e Widget a tema Material Design. Questo pacchetto è fondamentale per la realizzazione dell'applicativo. È disponibile anche il pacchetto Cupertino per la realizzazione di UI in stile iOS.

Il widget "MaterialApp" è l'inizio dell'applicazione, esso permette di impostare il tema, la navigazione tra le pagine e la home page (oltre a tante altre impostazioni).

Note[modifica | modifica wikitesto]

  1. ^ (EN) Release Flutter, su https://github.com/flutter/flutter/release. URL consultato il 2 ottobre 2019.
  2. ^ Google Announced Flutter Release Preview 2, Apptunix. URL consultato il 1º marzo 2019 (archiviato dall'url originale il 25 settembre 2018).
  3. ^ (EN) Widget catalog, su flutter.dev. URL consultato il 2 ottobre 2019.

Collegamenti esterni[modifica | modifica wikitesto]