AppSheet: crear aplicaciones sin saber código

AppSheet: crear aplicaciones sin saber código

He terminado una larga formación (300 y pico horas) en CIEF sobre las aplicaciones Low Code – No Code. La mayor parte ha estado dedicada a AppSheet, la plataforma de Google que sirve para crear aplicaciones sin saber código; bueno alguna expresión se ha de saber para poderle sacar todo el partido.

AppSheet: Introducción

De entrada es “gratuita” (al final veremos que hay diferentes planes de precios) , no hace falta instalar ninguna aplicación porque se trabaja desde web AppSheet y de momento está solo en ingles. Tiene funcionalidades para crear en formato móvil, tableta y escritorio. Nos ofrece la posibilidad de logarnos con diferentes servicios pero recomendamos hacerlo con Google para no tener que estar dando permisos después si utilizamos sus otros productos G drive, o G sheets .

Qué son aplicaciones Low Code – No Code

¿Qué es Low Code? En pocas palabras, es programar prácticamente sin código . Las plataformas Low Code permiten crear aplicaciones sin necesidad de saber programar. Esto la convierte en una plataforma ideal para usuarios empresariales y personal no técnico que necesitan crear o modificar aplicaciones sin involucrar al personal informático.

Pero eso no es todo. Las plataformas Low Code también ofrecen otras ventajas, entre las que se incluyen:

– Rapidez: permiten crear aplicaciones de forma rápida y sencilla, sin necesidad de conocimientos de codificación.

– Agilidad: ofrecen la flexibilidad necesaria para adaptarse rápidamente a los cambios en su negocio o en el mercado.

– Ahorro de costes: pueden ayudar a reducir el tiempo y el coste del desarrollo de aplicaciones.

Por lo tanto, si buscas una forma de acelerar el desarrollo de aplicaciones, aumentar la agilidad y reducir los costes, Low Code es una buena alternativa.

En definitiva, es fácil ver por qué el desarrollo de bajo código se está haciendo tan popular. Si busca una forma de acelerar el proceso de desarrollo de su aplicación, sin duda merece la pena tener en cuenta el bajo código.

AppSheet entorno de trabajo

Accedemos con el navegador a AppSheet y entramos con nuestra cuenta de google (recomendado) . Nos aparecerán todas las Apps que tenemos en producción, esta la pestaña “Apps” de color azul activada, si clicaramos en “Databases” tendríamos las bases de datos nativas que tenemos, como hemos quedado que de momento no las vamos a utilizar nos olvidamos.

pantalla inicial Appsheet

Arriba a la derecha nos aparece el botón “Create” es el primer paso, el primer submenú es “App” y “Database” (veis que pone Preview eso es porque esta en pruebas) nosotros iremos a “Start with existing data”. Le damos un nombre y le adjudicamos una categoría, podeis poner “Other” si no estáis seguros y después al boton azul de “Choose your data” alli seguramente os aparecerá Google Sheets ,la hoja de cálculo de Google donde hemos creado nuestra base de datos, o Cloud Database su aplicación nativa de base de datos todavía en beta, hay un botón de “New source” donde podríamos seleccionar otras bases de datos. Las que tenemos en la imagen que he puesto arriba “Add a new data source”.

Tendremos esta segunda pantalla:

segunda pantalla AppSheet

Iremos viendo las diferentes opciones, que son bastantes en cada uno de los menús.

AppSheet primer paso: la base de datos.

El primer paso es diseñar la base de datos y funcionalidad que habrá detrás de la aplicación. Es importante ver las relaciones entre las diferentes tablas, campos y registros.

Tipos de bases de datos con las que trabaja

Básicamente podemos trabajar varios tipos de bases de datos yo he probado tres de las más populares cada una con sus ventajas e inconvenientes.

  • MySQL: con MariaDB y recomiendo la aplicación open source MySQL Workbench para trabajar las relaciones entre las tablas. Es la que podemos tener un mayor control entre los campos y las relaciones entre las diferentes tablas, las claves primarias, las foráneas etc. El problema es la importación des después desde AppSheet que se pierden algunas relaciones y la cache del servidor de base de datos dificulta su funcionalidad, obviamente necesitas de un servidor y no se puede instalar en local por ejemplo con XAMPP, ). No la recomiendo si empezamos de cero.
  • Base de datos nativa: se lanzó en octubre del pasado y avisan que esta en modo beta. Esta muy bien integrada dentro de la herramienta pero a día de hoy da muchos problemas. Será la opción a utilizar en un futuro cuando este totalmente desarrollada.
  • Google Sheets: la hoja de cálculo de Google y que se guarda en nuestro Drive. A día de hoy es la mejor opción, es muy simple y funciona muy bien.

Previamente para acceder a la gestión de los diferentes tipos bases de datos se accede clicando a la inicial que hay arriba a la derecha, y después en tu correo.

APPSHEET:BASE DE DATOS POSIBLES

Crear y diseñar la base de datos

Hemos quedado que a día de hoy recomendamos utilizar google hojas de calculo, para ello vamos a nuestro drive y no ponemos alguna carpeta que tengamos controlada para poner el ejemplo y clicamos en el signo “+” y añadimos una hoja de cálculo nueva.

Arriba de todo a la izquierda introduciremos el nombre de la base de datos, y cada una de las hojas será una tabla de la base de datos. Cada columna sera un campo y en cada línea ira un registro . Aconsejo los encabezados en minúsculas, negrita y sin acentos, aunque esto es cuestión de gustos.

AppSheet definición base de datos

Respecto a las diferentes tablas que podemos tener va a depender de lo que tengamos que mostrar , en este caso por ejemplo podría ser una escuela y tendríamos una para alumnos y otra para las notas, en diferentes tablas, se podrían ir añadiendo otras como la de profesores, materias, etc. todas ellas irán relacionadas mediante determinados campos con una clave que añadiremos a posteriori desde la App. Dejamos el primer campo como “clave única” que haremos que nos la ponga automáticamente, como su nombre indica esta no se podrá repetir nunca, se podría utilizar también el correo, que por definición tampoco pueden estar repetidos pero es mucho mejor que se una clave generada por la app.

Hay que evitar errores que después nos pueden provocar que tengamos que perder mucho tiempo resolviéndolos, os hago un pequeño listado.

  • el primero lo dicho el tema de la clave única, es el más importante, no podemos tener dos registros con la misma clave
  • aunque sea una hoja de cálculo mejor que los cálculos los haga la propia aplicación, es mucho mejor a nivel de rendimiento
  • no poner nombras de columnas iguales
  • no poner tablas dinámicas o celdas referenciadas a otros libros

Resumiendo hacerlas lo mas sencilla posibles, después siempre podremos añadir o eliminar columnas o tablas.

AppSheet: gestión de tablas y vistas

Ya hemos creado nuestra aplicación partiendo de una base de datos creada en la hoja de cálculo de google. Por defecto nos baja a nuestro espació de trabajo la primera de las tablas, manualmente hay que bajar el resto de tablas. Como se ve en la imagen nos ha cargado la primera de las tablas y nosotros añadiremos las dos restantes “tareas” y “cursos”, se hace simplemente clicando encima.

Appsheet (2) tablas y vistas

Acto seguido iremos tabla a tabla repasando cada campo viendo sus características (tipo, label, id etc.) . Tendría una visualización parecida a esta:

Clica para ampliar

Name: el que tenemos puesto de cabecera de columna en la hoja de cálculo. Nos añade algún campo extra como el _RolNumber y Related tareas porque detecta que hay una relación entre la tabla “tareas” y “alumnos”. Después veremos que hay un campo llamado “Ref” que relaciona las diferentes tablas.

Type: aquí se definen los tipos de datos que se recogen en ese campo. Los principales son:

  • Texto: Tenemos tres: Text (una línea de texto); LongText: (varias líneas de texto): Name (nombre de persona o lugar)
  • Numerico:Decimal (número con un componente fraccionario); Number ( número entero); Percent (decimal con un valor de porcentaje); Price (representa valor moneda).
  • Fecha : DateTime (año, mes , día, hora , minuto y segundo): Duration (periodo de tiempo); Time (solo hora , minutos y segundos, no tiene en cuenta el día/mes)
  • Image: Para insertar imágenes, soporta los formatos más habituales jpg, png, gif, webp etc.
  • Thumbnail: también son imágenes aunque se espera iconos o tamaños pequeños.
  • File: generalmente son para los pdf
  • Enum: al usuario se le presentan una serie de valores desde una lista cerrada para que seleccione uno de ellos.
  • EnumList: similar al anterior pero se pueden seleccionar más de uno.
  • Adress: dirección postal /calle etc
  • LatLong: datos de latitud y longitud.
  • Ref: muy importante, este campo se utiliza para configurar las relaciones entre las diferentes tablas .

Key?: es donde es la la clave única ( UNIQUEID) de la tabla. Es el único campo que no puede tener datos repetidos.

Label; es el campo que nos servirá como etiqueta , normalmente es soló un campo, aunque a veces se puede poner el campo Imagen para que también salga la cara de la persona (usuario, cliente, alumno etc…).

Formula: en este campo podemos añadir funciones avanzadas que nos ayudaran a seleccionar determinados datos .

Show: si se ha de mostrar en las vistas. Si por ejemplo es un dato que no necesitamos se desmarca y no aparecerá, en este caso es recomendable desmarcar también la columna “Search” que sirve para que puedan ser indexados.

Editable: como su nombre indica lo habilitamos para que se pueda o no editar.

Require: si es o no obligado que se introduzcan datos. Si esta habilitado no se puede dejar en blanco.

Initial value: Se condiciona el campo para que tengo un valor inicial por defecto. Por ejemplo el UniqueID, la fecha/hora actual (TODAY , NOW) , un valor determinado etc.

Display name: se puede cambiar el nombre del campo para que se muestre en el formulario.

Description: es para describir el uso o propiedades de ese campo.

Scan: para detectar códigos de barra o QR.

PII: para datos sensibles que requieren de máxima protección.

Campo Ref

Hacemos un poco de detalle con este campo, muy importante, como hemos dicho, para establecer las relaciones entre las diferentes tablas. Por ejemplo en el caso del ejemplo de una escuela tendríamos

  • una tabla con “alumnos” donde podríamos tener el campo nombre, apellido, dni, correo, etc,
  • una tabla “tareas” con las diferentes asignaturas que hace cada alumno.

En este caso el campo nombre del alumno seria común a las dos tablas para ello desde la tabla tareas que tiene un campo “alumno” (con la Id única de cada alumno) se relaciona con la tabla “alumnos”. De esta forma podremos conocer las diferentes asignaturas que cursan los diferentes alumnos, poner notas etc.

Appsheet campo ref: para establecer relaciones entre las diferentes tablas

AppSheet: Uso de expresiones

Una de las cosas más potentes de AppSheet és el uso de las “expresiones” que la dotan de funciones avanzadas. Las podemos utilizar principalmente en definir valores iniciales, restricciones de las columnas y en columnas virtuales.

Seria larguísimo detallar aquí una explicación para cada una de ellas, en su documentación se puede encontrar detalles y ejemplos para cada una de ellas.

Hay un asistente para construir expresiones que nos ayuda a construirlas , junto con ejemplos, un data explorer para ver

Voy a comentar algunas de de ellas.

Concatenate

Uno de los clásicos , tenemos campo nombre y campo apellidos, obtenemos una nueva columna virtual con el nombre completo separado por un espacio.

appsheet concatenate

If / _THISROW /AVERAGE/SELECT

Un ejemplo más avanzado que combina varias expresiones. Es un ejemplo de un curso donde el profesor debe añadir 3 notas. Se compara si se han añadido las 3 notas del curso . En el caso positivo, calcula la media de las 3 notas agrupando esa operación por alumno y módulo, en el caso contrario, añade el siguiente texto: “Faltan introducir notas!”

appsheet If _thisrow average select

IN / LOOKUP /SWITCH

Otro ejemplo, en este caso tenemos que tener una tabla “Usuarios” añadiendo a los diferentes usuarios con su email y su rol. Esta expresión se añade en cada vista de UX, en “Display” y “Show if” y que que gestiona la visión (oculta o no) de una vista dependiendo del Rol de usuario.

appsheet in lookup switch

Una vez la tenemos vamos a la tabla y podemos definir las acciones que hace cada tipo de usuario según su rol, “UPDATE”, “DELETE”, “ADD”) por usuario. En este caso, solamente el usuario con rol “admin” podrá acceder a todas estas acciones.

appsheet expresiones switch para filtrar

AppSheet: gestión de usuarios

Tenemos varias formas de gestionar el acceso a nuestra aplicación, se accede desde la sección de “Security”:

  • Primero seleccionamos si es necesaria una autentificación
  • Autentificación con un proveedor. El más típico, el ejemplo de la foto que hacemos con Google,
  • La última opción la encontramos en “Manage users” le podemos asignar usuarios nosotros directamente, es útil cuando la aplicación está destinada a un colectivo concreto, por ejemplo una pyme, una escuela etc.
appsheet gestión de usuarios

AppSheet: Comentarios finales

Coste

Cómo puedes comprobar en la página de pricing de AppSheet. A día de hoy solo existen los 4 planes empresariales de pago. De entrada AppSheet es gratis aunque el plan FREE tiene algunas limitaciones que debes conocer para determinar si puedes hacer con tu app todas las tareas que quieres que solucione.

Además del plan gratuito tiene otros 4 planes, estos planes son de pago mensual por usuario, y a medida que el precio es mayor, sus prestaciones aumentan y están más orientados a grandes empresas.

Starter

Es el plan más básico del que dispone actualmente AppSheet, tiene un coste de 5$ por usuario al mes. La funcionalidad principal es que podrás enviar emails que llegarán a cualquier destinatario (Y no solo al creador de la app como sucede en el plan FREE)

Core

Con un coste de 10$ por usuario al mes. Contempla todas las funcionalidades del plan STARTER, y además, características avanzadas como pueden ser:

  • Envío de notificaciones push
  • Generación de reportes programados
  • Escaneo de códigos de barras y NFC,
  • Ejecutar automatizaciones y webhooks
  • Filtros de seguridad o Security Filters para determinar quien puede ver/editar/modificar cualquier tabla o campo

En el caso de necesitar soluciones que impliquen bases de datos SQL o volúmenes de datos muy grandes, dispones de dos planes;

  • Enterprise Standard
  • Enterprise Plus
  • Ambos requieren ponerse en contacto con el servicio de venta de AppSheet para que evalúen tu caso y obtener un presupuesto de forma particular. El coste de estos planes varía dependiendo de las funcionalidades y automatizaciones que precises.

Publisher

Es un plan para pagar por aplicación en vez de pagar por usuarios. Debes saber que esto conlleva la pérdida de validación de usuarios por email, pero siempre puede realizarse un sistema de roles que pueda sustituir a esta función, aunque no sea validando con el proveedor de email. En el caso de pago por aplicación el coste son 50$ por App con el que todos los usuarios que quieras podrán acceder a la app sin que suponga un aumento del precio.

### ¿Cuándo usar la versión gratuita? La mayoría de personas comienzan por la versión gratuita, para probar la plataforma y ver si la tecnología de AppSheet les permite hacer lo que desean con la App que tienen en mente. Pero al margen de los primeros días de pruebas hay muchas personas y pequeñas empresas que únicamente usan la versión gratuita ya que para su cometido no necesitan adherirse a ninguno de los planes de pago. Esto sucede si no necesitas que tu app

  • Las usen más de 10 usuarios
  • No envíe emails automáticos
  • No genere reportes
  • El resto de funcionalidades podrás usarlas siempre que no superes estos 10 usuarios.

¿Qué plan debo escoger?

Es normal que al crear aplicaciones no nos damos cuenta de todas las opciones que hemos activado e implementado y no sabemos si éstas implican el tener un plan u otro. Aunque en muchas de las opciones nos marca si es una opción STARTER, CORE, Enterprise Standard o Enterprise Plus, existe otra manera de identificar esto. Si te diriges al apartado de App Info dentro de My Account Tendrás una relación de todas tus apps y el plan que deberías escoger para cada una de ellas en caso de publicarse.

Además de esto, dentro del editor, en el apartado Manage, en la sección Deploy, al abrir Deployment Check encontrarás el botón “Run Deployment Check”. Una vez lo presiones te ofrecerá un listado de los posibles errores que tiene la app antes de ser publicada. El último punto de la lista es Account status, en él podrás ver si tu cuenta está en algún plan de pago. Si tu cuenta está en el plan gratuito, te mostrará un error a la hora de publicar.

Estrategia de precios

Es muy importante que tengas claro quiénes y cuántos usuarios van a usar cada app. Imaginemos una empresa de 100 empleados en la que todos usan las apps de AppSheet a diario. Si solo va a haber una app de AppSheet en la empresa, lo lógico sería contratar un plan de pago por aplicación. De este modo cada mes la empresa pagaría 50$, mientras que si hubiera escogido un plan STARTER la empresa debería pagar 5$ por usuario cada mes. Esto sería un total de 500$ al mes. Como ves la diferencia es amplia. Pero, ¿Qué pasaría si la empresa tuviese diferentes apps para cada departamento? imaginemos que tiene 15 apps diferentes. En este caso en un tipo de pago por App le estaría costando a la empresa 750$(50$ x 15 apps) al mes, mientras que si tuviera un plan por usuario, todos los usuarios podrían acceder a todas las apps y el coste sería 500$(5$ x 100 empleados/usuarios).

Es muy importante hacer estas cuentas y definir una buena estrategia con los precios para conseguir el menor coste.

Extensiones

Si estas utilizando Chrome hay un par de extensiones que os pueden ir bien para mejorar su uso, sobre todo la primera

  • AppSheet Toolbox: Muy útil cuando estas con las expresiones porque nos da un código de colores para los diferentes elementos y podemos detectar facilmente si nos falta una cerrar algún paréntesis, llaves etc.
  • Extend AppSheet: Nos da algunas opciones visuales como Colapsar el menú de navegación lateral para tener más espacio, ocultar las columnas NFC, PII y SCAN de las tablas (menos utilizadas) para tener más espacio, poner una fuente Monoespacio para que se vea más claro, etc. Instala un icono naranja donde se pueden gestionar estos cambios.

Se pueden crear también automatismos y boots para que nos hagan tareas del tipo enviar un correo, genera pdfs, hay una interminable lista de acciones con ejemplos muy bien documentados en el enlace que os he dejado. Es cuestión de seguir las instrucciones.

Resumen

Primero de todo decir que es una aplicación que está en desarrollo, le van añadiendo funcionalidades y mejoras. Por ejemplo de momento su base de datos nativa da muchos problemas y como ya he comentado es mejor no utilizarla a día de hoy.

Tiene una curva de aprendizaje muy rápida y en poco tiempo puedes tener tu aplicación montada. Encuentro muy limitado la parte de frontend, es decir la parte visual , la gestión de botones o menús es muy básica y tiene muy pocas opciones si la comparamos por ejemplo con las Power Apps de Microsoft .

Lo que es cierto es que hay una nueva corriente de “low code -no code” para crear apps de forma muy rápida y de bajo costo, sin necesidad de programar, y que pueden servir para casos muy concretos ,esto no quiere decir que no tengas que hacer nada …

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *