Dart es un lenguaje de programación desarrollado por Google, diseñado para ser simple, eficiente y fácil de aprender. Es el lenguaje principal utilizado para desarrollar aplicaciones con Flutter. En esta lección, aprenderemos los conceptos básicos de Dart, que nos servirán como base para el desarrollo de aplicaciones Flutter.
Contenido
- ¿Qué es Dart?
- Instalación de Dart
- Estructura de un Programa Dart
- Sintaxis Básica
- Ejemplo Práctico
- Ejercicios
- ¿Qué es Dart?
Dart es un lenguaje de programación optimizado para aplicaciones cliente en múltiples plataformas. Es un lenguaje orientado a objetos, con una sintaxis similar a JavaScript y Java, lo que facilita su aprendizaje para desarrolladores con experiencia en estos lenguajes.
Características de Dart:
- Orientado a Objetos: Todo en Dart es un objeto, incluso los tipos primitivos.
- Fuertemente Tipado: Dart es un lenguaje con tipado estático, lo que significa que los tipos de datos se verifican en tiempo de compilación.
- Compilación AOT y JIT: Dart puede compilarse tanto en tiempo de ejecución (JIT) como en tiempo de compilación (AOT), lo que permite un desarrollo rápido y un rendimiento óptimo en producción.
- Soporte para Asincronía: Dart tiene un soporte robusto para programación asíncrona mediante
async
yawait
.
- Instalación de Dart
Para comenzar a programar en Dart, primero necesitamos instalar el SDK de Dart. Aquí están los pasos para instalar Dart en diferentes sistemas operativos:
Instalación en Windows:
- Descarga el SDK de Dart desde dart.dev.
- Extrae el archivo descargado en una ubicación de tu elección.
- Agrega la ruta del SDK de Dart a la variable de entorno
PATH
.
Instalación en macOS:
- Usa Homebrew para instalar Dart:
brew tap dart-lang/dart brew install dart
Instalación en Linux:
- Agrega el repositorio de Dart:
sudo apt update sudo apt install apt-transport-https sudo sh -c 'wget -qO- https://dl-ssl.google.com/linux/linux_signing_key.pub | apt-key add -' sudo sh -c 'wget -qO- https://storage.googleapis.com/download.dartlang.org/linux/debian/dart_stable.list > /etc/apt/sources.list.d/dart_stable.list'
- Instala Dart:
sudo apt update sudo apt install dart
- Estructura de un Programa Dart
Un programa Dart típico tiene la siguiente estructura básica:
Explicación:
void main() { ... }
: La funciónmain
es el punto de entrada de cualquier programa Dart.print('Hello, Dart!');
: La funciónprint
se utiliza para imprimir texto en la consola.
- Sintaxis Básica
Variables y Tipos de Datos
Dart es un lenguaje fuertemente tipado, lo que significa que cada variable debe tener un tipo específico.
void main() { int age = 25; double height = 1.75; String name = 'John Doe'; bool isStudent = true; print('Name: $name, Age: $age, Height: $height, Is Student: $isStudent'); }
Comentarios
Dart soporta comentarios de una sola línea y de múltiples líneas.
Operadores
Dart soporta una variedad de operadores, incluyendo aritméticos, de comparación y lógicos.
void main() { int a = 10; int b = 5; // Operadores aritméticos print(a + b); // 15 print(a - b); // 5 print(a * b); // 50 print(a / b); // 2.0 // Operadores de comparación print(a > b); // true print(a < b); // false // Operadores lógicos bool isTrue = true; bool isFalse = false; print(isTrue && isFalse); // false print(isTrue || isFalse); // true }
- Ejemplo Práctico
Vamos a crear un programa simple que calcule el área de un círculo dado su radio.
import 'dart:math'; void main() { double radius = 5.0; double area = pi * radius * radius; print('The area of the circle with radius $radius is $area'); }
Explicación:
import 'dart:math';
: Importamos la bibliotecadart:math
para usar la constantepi
.double radius = 5.0;
: Definimos una variableradius
de tipodouble
.double area = pi * radius * radius;
: Calculamos el área del círculo usando la fórmulaπr²
.print('The area of the circle with radius $radius is $area');
: Imprimimos el resultado en la consola.
- Ejercicios
Ejercicio 1: Calculadora Básica
Escribe un programa en Dart que tome dos números y realice operaciones aritméticas básicas (suma, resta, multiplicación, división).
Ejercicio 2: Conversión de Temperatura
Escribe un programa en Dart que convierta una temperatura dada en grados Celsius a grados Fahrenheit.
Soluciones
Solución Ejercicio 1
void main() { int num1 = 10; int num2 = 5; print('Sum: ${num1 + num2}'); print('Difference: ${num1 - num2}'); print('Product: ${num1 * num2}'); print('Quotient: ${num1 / num2}'); }
Solución Ejercicio 2
void main() { double celsius = 25.0; double fahrenheit = (celsius * 9/5) + 32; print('$celsius°C is equal to $fahrenheit°F'); }
Conclusión
En esta lección, hemos introducido Dart, el lenguaje de programación utilizado para desarrollar aplicaciones con Flutter. Hemos cubierto la instalación del SDK de Dart, la estructura básica de un programa Dart, y algunos conceptos fundamentales como variables, tipos de datos y operadores. También hemos visto un ejemplo práctico y proporcionado ejercicios para reforzar el aprendizaje. En la próxima lección, profundizaremos en las variables y tipos de datos en Dart.
Curso de Desarrollo con Flutter
Módulo 1: Introducción a Flutter
- ¿Qué es Flutter?
- Configuración del Entorno de Desarrollo
- Entendiendo la Arquitectura de Flutter
- Creando Tu Primera App con Flutter
Módulo 2: Conceptos Básicos de Programación en Dart
- Introducción a Dart
- Variables y Tipos de Datos
- Sentencias de Control de Flujo
- Funciones y Métodos
- Programación Orientada a Objetos en Dart
Módulo 3: Widgets en Flutter
- Introducción a los Widgets
- Widgets Stateless vs Stateful
- Widgets Básicos
- Widgets de Diseño
- Widgets de Entrada y Formularios
Módulo 4: Gestión de Estado
Módulo 5: Navegación y Enrutamiento
- Introducción a la Navegación
- Navegación Básica
- Rutas Nombradas
- Pasando Datos Entre Pantallas
- Deep Linking
Módulo 6: Redes y APIs
- Obteniendo Datos de Internet
- Parseo de Datos JSON
- Manejo de Errores de Red
- Usando APIs REST
- Integración con GraphQL
Módulo 7: Persistencia y Almacenamiento
- Introducción a la Persistencia
- Preferencias Compartidas
- Almacenamiento de Archivos
- Base de Datos SQLite
- Usando Hive para Almacenamiento Local
Módulo 8: Conceptos Avanzados de Flutter
- Animaciones en Flutter
- Custom Paint y Canvas
- Canales de Plataforma
- Isolates y Concurrencia
- Optimización de Rendimiento
Módulo 9: Pruebas y Depuración
- Introducción a las Pruebas
- Pruebas Unitarias
- Pruebas de Widgets
- Pruebas de Integración
- Técnicas de Depuración
Módulo 10: Despliegue y Mantenimiento
- Preparación para el Lanzamiento
- Construcción para iOS
- Construcción para Android
- Integración Continua/Despliegue Continuo (CI/CD)
- Mantenimiento y Actualización de Tu App