Flutter: Generalidades del lenguaje Dart

Uno de los inconvenientes de utilizar el Framework de Flutter para desarrollar aplicaciones móviles es que los desarrolladores deben aprender un nuevo lenguaje de programación. Dart es un lenguaje de programación de uso general de código abierto y orientado a objetos con sintaxis de estilo C. Admite conceptos de programación como interfaces y clases. Las colecciones de Dart se pueden usar para replicar estructuras de datos como matrices, genéricos y tipo opcional.

La siguiente sintaxis muestra un programa escrito en Dart:

void main() {
	print("Hola mundo !");
}

Tipos de datos

Dart admite los siguientes tipos de datos:

Cadenas: representa una secuencia de caracteres. Los valores de cadena se especifican en comillas simples o dobles.

void main() {
   String cadena1 = 'Esto es una cadena';
   String cadena2 = "Esto es otra cadena";
   print("Cadena 1: " + cadena1 + " Cadena 2: " + cadena2) ;
}

Números: se utiliza para representar literales numéricos: entero y doble.

void main() {
   int entero = 32;
   double decimal = 32.5 ;
   print("Entero: " + entero.toString() + " Decimal: " + decimal.toString()) ;
}

Booleanos: Dart utiliza la palabra clave bool para representar valores booleanos: true o false.

void main() {
   bool bandera = true ;
   print(bandera);
}

Listas: se utiliza para representar una colección de objetos.

void main() {
   var lista = [1,2,3,4,5];
   print(lista);
}

Mapas: se utiliza para representar una colección de objetos como llave:valor.

void main() {
 var mapa = {'id': 1,'name':'Dart'};
 print(mapa);
}

Dinámico : si el tipo de variable no está definido, su tipo predeterminado es dinámico.

void main() {
	dynamic name = "Dart";
	print(name);
}

Ciclos y Condicionales

El lenguaje Dart admite las condicionales if ó if else similar al lenguaje Java, al igual el que tipo de condicional de cambio switch.

void main() {
	dynamic name = "Dart";
	if(name == "Dart") {
	    print("Si");
	} else {
	    print("No");
	}
}
void main() {
	dynamic n = 1;
	switch(status) {
      case 0:
        print "No es el número";
        break;
      case 1:
        print "Es el número";
        break;
      default:
        print "No es el número";
    }
}

Dart admite los ciclos for, for..in, while y do.. while.

void main() {
	for( var i = 1 ; i <= 10; i++ ) {
		if(i%2==0) {
			print(i);
		}
	}
}

Funciones

Las funciones en Dart son similares a la de muchos lenguajes:

void main() {
	add(2,2);
}
void add(int a,int b) {
	int c;
	c = a + b ;
	print("Resultado: " + c.toString());
}

Clases y objetos

Dart es un lenguaje orientado a objetos. Admite funciones de programación orientada a objetos como clases, interfaces, etc. Una definición de clase incluye lo siguiente:

  • Campos
  • Getters y setters
  • Constructores
  • Funciones

Ahora, creemos una clase simple usando las definiciones anteriores:

class Persona {
	String nombre;
	String get nombre {
		return name;
	}
	void set nombre(String nombre) {
		this.nombre = nombre;
	}
	void nombreToString() {
		print(nombre);
	}
}
void main() {
	Persona persona = new Persona();
	persona.nombre = "Jhon";
	persona.nombreToString();
}

Convertir objetos a y desde un json

void main() {
	String json = "..." ;
    Map<String, dynamic> map = jsonDecode(json);
    var persona = new Persona();
    persona.nombre = map['nombre'];
	persona.nombreToString();
	var map = new Map();
    map["nombre"] = persona.nombre;
    String json = jsonEncode(map);
    print(json);
}

Hasta aquí hemos visto algunas cuestiones del lenguaje Dart, como pueden apreciar es muy similar a muchos de los lenguajes que ya conocer, tenga en cuenta que siempre nos quedan elementos por ver, pero ya eso usted lo aprederá en el camino.