0%
Convertidor de unidades — Capítulo 57

Capítulo 57 — Convertidor de unidades

Parte 1C — Ocho miniproyectos · Capítulo 57 de 62 · 12 h

Capítulo 57 — Convertidor de unidades

Nivel: intermedio Duración estimada: 12 h Requisitos previos: capítulo 56 — Proyecto 2: la calculadora Lo que sabrás hacer al final: construir una aplicación completa controlada por un formulario, separar limpiamente una lógica de negocio testeable de su interfaz, y escribir las pruebas unitarias que demuestran que tus cálculos son correctos.


57.0 — Objetivos del capítulo

Al final de este capítulo, serás capaz de:

  • modelar un dominio de negocio con un enum enriquecido y una clase de valor;
  • explicar qué es una unidad pivote y por qué divide el trabajo por cien;
  • demostrar por qué la temperatura no puede convertirse con un simple factor;
  • generalizar un modelo « factor » en un modelo « par de funciones »;
  • escribir una función de conversión pura, sin ninguna dependencia de Flutter;
  • conectar un TextField a un TextEditingController y reaccionar a cada pulsación;
  • restringir la entrada a caracteres numéricos con inputFormatters;
  • distinguir lo que filtra un inputFormatter de lo que valida double.tryParse;
  • gestionar la coma decimal francesa y los espacios de agrupación;
  • construir dos DropdownButton<Unite> sincronizados;
  • filtrar la lista de unidades según la categoría elegida con where;
  • intercambiar la unidad de origen y la unidad de destino con una sola llamada a setState;
  • convertir en tiempo real mediante onChanged sin botón « Calcular »;
  • formatear un resultado legible con NumberFormat del paquete intl;
  • elegir un número de decimales adaptado al orden de magnitud del resultado;
  • pasar a notación científica para los números extremos;
  • organizar seis categorías en pestañas con TabController y TabBarView;
  • conservar el estado de cada pestaña con AutomaticKeepAliveClientMixin;
  • llevar un historial de las conversiones validadas;
  • persistir la última elección del usuario con shared_preferences;
  • escribir una batería de pruebas unitarias que verifique cada familia de conversión.

Comentarios

Los comentarios funcionan con GitHub Discussions

Inicia sesión con GitHub para participar en la discusión

¡Enlace copiado!