Flutter (software)

Da Wikipedia, l'enciclopedia libera.
Vai alla navigazione Vai alla ricerca
Flutter
software
Logo
Logo
GenereFramework (non in lista)
Software development kit (non in lista)
SviluppatoreGoogle, Jonah Williams, Adam Barth, Greg Spencer e Ian Hickson
Data prima versione23 ottobre 2014
Ultima versione3.19.0 (15 febbraio 2024)
Sistema operativoMicrosoft Windows
macOS
Linux
LinguaggioSkia Graphics Engine
DART
C++
LicenzaBSD 3-clausole
(licenza libera)
Sito webflutter.dev/

Flutter è un framework open-source creato da Google per la creazione di interfacce native per iOS, Android, Linux, macOS e Windows 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'obiettivo 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.[1] Il 4 dicembre 2018, Flutter 1.0 è stato rilasciato all'evento Flutter Live, e rappresenta la prima versione "stabile" del framework. Il 3 marzo 2021 viene rilasciata la versione Flutter 2.0[2] che consente agli sviluppatori di generare in maniera stabile applicazioni multipiattaforma (Android, iOS, Windows, macOS, Linux, Web).

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.

Widget[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 widget[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]

import 'package:flutter/material.dart';

void main() => runApp(HelloWorldApp());

class HelloWorldApp extends StatelessWidget {
  @override
  Widget build(BuildContext context) {
    return MaterialApp(
      title: 'Hello World App',
      theme: ThemeData(
        primaryColor: Colors.red[400],
        accentColor: Colors.yellow,
        fontFamily: "Roboto",
      ),
      home: Scaffold(
        appBar: AppBar(
          title: Text('App Bar Title'),
        ),
        body: Center(
          child: Text('Hello World'),
        ),
      ),
    );
  }
}


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. ^ Google Announced Flutter Release Preview 2, su apptunix.com, Apptunix. URL consultato il 1º marzo 2019 (archiviato dall'url originale il 25 settembre 2018).
  2. ^ (EN) Announcing Flutter 2, su Google Developers Blog. URL consultato l'8 marzo 2021.
  3. ^ (EN) Widget catalog, su flutter.dev. URL consultato il 2 ottobre 2019.

Altri progetti[modifica | modifica wikitesto]

Collegamenti esterni[modifica | modifica wikitesto]