Flutter (software)

framework utilizzato per realizzare applicativi multipiattaforma sviluppato da Google

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

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.29.2 (13 marzo 2025)
Sistema operativoMicrosoft Windows
macOS
Linux
LinguaggioSkia Graphics Engine
Dart
C++
LicenzaBSD 3-clausole
(licenza libera)
Sito webflutter.dev/

Con la versione 1.9, Google ha introdotto il supporto per le applicazioni web e per i siti statici scritti in linguaggio Dart, permettendo così l'ampliamento della lista delle piattaforme supportate.

La prima versione di Flutter conosciuta aveva come nome "Sky" e girava su Android. È stato 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 ha annunciato Flutter Release Preview 2, che è stato l'ultima grande pubblicazione di una versione prima di Flutter 1.0.[1] Il 4 dicembre 2018, Flutter 1.0 è stato pubblicato all'evento Flutter Live, e ha rappresentato la prima versione stabile del framework. Il 3 marzo 2021 è stata pubblicata la versione 2.0 di Flutter[2], che consente agli sviluppatori di generare in maniera stabile applicazioni multipiattaforma (Android, iOS, Windows, macOS, Linux, Web).

Architettura del framework

modifica

I componenti principali di Flutter sono:

  • La piattaforma Dart
  • Il motore grafico di Flutter
  • La Foundation library
  • I Design-specific widget

Flutter engine

modifica

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

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.

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

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
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).

Pub.dev

modifica

Al fine della realizzazione di applicazioni più complesse è, talvolta, necessario sfruttare librerie esterne. A tale scopo, Google, ha messo a disposizione degli utenti il sito pub.dev. Esso è la repository ufficiale per i pacchetti Dart e Flutter, dove sono disponibili sia librerie create e supportare direttamente da Flutter, che dai singoli utenti.

  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

Collegamenti esterni

modifica