Loading ...

Dart ci mette a disposizione la classe Platform per ottenere diverse informazioni di sistema.

Nel codice che trovate sotto stampiamo a video diverse cose; prima tutte le variabili d'ambiente, e poi diverse informazioni generiche (sistema operativo, host name, numero di processori, ecc).

Dart ha già di default una libreria per il parsing della riga di comando.

Tra l'altro è anche abbastanza avanzata; si chiama args, e va solo importata.

Dart supporta la programmazione asincrona di default; per farlo usa la classe Future!

Questa classe ci permette di eseguire una operazione anche dopo la fine del codice.

Detto così è un pò difficile da capire, quindi passiamo ad un esempio.

Anche Dart come altri linguaggi ci permette di creare eccezioni custom.

Non è che serva spesso, ma può tornare utile.

Per usarle, dovete creare una classe che implementa Exception, e poi richiamarla nel vostro codice.

Dart ha un modo un pò diverso di gestire le eccezioni, in quanto è possibile usare sia on che catch:

  • on -> viene deciso quale eccezione controllare, e viene stampato un messaggio custom
  • catch -> viene intercettata qualsiasi eccezione, ed è possibile visualizzare quale viene intercettata

Qua sotto vi ho postato 4 esempi:

  1. usando on
  2. usando catch
  3. usando un mix dei due
  4. come il primo, ma con finally

Dart è definito come linguaggio "opzionalmente tipizzato".

Quindi anche le collezioni in Dart possono essere eterogenee.

Ma se vogliamo possiamo tipizzarle usando i Generics.

Oggi vediamo un semplice utilizzo delle classi in Dart.

Soprattutto mi ha colpito l'impostazione dei metodi getter e setter, abbastanza diversi a quelli a cui sono abituato in altri linguaggi.

Quello che vogliamo creare è un classico layout master-detail in Flutter, senza l'ausilio di qualche sorta di designer (sempre se ne esistono).

Cominciamo col creare una nostra classe "POJO":

import 'package:meta/meta.dart';

class Nota {
  Nota({
    @required this.id,
    @required this.titolo,
    @required this.testo,
  });

  final int id;
  final String titolo;
  final String testo;
}

final List<Nota> note = <Nota>[
  Nota(id: 1, titolo: "UNO", testo: "TESTO 1"),
  Nota(id: 2, titolo: "DUE", testo: "TESTO 2")
];

Le funzioni ricorsive vengono utilizzate per tantissimi scopi, e oggi ne vediamo un esempio in Dart.

Come esempio calcoleremo il fattoriale di un numero passato come parametro (l'esempio più classico).

Seguendo tutte le linee guida ufficiali, ho installato Flutter in maniera molto veloce.

Peccato che dopo aver avviato la app mi usciva questo errore:

couldn't locate lint-gradle-api-26.1.2.jar