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 ad 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.24.3 (12 settembre 2024)
Sistema operativoMicrosoft Windows
macOS
Linux
LinguaggioSkia Graphics Engine
DART
C++
LicenzaBSD 3-clausole
(licenza libera)
Sito webflutter.dev/

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.

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

I componenti principali di Flutter sono:

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

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

  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