Flutter
Flutter
FLUTTER
RESUMEN
Varios dispositivos móviles son usados en la vida cotidiana de las personas. Para esta diversidad
de equipos, se necesitan conocer sus características, sus dimensiones de pantalla, sus
resoluciones, sus componentes, que capacidad posee y que sistema operativo soporta. Todo lo
anterior genera un considerable problema para aquellos que se dedican a programar estos
dispositivos.
El objetivo de este documento es dar a conocer qué Base de Datos utiliza la aplicación Flutter al
momento de crear apps que se van a ser lanzadas para uso público y se desea guardar los datos
de los usuarios.
2
INTRODUCCIÓN
El presente trabajo sobre Flutter forma parte de los estudios de la materia Programación
en Ambientes Móviles, cuyo enfoque se interesa por reconocer los lenguajes de programación e
interactuar con los entornos de desarrollo aplicados a los dispositivos móviles. A los dispositivos
móviles tienden a asociarlos con los teléfonos inteligentes, pero actualmente existen varios
dispositivos que pertenecen a este grupo. Son cuatro características que permiten identificar un
dispositivo móvil: Facilidad de transportarlo, tamaño reducido, su capacidad de comunicación
inalámbrica y su capacidad para interactuar con las personas.
3
FLUTTER
Flutter es un framework de código abierto desarrollado por Google para crear aplicaciones
nativas de forma fácil, rápida y sencilla. Su principal ventaja radica en que genera código 100%
nativo para cada plataforma, con lo que el rendimiento y la UX es totalmente idéntico a las
aplicaciones nativas tradicionales. A diferencia de otros frameworks, Flutter permite crear el
código 100 % nativo sin importar si el dispositivo móvil maneja Android o iOS.
Funcionalidades de Flutter
Calidad nativa: Las aplicaciones nativas se desarrollan específicamente para un sistema
operativo, Flutter utiliza todas las ventajas de las aplicaciones nativas para conseguir
calidad en el resultado final.
SQLITE
Es una biblioteca en lenguaje C que implementa un motor de base de datos SQL pequeño,
rápido, autónomo, de alta confiabilidad y con todas las funciones. SQLite es el motor de base de
datos más utilizado del mundo. SQLite está integrado en todos los teléfonos móviles y en la
mayoría de las computadoras y viene incluido dentro de innumerables otras aplicaciones que la
gente usa todos los días.
El formato de archivo SQLite es estable, multiplataforma compatible con versiones anteriores, y
los desarrolladores se comprometen a mantenerlo así durante al menos hasta el 2050. Los
archivos de base de datos SQLite se utilizan comúnmente como contenedores para transferir
contenido enriquecido entre sistemas y como formato de archivo de datos a largo plazo. Hay más
de 1 billón de bases de datos SQLite en uso activo.
El código fuente de SQLite es de dominio público y todos pueden usarlo para cualquier
propósito.
SQLite está disponible en UNIX (Linux, Mac OS-X, Android, iOS) y Windows (Win32,
WinCE, WinRT).
6
Imagen 3: Configuración
La clase Model es muy simple y se crea por conveniencia, para definir propiedades/métodos que
se pueden esperar de los modelos de datos, como los id que se muestran arriba. Esto permite la
creación de uno o más modelos de datos específicos que se ajustarán a este patrón de diseño
básico. Para esta aplicación de ejemplo, se crea una clase de modelo de elemento TODO en
lib/models/todo-item.dart:
9
La clase TodoItem contiene propiedades para task y complete y tiene un constructor simple para
crear un nuevo elemento TODO. Para convertir entre instancias de objetos TodoItem y Map
utilizados por la base de datos, se han definido los métodos toMap y fromMap. Tenga en cuenta que
id solo se agrega al mapa cuando no lo es null.
Imagen 5: Clase BD
Esta clase es abstract porque no está diseñada para ser instanciada y solo se requiere una copia en
la memoria. Internamente, contiene una referencia a la base de datos SQLite en la _db propiedad.
El número de versión de la base de datos se ha codificado de forma rígida, 1 pero en aplicaciones
más complejas, la versión de la base de datos se puede usar para migrar los esquemas de la base
de datos hacia arriba o hacia abajo en la versión para permitir el despliegue de nuevas funciones
sin tener que borrar la base de datos y comenzar desde cero.
Se crea una instancia de la base de datos SQLite dentro del init método, utilizando el example
nombre de la base de datos para este proyecto. Si la example base de datos aún no existe, onCreate
se llama automáticamente. Aquí es donde se colocan las consultas para crear la estructura de la
tabla. En este caso, tenemos una todo_items tabla con una clave principal id junto con campos que
coinciden con las propiedades de la TodoItem clase anterior.
El query método junto con insert, update, y delete están definidos para realizar operaciones CRUD
estándar en la base de datos. Estos proporcionan abstracciones simples y permiten contener la
lógica de la base de datos dentro de esta clase, lo que puede ser extremadamente útil al
refactorizar o realizar otro mantenimiento en la aplicación, en lugar de, por ejemplo, tener que
buscar y reemplazar cadenas en varios archivos o corregir errores extraños que aparecen al hacer
cambios simples.
Este archivo es bastante estándar para cualquier aplicación Flutter y define la apariencia básica
de la aplicación junto con sus interacciones. Durante la inicialización, la línea
WidgetsFlutterBinding.ensureInitialized() asegurará que la aplicación Flutter se inicialice correctamente
al inicializar la base de datos con await DB.init().
Cuando se inicia la aplicación y MyHomePage se procesa el widget, una llamada a refresh() extrae la
lista de tareas de la todo_items tabla y la asigna a una List de TodoItem objetos. Estos se funden
dentro de ListView principal de la aplicación a través del _items descriptor de acceso, que toma la
List de TodoItem los objetos y los formatea como una lista de widgets que contiene el texto del
elemento de tareas y un indicador que muestra si el artículo ha sido completado.
Las tareas se pueden agregar presionando el botón de acción flotante e ingresando un nombre de
tarea. Cuando Save se presiona, el elemento de DB.insert. la lista de tareas pendientes recién creado
se agrega a la base de datos. Al hacer clic en una tarea de la lista, se alternará entre estados
completo / incompleto cambiando el valor complete booleano y almacenando el objeto modificado
en la base de datos con DB.update, y deslizando una tarea. horizontalmente eliminará el elemento
TODO proporcionándolo al DB.delete método. Siempre que se realicen cambios en la lista, una
llamada a refresh() con una subsecuente setState() asegurará que la lista se actualice correctamente.
15
WEBGRAFIA
Sitio web
QUALITY DEVS. Qué es Flutter y por qué utilizarlo en la creación de tus apps.
https://www.qualitydevs.com/2019/07/05/que-es-flutter/, Quality devs.
Sitio web
N.N. ¿Qué es SQLite? https://www.sqlite.org/index.html, SQLite.
Sitio web
N.N. SQLite: descripción general https://www.tutorialspoint.com/sqlite/sqlite_overview.htm,
Tutorialspoint.
Sitio web
Ken Reilly. Cómo usar Flutter con SQLite https://itnext.io/how-to-use-flutter-with-sqlite-
b6c75a5215c4, IT NEXT.