WhatsApp chat

Dart en 20 pasos

Auditoría Odoo ERP, • dart20pasos
Back

Dart es un lenguaje de programación de código abierto desarrollado por Google. Puede ejecutarse en su propia máquina virtual (Dart VM), compilarse a código nativo o a JavaScript, y es el lenguaje con el que se desarrollan las aplicaciones de Flutter. Es un lenguaje orientado a objetos, con tipado estático e inferencia de tipos, sintaxis de estilo C y soporte para programación funcional y asíncrona.

En esta guía repasamos lo esencial del lenguaje en 20 pasos cortos, cada uno con un ejemplo.

1. Instalación

brew install dart

2. Programa

En Dart debes crear un archivo con la extensión .dart, por ejemplo hola_mundo.dart, y ejecutarlo con dart run hola_mundo.dart.

void main() {
    print('Hola mundo');
    }

3. Comentarios

// Esto es un comentario

/* 
  Esto es un comentario
  de varias líneas
*/

4. Constantes

  const PI = 3.1416;
  final double gravedad = 9.8;

5. Variables

  var nombre = 'Juan';
  String nombre = 'Juan';
  int edad = 20;
  double estatura = 1.80;
  bool esMayor = true;

6. Operadores de asignación

  int d = 10;
  d += 2; // 12
  d -= 2; // 10
  d *= 2; // 20
  d %= 6; // 4

7. Operadores relacionales

  // >, <, >=, <=, ==, !=
  int x = 10;
  int y = 4;
  
  bool res = x > y; // true

8. Operadores lógicos

  bool activo = true;
  bool logueado = false;

  bool resultado = activo && logueado; // false
  resultado = activo || logueado; // true
  resultado = !activo; // false

9. Operadores condicionales

  int z = 10;
  String mensaje = z > 10 ? 'Z es mayor a 10' : 'Z es menor o igual a 10';

10. Condicional if

  if (z > 10) {
    print('Z es mayor a 10');
  } else if (z < 10) {
    print('Z es menor a 10');
  } else {
    print('Z es igual a 10');
  }

11. Condicional switch

  int mes = 2;
  String estacion;

  switch (mes) {
    case 1:
    case 2:
    case 12:
      estacion = 'Invierno';
      break;
    default:
      estacion = 'Mes incorrecto';
  }

12. Ciclo for

  for (int i = 0; i < 10; i++) {
    print(i);
  }

13. Ciclo while

  int i = 0;
  while (i < 10) {
    print(i);
    i++;
  }

14. Ciclo do while

  int i = 0;
  do {
    print(i);
    i++;
  } while (i < 10);

15. Ciclo for in

  List<String> listado = ['rojo', 'verde', 'azul'];

  for (String color in listado) {
    print(color);
  }

16. Ciclo for each

  List<String> listado = ['rojo', 'verde', 'azul'];

  listado.forEach((color) => print(color));

17. Funciones

  void saludar() {
    print('Hola mundo');
  }

  void saludar2(String nombre) {
    print('Hola $nombre');
  }

  String saludar3(String nombre, String mensaje) {
    return '$mensaje $nombre';
  }

  String saludar4(String nombre, [String mensaje = 'Hola']) {
    return '$mensaje $nombre';
  }

  String saludar5(String nombre, {String mensaje = 'Hola'}) {
    return '$mensaje $nombre';
  }

18. Funciones flecha

  void saludar() => print('Hola mundo');

  void saludar2(String nombre) => print('Hola $nombre');

  String saludar3(String nombre, String mensaje) => '$mensaje $nombre';

  String saludar4(String nombre, [String mensaje = 'Hola']) => '$mensaje $nombre';

  String saludar5(String nombre, {String mensaje = 'Hola'}) => '$mensaje $nombre';

19. Listas

  List<int> numeros = [1, 2, 3, 4, 5];
  List<String> ciudades = ['Quito', 'Guayaquil', 'Cuenca'];

  print(numeros);
  print(ciudades);

  // Agregar elementos a una lista
  ciudades.add('Loja');
  print(ciudades);

  // Eliminar elementos de una lista
  ciudades.remove('Loja');
  print(ciudades);

20. Mapas (diccionarios)

  Map<String, dynamic> persona = {
    'nombre': 'Juan',
    'edad': 20,
    'soltero': true
  };

  print(persona);
  print(persona['nombre']);
  print(persona['edad']);
  print(persona['soltero']);

  // Agregar elementos a un diccionario
  persona.addAll({'altura': 1.80});
  print(persona);

  // Eliminar elementos de un diccionario
  persona.remove('altura');
  print(persona);

Conclusión

Con estos 20 pasos tienes una base para leer y escribir código en Dart. A partir de aquí, el siguiente paso natural es profundizar en clases, null safety y programación asíncrona (Future, async y await), conceptos que usarás constantemente si desarrollas con Flutter.