Programa con Xojo desde cero: persistencia de datos

Programa con Xojo desde cero: persistencia de datos

Seguimos avanzando en la construcción de nuestra aplicación multiplataforma con Xojo para la gestión de gastos personales; y en este capítulo nos ocuparemos de solucionar uno de los problemas más importantes que hemos tenido hasta ahora: guardar en disco los datos insertados para poder recuperarlos después de cada nueva ejecución del programa.

Esto nos permite presentar otra característica que Xojo facilita enormemente: acceder, leer y escribir a cualquier archivo que se encuentre en nuestros dispositivos de almacenamiento.



Para ello utilizaremos tres nuevas clases de Realbasic Framework (es decir, el conjunto de "herramientas" listas para usar proporcionadas por el entorno de desarrollo): FolderItem (https://docs.xojo.com/FolderItem), TextOutputStream (https: / /docs.xojo.com/TextOutputStream) y TextInputStream (https://docs.xojo.com/TextInputStream).

Piensa en FolderItem como la clase que, a través de sus propiedades y métodos, nos permite acceder a cualquier archivo, tanto si ya existe como si es un archivo nuevo que queremos crear… así como a carpetas y/o directorios.

De hecho, a través de las propiedades disponibles en esta clase podemos realizar comprobaciones tan habituales como comprobar si el archivo ya existe en la ruta esperada, si es una carpeta, la fecha de modificación o creación, si se puede leer o escribir en el destino indicado por el camino, modificar sus permisos... y uno largo y así sucesivamente.

Por otro lado, algunos de los métodos disponibles en la clase FolderItem tienen la función de facilitarnos la tarea de copiar el archivo de referencia a una nueva ubicación, abrirlo, borrarlo, moverlo… o crear nuevas carpetas/directorios en el camino especificado.

En cuanto al par de clases TextInputStream / TextOutputStream, estas tienen la función de trabajar con un archivo específico (una instancia o un objeto FolderItem), de modo que podamos acceder a su contenido como si fuera un flujo de datos.



Tenga en cuenta que ambas clases comienzan sus nombres con la palabra "Texto", lo que significa que los datos a los que se accede se tratarán como texto en lugar de formato "binario".

En nuestro caso esto es lo que queremos y nos funciona porque toda la información que vamos a guardar y (posteriormente) recuperar está en formato de texto: nombre del gasto, fecha de compra, importe, etc.

¿En qué se diferencia un "flujo de datos" o "flujo" de un archivo? Piense en el archivo como el contenedor de datos, mientras que la clase a cargo de acceder a los datos almacenados por el archivo actuaría sobre el contenido mismo.

A través de sus propiedades y métodos es posible moverse a una determinada posición (en bytes) dentro del archivo, siempre y cuando no exceda su longitud, por supuesto. También puede leer el contenido del archivo de "texto" línea por línea, todo a la vez, o el fragmento que desee desde la posición actual en la longitud especificada.

Por su parte, la clase que realiza las funciones opuestas es TextOutputStream. Con él, puede abrir un archivo (o crearlo, siempre que pase una referencia a un FolderItem de todos modos) para descargar el contenido que desee como texto: línea por línea, un fragmento determinado o todo a la vez.

En la práctica

En el desarrollo de nuestra aplicación de ejemplo utilizaremos estas tres clases para guardar tanto las categorías como todos los artículos de compra que hemos introducido.

A lo largo del vídeo nos centramos en los detalles de cómo guardar esta información y recuperarla posteriormente mediante dos archivos: uno encargado de guardar el nombre de las categorías y otro donde se ubican los gastos asociados a cada una de las categorías.


Es interesante porque también ponemos en práctica mucho de lo que hemos visto hasta ahora: variables simples, y también colecciones de datos (Arreglos y Diccionarios); por lo que es un buen momento para refrescar los conocimientos de los dos capítulos anteriores… y también para ver un poco más en profundidad cómo usarlos en la práctica.


Nombre de la aplicación y otros detalles

Al principio del vídeo también podemos ver algo realmente importante a la hora de crear cualquiera de nuestras aplicaciones: cómo indicar desde el IDE de Xojo el nombre que queremos darle a nuestra aplicación… ¡y también decidir para qué arquitectura queremos compilarla!


Ya sabes que, con Xojo, decidir si quieres que tu aplicación esté compilada para Macs basados ​​en Intel, procesadores M1 o como aplicación Universal es tan sencillo como seleccionar la opción en un menú.

Twitter: @xojoes

Facebook: http://facebook.com/xojoes/

Descarga la última versión de www.xojo.com

Recursos de Xojo en español: https://docs.xojo.com/spanish

Añade un comentario de Programa con Xojo desde cero: persistencia de datos
¡Comentario enviado con éxito! Lo revisaremos en las próximas horas.