Fins ara, l'única manera que coneixeu per emmagatzemar informació són les variables. Però les variables tenen un problema, només s'inicien i emmagatzemen informació quan s'obre l'aplicació. Quan l'aplicació es tanca, les variables i la seva informació desapareixen i molt sovint necessitem que alguna informació sigui persistent, que es mantingui d'una sessió a un altre. Perquè les dades siguin persistents, s’han d’emmagatzemar en una base de dades. Les dades de la base de dades es mantenen per sempre o fins que no se suprimeixen explícitament.
La ubicació de la base de dades és una consideració important. Una base de dades emmagatzemada directament al telèfon / tauleta facilitarà les aplicacions amb dades privades a cada usuari. Una base de dades emmagatzemada al núvol facilitarà les aplicacions socials en què els usuaris comparteixen dades.
Amb la majoria de llenguatges de programació, el vostre codi ha de copiar explícitament les dades de les variables de l'aplicació a una base de dades i tornar a incloure les dades de la base de dades a les variables de l'aplicació. El llenguatge de consultes estructurades (SQL) s’utilitza habitualment per a aquesta codificació de bases de dades i llenguatges com Java i Python proporcionen biblioteques de codis per incrustar codi de base de dades SQL en una aplicació.
Però Thunkable ofereix una característica innovadora: les variables persistents. Les variables persistents permeten designar si les dades d’una variable només es conserven per a una sola execució de l’aplicació, s’emmagatzemen de forma permanent a una base de dades del dispositiu o s’emmagatzemen al “núvol” i es comparteixen amb altres usuaris.
Quan creem una variable a Thunkable podem escollir entre les opcions: “app”, “stored” or “cloud”. Fins ara només hem utilitzat "app" que és l'ús habitual de les variables, on aquestes només guarden dades mentre funciona l'aplicació. Amb "stored", Thunkable guarda el valor de la variable en una base de dades local al dispositiu i amb "cloud" a una base de dades al núvol.
Tal com hem comentat, la majoria dels llenguatges de programació no proporcionen variables persistents. Heu d'emmagatzemar manualment les vostres dades a la base de dades i gestionar dues còpies de les dades: les variables i la còpia de les dades a la base de dades.
A la majoria d’entorns de programació, crear una aplicació que es comuniqui amb una base de dades és una tècnica de programació avançada: heu de configurar una base de dades en un servidor o al núvol i, a continuació, escriure codi, normalment en un llenguatge separat anomenat SQL, que es comunica amb aquest base de dades.
Dins d’una base de dades, la informació s’emmagatzema i s’organitza en taules. A cada taula trobareu una sèrie de files i columnes. Les files d’una taula d’una base de dades s’anomenen registres i les columnes, camps. Totes les dades que apareixen en un registre es refereixen a un mateix individu i totes les dades que apareixen en un camp es refereixen a un tipus d’informació igual sobre l’individu. La intersecció d’un registre amb un camp s’anomena dada.
Us és familiar aquesta imatge? Sí, un full de càlcul ben estructurat és una base de dades.
Thunkable proporciona una manera més senzilla de programar bases de dades que no requereixen gaire configuració ni haver d'aprendre SQL.
Per connectar l'aplicació amb una base de dades, anem a l'apartat Data (a dalt a la dreta, a la interfície de Disseny) i fem clic al botó "+" per afegir una base de dades. Thunkable ens ofereix tres opcions: crear la teva pròpia taula, connectar amb una taula d'Airtable, o connectar amb un full de càlcul de Google.
Un cop connectats amb la base de dades, aquesta ens apareixerà al llistat Data sources de l'apartat Data, i automàticament a l'editor de blocs apareix una nova funcionalitat anomenada Data sources amb tota una sèrie de blocs que em permetran: llegir valors de la base de dades, actualitzar-los, afegir nous registres o eliminar-los.
Com veiem, en aquests blocs, podem seleccionar la base de dades amb què ens volem comunicar (si en tenim més d'una) i el camp, registre o valor, depenent de l'acció que volem fer.
Vincular imatges a la nostra taula (base de dades) és tan senzill com escriure l'adreça d'on es troba la imatge, quan mostrem aquesta adreça automàticament es carregarà la imatge en qüestió. Però quina és l'adreça? On estan guardades les imatges? Podem utilitzar un servidor propi o un espai al núvol (com Drive) però treballar amb imatges i vídeos és molt més complicat que simplement emmagatzemar-les i copiar-ne l'adreça. Les imatges i vídeos són recursos que acostumen a pesar molt i això és un element clau, ja que poden fer que la nostra aplicació sigui molt lenta i l'usuari l'abandoni. Per solucionar-ho s'han d'utilitzar diverses tècniques d'optimització que són força complexes, però per sort hi ha serveis al núvol gratuïts que ho fan per nosaltres. Un dels més coneguts és Cloudinary que ens permet emmagatzemar els nostres recursos digitals i els optimitza de forma automàtica. Si volem podem treballar amb el nostre propi espai a Cloudinary per tenir més control, però Thunkable ja incorpora per defecte una integració amb Cloudinary que podem utilitzar sense cap mena de configuració extra.
De fet, si fem una senzilla aplicació per fer fotos amb el telèfon i posem un Label per mostrar l'adreça de la foto, veiem que Thunkable ja la penja al núvol de Cloudinary:
Els blocs que ens permeten interactuar amb la càmera del dispositiu els trobareu a la funcionalitat Camera de l'editor de blocs:
Si volem visualitzar alhora diversos registres d'una base de dades, un component que ens ho facilita molt és el Data Viewer Grid, amb aquest component podem crear una interfície agradable i ordenada per visualitzar la informació que tenim als registres. És un component per mostrar la informació principal (imatge, títol i subtítol) amb targetes clicables des d'on podem navegar a una pantalla personalitzada amb més detalls.
A les propietats del component haurem d'indicar: de quina base de dades a d'obtenir la informació, quin estil de targetes volem i en quines columnes de la base de dades hi ha la informació que volem mostrar.
Per altra banda, a l'editor de blocs, apareixen els blocs del component principal Data_Viewer_Grid i també una sèrie de subcomponents que em permeten una personalització acurada de cadascun dels elements de les targets.
Fes una aplicació semblant a la dels alumnes de classe per mostrar informació d'algun tema que t'interessi (equips de basquet, botigues de roba, ...).