Dart básico

2024-01-08T15:00:00-05:00 | 5 minutos de lectura | Actualizado en 2025-01-24T07:42:46-05:00

jaimetellezb
Dart básico

Introducción al lenguaje Dart.

Vista general

Dart es un lenguaje optimizado para el cliente para desarrollar aplicaciones rápidas en cualquier plataforma. Su objetivo es ofrecer el lenguaje de programación más productivo para desarrollo multiplataforma.

  • Dart también forma la base de Flutter, es el lenguaje sobre el cual se ejecuta.
  • Dart es de tipo seguro, utiliza la verificación de tipo estático para asegurarse de que un valor variable siempre coincide con el tipo estático variable.
  • Dart permite el uso de un tipo de dato dinámico (dynamic).
  • Dart tiene null safety, esto quiere decir que los valores no pueden ser nulos a menos que así se defina.
  • Dart tiene Dartpad, que es un ejecutador de código online para Dart, se puede usar para una introducción rápida del lenguaje.

Librerías core de Dart

Daremos una vista general de algunas de las librerías más importantes de Dart.

  • dart:core — Contiene tipos de datos, colecciones y más funcionalidades básicas. Se importa automáticamente.
  • dart:async — Contiene las clases para trabajar con programación asíncrona, clases como: Future y Stream.
  • dart:math — Contiene constantes y funciones matemáticas para hacer cálculos, además generador de números aleatorios.
  • dart:collection — Contiene clases y utilidades para trabajar con colecciones.
  • dart:convert — Contiene codificadores y decodificadores de datos, incluyendo JSON y UTF-8.
  • dart:io — Contiene entrada y salida para programas que puedan utilizar Dart VM, incluyendo aplicaciones, servidores y scripts.
  • dart:html — Contiene el DOM y otras APIs para aplicaciones basadas en el navegador. Se pueden encontrar más librerías internas o externas en el sitio pub.dev.

Plataformas de Dart

Plataforma nativa

Para aplicaciones dirigidas a dispositivos móviles y de escritorio, Dart incluye tanto una Dart VM con una compilación justo a tiempo (JIT) y un compilador antes de tiempo (AOT).

Dart Nativo (código de máquina JIT y AOT)

Dart VM ofrece compilador justo a tiempo (JIT) con recarga en caliente (hot reload), lo cual hace que los cambios en código se vean casi instantáneamente, también hay colecciones de métricas y depuración (DevTools).

Dart compilador de antemano (AOT), puede compilar en ARM o x64 el código, esto para cuando las aplicaciones ya están listas para subir a producción.

Plataforma web

Para aplicaciones dirigidas a la web, Dart puede compilar para desarrollo o fines de producción. Su compilador web traduce Dart en JavaScript.

Dart web

Dart web permite ejecutar código en plataformas con JavaScript, compila código de Dart a JavaScript.

Hola Mundo

La función main() es donde comienza la ejecución de una aplicación en Dart. Se coloca la palabra reservada void adelante ya que es una función que no retorna un valor. Para mostrar texto en consola se usa la función print().

void main() {
  print('Hola Mundo!');
}

Variables

En Dart se puede usar la palabra reservada var en reemplazo de los tipos de datos, los tipos de datos de estas variables se determinan por su valor inicial, esto es lo que se conoce como inferencia de tipo.

var name = 'Pepito';
var year = 1990;
var diameter = 3.5;
var listOfMonths = ['Enero', 'Febrero', 'Marzo', 'Abril'];
var image = {
  'ids': [1],
  'url': '//image.jpg'
};

Más información sobre variables en Dart aquí .

Funciones

Dart siempre recomienda el uso de tipos de datos para los parámetros de funciones y su valor de retorno, evitar en lo posible usar var.

int add(int n1, int n2) {
  return n1 + n2;
}

Más información sobre funciones en Dart aquí .

Comentarios

Los comentarios en Dart por lo general usan //.

// comentario de una sola línea.
/// comentario utilizado para documentar librerías, clases en general
/* comentario también de una línea o múltiples */

Más información sobre comentarios aquí .

Importaciones

Para acceder a clases, librerías o APIs se usa la palabra reservada import.

// Importar una librería
import dart:core;
// Importar una librería externa
import package:lib/test.dart;

// Importar otros archivos o clases.
import path/example/file.dart;

Para saber más sobre importaciones véase aquí .

Clases

Las clases en Dart utilizan la palabra reservada class seguida del nombre de la clase.

class Person {
String name;
DateTime? birthDate;

// atributo de solo lectura
int? get birthDateYear => birthDate?.year;

// Constructor, con los 2 atributos declarados, con el this quedan inicializados los atributos
Person(this.name, this.birthDate) {
// Aquí se puede agregar código que se ejecuta al inicializar la clase
}

// Constructor con nombre
Person.toName(String name) : this(name, null);
}

Para saber más sobre clases en Dart, véase aquí .

Enums

Las enumeraciones en Dart tienen la palabra reservada enum seguida del nombre del enum.

enum Month {
  january, february, march, april
}

Para saber más sobre enums en Dart, véase aquí .

Interfaces y clases abstractas

Interfaz

En Dart todas las clases definen implícitamente una interfaz. Por lo anterior, cualquiera class puede ser una interfaz.

class Animal {
  void printType(String type) {
    print(Animal type);
  }
}
class Bird implements Animal {
  void printType() {
    print(Bird!!);
  }
}

Para saber más sobre interfaces implícitas en Dart, véase aquí .

Clase abstracta

Una clase abstracta en Dart son las que contienen una o más de una función abstracta (que no tengan implementación). Se usa la palabra reservada abstract para declararla. Las clases que usan una clase abstracta deben agregar la palabra reservada extends.

abstract class Bird {
  void fly();
  void eat();
}

class Eagle extends Bird {
  @override
  void fly() {
    print(eagle flying);
  }

  @override
  void eat() {
    print(eagle eating);
  }
}

Para saber más sobre clases abstractas en Dart, véase aquí .

Seguir el estudio de Dart, con el uso de Dartpad y con las variables y sus diferentes tipos Ver siguiente post .


Recursos

© 2022 - 2025 jaimetellezb - Compartir guías y tutoriales de programación.

🌱 Powered by Hugo with theme Dream.

Sobre mí

alt

Ingeniero de software

Hola, bienvenidos a mi blog sobre guías y tutoriales de programación.

Aquí podrás encontrar guías y tutoriales sobre algunos temas de tecnología en general. La idea es poder ayudar a que ciertas cosas como configuraciones de nuevas herramientas sean más fáciles de abordar y utilizar. También pequeños proyectos donde se usen diferentes tecnologías como ejemplo.

Enlaces sociales