Dart es un lenguaje de programación desarrollado por Google, conocido por su eficiencia y versatilidad, especialmente en el desarrollo de aplicaciones móviles con Flutter. En esta guía, exploraremos los conceptos básicos de Dart, desde la configuración inicial hasta la programación orientada a objetos. Acompañaremos cada sección con ejemplos prácticos para facilitar la comprensión.
1. Introducción y Configuración
Introducción a Dart
Dart es un lenguaje de programación optimizado para aplicaciones de cliente, desarrollado para crear aplicaciones rápidas y eficientes en múltiples plataformas. Su sintaxis es clara y moderna, lo que facilita el aprendizaje para desarrolladores con experiencia en otros lenguajes como Java, JavaScript o C#.
Configuración del Entorno
Antes de comenzar a programar en Dart, es necesario configurar el entorno de desarrollo:
- Instalar Dart SDK: Puedes descargar el SDK de Dart desde la página oficial.
- Elegir un Editor de Código: Se recomienda usar Visual Studio Code con la extensión de Dart para obtener una mejor experiencia de desarrollo.
- Verificar la Instalación: Abre una terminal y ejecuta
dart --version
para asegurarte de que Dart está instalado correctamente.
2. Sintaxis Básica
Variables y Tipos de Datos
Dart es un lenguaje de tipado estático, lo que significa que el tipo de una variable se conoce en tiempo de compilación. Sin embargo, también ofrece flexibilidad con el uso de var
, final
y const
.
Tipos de Datos Básicos
int
: Números enteros.double
: Números de punto flotante.String
: Cadenas de texto.bool
: Valores booleanos (true
ofalse
).
void main() {
// Sintaxis y Variables
var nombre = "Daniela";
final int edad = 25;
const double pi = 3.1416;
print("Mi nombre es $nombre, tengo $edad años y el valor de pi es $pi");
}
Uso de var
, final
y const
var
: Permite la inferencia de tipos. Una vez asignado, el tipo no puede cambiar.final
: Variables de solo lectura. Pueden ser asignadas una vez.const
: Constantes en tiempo de compilación. Inmutables y asignadas en tiempo de compilación.
void main() {
var nombre = "Daniela";
final int edad = 25;
const double pi = 3.1416;
// nombre = "Carlos"; // Válido
// edad = 30; // Error: no se puede reasignar una variable final
// pi = 3.14; // Error: no se puede reasignar una constante
print("Mi nombre es $nombre, tengo $edad años y el valor de pi es $pi");
}
3. Operadores Básicos
Operadores Aritméticos
Permiten realizar operaciones matemáticas básicas.
- Suma (
+
) - Resta (
-
) - Multiplicación (
*
) - División (
/
)
Operadores de Comparación
Se utilizan para comparar dos valores.
- Igualdad (
==
) - Desigualdad (
!=
) - Mayor que (
>
) - Menor que (
<
) - Mayor o igual que (
>=
) - Menor o igual que (
<=
)
void main() {
// Operadores Básicos
int a = 10;
int b = 20;
print(a == b); // false
print(a != b); // true
print(a > b); // false
print(a < b); // true
print(a >= b); // false
print(a <= b); // true
}
4. Control de Flujo
Condicionales: if
, else
, else if
Permiten ejecutar código condicionalmente basado en expresiones booleanas.
void main() {
int numero = 10;
if (numero % 2 == 0) {
print("El número es par");
} else {
print("El número es impar");
}
}
Ciclos: for
, while
Permiten ejecutar un bloque de código repetidamente.
void main() {
for (int i = 1; i <= 5; i++) {
print("Iteración $i");
}
int contador = 1;
while (contador <= 5) {
print("Contador $contador");
contador++;
}
}
5. Funciones
Definición de Funciones
Las funciones son bloques de código reutilizables que realizan tareas específicas.
Funciones con y sin retorno
- Con retorno: Devuelven un valor.
- Sin retorno (
void
): No devuelven ningún valor.
Parámetros opcionales y por defecto
Permiten definir parámetros que no son obligatorios o que tienen un valor predeterminado.
void main() {
// Funciones
print(sumar(5, 3)); // 8
saludar("Lilibeth"); // Hola, Lilibeth!
saludar(); // Hola, Amigo!
}
int sumar(int a, int b) {
return a + b;
}
void saludar([String nombre = "Amigo"]) {
print("Hola, $nombre!");
}
6. Listas y Mapas
Listas (List
)
Colecciones ordenadas de elementos. Pueden ser homogéneas o heterogéneas.
Declaración, agregar y acceder a elementos
void main() {
// Listas
List frutas = ["Manzana", "Banana", "Pera"];
frutas.add("Naranja");
print(frutas[0]); // Manzana
List numeros = [1, 2, 3, 4, 5];
print(numeros[0]); // 1
numeros[2] = 10;
print(numeros); // [1, 2, 10, 4, 5]
}
Mapas (Map
)
Colecciones de pares clave-valor.
void main() {
// Mapas
Map edades = {
"Graciela": 25,
"Juan": 30,
};
print(edades["Graciela"]); // 25
}
7. Clases y Objetos (POO Básica)
Definición de Clases
Las clases son plantillas para crear objetos, encapsulando atributos y métodos.
Constructores
Métodos especiales para crear instancias de clases.
Atributos y Métodos
- Atributos: Propiedades de la clase.
- Métodos: Funciones asociadas a la clase.
void main() {
// Clases y Objetos
var persona = Persona("Lilibeth", 28); // instancia
persona.saludar(); // Llamada al método saludar
}
class Persona {
String nombre; // atributo
int edad;
Persona(this.nombre, this.edad); // constructor
void saludar() {
// método
print("Hola, mi nombre es $nombre y tengo $edad años.");
}
}
Conclusión
En esta guía hemos cubierto los fundamentos de Dart, desde la sintaxis básica hasta la programación orientada a objetos. Entender estos conceptos es esencial para desarrollar aplicaciones robustas y eficientes. Dart ofrece una sintaxis clara y herramientas poderosas que facilitan el desarrollo de aplicaciones modernas.
Puntos Clave:
- Variables y Tipos de Datos: Uso adecuado de
var
,final
yconst
para manejar datos de manera eficiente. - Operadores: Realización de operaciones aritméticas y comparaciones.
- Control de Flujo: Uso de condicionales y ciclos para manejar la lógica del programa.
- Funciones: Creación de bloques de código reutilizables con y sin retorno.
- Listas y Mapas: Manejo de colecciones de datos estructuradas.
- Clases y Objetos: Implementación de la programación orientada a objetos para crear aplicaciones más complejas.
Visita mi sitio web Para acceder a mi GITHUB: albertoguaman.com
https://github.com/GbrielGarcia/blog/blob/main/expo_peru/basic.dart