I 10 pacchetti Flutter migliori e più popolari

Flutter è il toolkit di Google per la creazione di bellissime applicazioni compilate in modo nativo per dispositivi mobili, Web e desktop da una singola base di codice.

Flutter è basato sul linguaggio di programmazione Dart. Ha una comunità ampia e vivace su Dart.dev, che offre sia pacchetti supportati ufficialmente che di terze parti per rendere lo sviluppo su Flutter ancora più produttivo.

Questo articolo elenca i pacchetti più promettenti e più popolari per dare un’idea della maturità di Flutter come piattaforma.

1) HTTP
2) flutter_slidable
3) Condivisione di Preferences
4) sqflite
5) url_launcher
6) video_player
7) crypto
8) carousel_slider
9) path
10) location


1 HTTP

URL: https://pub.dev/packages/http
Funziona su: iOS, Android, Web

Oggigiorno tutto è basato sul web, quindi una solida libreria HTTP è un must. Questo pacchetto Dart contiene una serie di funzioni e classi di alto livello che semplificano l’utilizzo delle risorse HTTP. È ben sviluppato e gestito attivamente dal team Dart. È in circolazione dal 2012, quindi dovrebbe essere solido come una roccia!
La libreria offre funzioni di alto livello che semplificano il lavoro con HTTP:

import 'package:http/http.dart' as http;

# Posting data
var url = 'https://example.com/whatsit/create';
var data = {'name': 'Jack', 'age': 38};

var response = await http.post(url, body: data);

print('Response status: ${response.statusCode}');
print('Response body: ${response.body}');

# A simple GET request
print(await http.read('https://example.com/foobar.txt'));

2 flutter_slidable

URL: https://pub.dev/packages/flutter_slidable
Funziona su: iOS, Android, Web

Il plug-in flutter_slidable aggiunge un widget di scorrimento ricco di funzionalità al vostro progetto. I cursori come questo sono spesso visti in elenchi scorrevoli. L’app Gmail è un esempio notevole, in cui gli elementi dell’elenco scorrevole offrono un significativo miglioramento della produttività.
Questo plugin è ricco di funzionalità e pronto per l’uso, ma anche altamente personalizzabile se necessario. Alcune delle caratteristiche elencate sono:

– Accetta elenchi di widget principali (sinistra / in alto) e secondari (destra / in basso) come azioni di diapositiva
– Può essere dismesso
– Quattro riquadri azione integrati
– Due widget di azione di diapositiva incorporati
– Animazione di eliminazione incorporata
– Crea facilmente layout e animazioni personalizzati
– Si chiude quando un’azione di scorrimento è stata toccata (sovrascrivibile)
– Si chiude quando lo scorrevole più vicino inizia a scorrere (sovrascrivibile)
– Opzione per disabilitare facilmente l’effetto diapositiva

3 Condivisione di Preferences

URL: https://pub.dev/packages/shared_preferences
Funziona su: iOS, Android, Web, Linux

Questo pacchetto racchiude le librerie di archiviazione persistente specifiche della piattaforma. È indentato per dati semplici, come le preferenze dell’utente, e utilizza:

– NSUserDefaults su iOS e macOS
– SharedPreferences su Android
– LocalStorage sui siti web
– Un file JSON sul file system locale per Linux

I dati possono essere conservati su disco in modo asincrono e non vi è alcuna garanzia che le scritture verranno mantenute su disco dopo la restituzione, quindi questo plug-in non è pensato per l’archiviazione di dati critici. Per quello si usa normalmente sqflite (vedi sotto).

4 sqflite

URL: https://pub.dev/packages/sqflite
Funziona su: iOS, Android, MacOS

Questo è il plugin SQLite per Flutter. Supporta iOS, Android e MacOS. Il Web non è supportato poiché non esiste un sistema di persistenza basato su SQL nei browser Web. Alcune delle sue caratteristiche sono:

– Supporto per transazioni e batch
– Gestione automatica delle versioni
– Aiutanti per inserire / interrogare / aggiornare / eliminare query

Le operazioni vengono eseguite in un thread in background su iOS e Android per impedire il blocco dell’interfaccia utente
Se hai bisogno di qualcosa di più dell’archiviazione dei dati di base (shared_preferences), non cercare oltre.

5 url_launcher

URL: https://pub.dev/packages/url_launcher
Funziona su: iOS, Android, Web

Questo plugin ti aiuta ad avviare un URL. Gli URL possono essere dei seguenti tipi:

HTTP: http://example.org e https://example.org
E-mail: mailto:
Numeri di telefono: tel:
Messaggio di testo SMS: sms:

L’utilizzo di base è molto semplice:

const url = 'https://flutter.dev';

if (await canLaunch(url)) {
  await launch(url);
} else {
  throw 'Could not launch $url';
}

6 video_player

URL: https://pub.dev/packages/video_player
Funziona su: iOS, Android, Web

Sono supportati molti formati, ma tutto dipende dalla piattaforma che stai utilizzando. Ad esempio, le librerie di supporto differiscono per iOS e Android. Inoltre, sul Web, i formati supportati dipendono dal browser che stai utilizzando.

Tieni presente che anche se si chiama video_player, questo plug-in può anche riprodurre l’audio. Poiché il plug-in è piuttosto maturo e ha raggiunto la stabilità dell’API, non è una cattiva idea usarlo per l’audio su alcune delle alternative.

Questo plugin può riprodurre video da un file locale (risorse) e un server remoto (ad esempio, un sito web).

7 crypto

Funziona su: tutte le piattaforme

Proveniente dallo stesso team di Dart, questo è un insieme di funzioni di hashing crittografiche implementate in puro Dart. Ciò significa che non hai bisogno di librerie esterne per farlo funzionare.
Sono supportati i seguenti algoritmi di hashing:

SHA-1
SHA-224
SHA-256
SHA-384
SHA-512
MD5
HMAC (ovvero HMAC-MD5, HMAC-SHA1, HMAC-SHA256)

Poiché questo non è uno strumento GUI ma semplicemente una libreria crittografica, funziona su tutte le piattaforme supportate.

URL: https://pub.dev/packages/carousel_slider
Funziona su: iOS, Android, Web

Un cursore a carosello fa parte di molte app e siti Web. Il plug-in carousel_slider offre un carosello eccellente e personalizzabile che funziona su più piattaforme.

Poiché il carousel accetta i widget come contenuto, puoi far scorrere qualsiasi cosa che possa essere un widget.
Per esempi dal vivo, puoi visitare questo sito Web, che utilizza Flutter web per dimostrare il plug-in.

Ecco un esempio di come creare un carosello nella tua app:

CarouselSlider(
  options: CarouselOptions(height: 400.0),
  items: [1,2,3,4,5].map((i) {
    return Builder(
      builder: (BuildContext context) {
        return Container(
          width: MediaQuery.of(context).size.width,
          margin: EdgeInsets.symmetric(horizontal: 5.0),
          decoration: BoxDecoration(
            color: Colors.amber
          ),
          child: Text('text $i', style: TextStyle(fontSize: 16.0),)
        );
      },
    );
  }).toList(),
)

Il carosello ha diverse opzioni configurabili, come:

– l’altezza e le proporzioni
– abilitare lo scorrimento infinito
– invertendo la giostra
– abilitare la riproduzione automatica con un intervallo configurabile, durata dell’animazione
– definire la direzione di scorrimento (verticale, orizzontale)

9 path

URL: https://pub.dev/packages/path
Funziona su: iOS, Android, Web

I percorsi sono sia facili che incredibilmente complessi perché differiscono da piattaforma a piattaforma. Per assicurarti di non introdurre bug o vulnerabilità di sicurezza nel tuo codice, usa sempre la libreria dei percorsi quando gestisci i percorsi. Per unire una directory e un file con il separatore di file per il sistema operativo corrente, utilizzare:

import 'package:path/path.dart' as p;
p.join('directory', 'file.txt');

10 location

URL: https://pub.dev/packages/location
Funziona su: iOS, Android, Web, MacOS

Uno dei grandi vantaggi dei telefoni è la loro mobilità combinata con la capacità di tracciare accuratamente la posizione. Questo ci ha già fornito molte applicazioni utili. Il plug-in di posizione per Flutter semplifica l’accesso alla posizione corrente. Fornisce callback quando la posizione è cambiata. Offre inoltre endpoint API per richiedere correttamente l’accesso alla posizione di un utente.