👋 This article is the first installment in English (of a series of four) of the original Spanish post "Descubriendo Google AppSheet en 48 horas", which was previously published on this blog in August 2023.
Part I. 🡆 Introduction and data 🡄
Part II. Tables and the formula language
Part III. Views
Part IV. Actions, catch-all section and closing comments
🙌 Thanks to Christian Schalk for suggesting an English version in the first place and for his help and encouragement along the way.
Earlier this year back in July, I thought that Google AppSheet, Google's visual tool for building automation solutions, it's "no-code" or "low-code" tool-of-choice, was not my cup of tea...
And just seventy-two hours later, in a burst of late-summer enthusiasm, here I am, hitting the pause button on my second article on the Google Chat API that I promised a few weeks ago, to tell you something that I still don't quite know how it's going to turn out.
Yes, you can call me whimsical. My partner keeps telling me that 😆. And you will both be right.
In this post I will share my initial impressions and early findings using Google AppSheet during an intense weekend of exploration and learning.
I can promise relevant insights into this exciting tool and a possibly indecent amount of screenshots. Prepare a thermos of good coffee or iced tea and join me on this journey of initiation into the AppSheet world.
Table of Contents
Meet Google AppSheet
First of all, I should mention that AppSheet has a remarkable history before Google.
Google acquired AppSheet in 2020, when it had already been on the market for about 8 years, to replace App Maker, its (until then) flagship tool for creating "low-code" applications, which was discontinued in 2021.
For that reason, I will not try to introduce AppSheet to anyone. Besides, I'm nothing more than a newcomer who is just exploring the possibilities of this platform... and enjoying it like a child (which I love). In fact, I have to admit that since my first contact with Coda, no other technological artifact has made me so obsessed. And those are big words.
If you want to know what AppSheet is all about, I cannot help but recommend this presentation prepared by my dear Luis Loscertales for his vibrant workshop "My first app with Google AppSheet" at the GEG Spain meeting Volvemos 10x (Valencia, May 2022). By the way, how utterly stirring this meeting was! 🤗
Or better yet, you can see Luis in action in this live session that he was kind enough to run for our community of Apps Script users 🤓, Apps Script Ñ.
A visionary, my friend Luis, no doubt about it.
But this article isn't meant to be a tutorial (I guess 🤔), but just some first impressions to highlight the differentiating features of AppSheet... so let's continue.
AppSheet & Your data
In a nutshell, AppSheet takes the data stored in various services and platforms and provides a visual interface to easily build applications on top of them, with a strong focus on mobile consumption.
As you can see, AppSheet's connectivity is rich and generous.
I have to say that the integrations with Google Calendar, Forms (through an add-on) and Drive really caught my eye.
In fact, I find the latter particularly intriguing, as it apparently allows you to build a data table from the files contained in a Drive folder, treating them as rows in which metadata (internal ID, path, name, name, creation date, last editor, and file type) form the columns (fields) of the table. Definitely something I need to try, it looks like it could be useful in document management use cases, such as organizing all those awesome procedures and work instructions that flourish in ISO-compliant quality management systems (no emoji here, but some irony built in).
I also find remarkable the relatively new (October 2022) possibility to store data natively within AppSheet thanks to its own databases. And by the way, I wonder if this was inspired by that ineffable Google's Area 120 experiment called Tables 🤔.
And as if that was not enough, we also have a native connector for Looker Studio! Wow, very cool, these AppSheet guys really know how to make me feel good in this brave new (for me) AppSheet world.
AppSheet & Me
Okay, now that I've (not!) explained to you what AppSheet is 😉, it's time to talk about what the hell I did for probably an inordinate number of hours on a certain weekend in July.
I am not entirely sure that the deepest and most lasting learning is always achieved by jumping headlong into the pool to try to solve a specific problem without first checking how high the water goes.
However, I firmly believe that this can often be the most motivating way.
And for this reason, and after a week at school in which the staff (yep, I am talking about teachers) had been talking a lot (and I mean a lot) about how to improve the tutoring, guidance, and general mentoring of students, I couldn't think of anything better than to make this goal the driving force behind my AppSheet learning.
Pues este es mi miniproyecto del finde ✌️, una app creada con #AppSheet para ayudar a mis tutores a la hora de hacer el seguimiento del alumnado, con múltiples niveles de acceso y 🔐👀 a nivel de registro.— Pablo Felip (@pfelipm) July 9, 2023
Por cierto, cómo molan los formularios dinámicos 🤩. pic.twitter.com/Hiu1OeA7NW
Shall I tell you how it went?
AppSheet & My data
At school we use Google Sheets a lot.
Yes, we all pretend to know that spreadsheets are not databases, but we often still pull lots of data coming from other information systems into them when the workflows they provide do not fully meet our needs. And I suspect that if you are a teacher or school administrator, you may be doing the same thing.
¡Data silos, some will cry! Survival of the fittest, I call it.
Since we already have all the necessary information to perform the student tutoring process I was just talking about a moment ago (students, groups, tutors...) stored in reassuring and comfortable spreadsheets, I found it would be natural to use them in agileTutor™, my first attempt at an AppSheet application.
The details of the underlying relational model are less important (for now). But to give you the best possible context, I beg you to take a look at this diagram, which shows which data tables are involved in my student tracking processes and how they are related to each other.
☝ Do not be misled by the ease and boldness with which I talk about data and their relationships into thinking that this is a trivial matter. Quite the contrary. Poor relational design is a snowball that grows as you build your application. And it can even crush you in the final stages, forcing you to rethink back everything. But that's another story that may be told some other time.
The arrows loosely indicate which information from one table is used in another, thus establishing a relationship between both. For example:
- Tutors are identified by their email addresses in the Tutors table.
- Assigning a particular tutor to a group is done in the Groups table by entering the email address of a particular tutor in the Tutor column of the row representing the group. The tutor's email address thus "travels" from the Tutors table to the Groups table.
Agreed, this description of the data structure is rather poor and unrigorous, but I feel it's good enough for us 🙏.
And here we go with the pleasant surprises.
It turns out that AppSheet automatically infers the relational structure of our data tables from the way we design the application, a structure that can be displayed either as a simple list or a very colorful interactive graph.
Just go to ⚙Settings → Relationships to check it out!
Common places in AppSheet
At the risk of oversimplifying, the problem AppSheet solves is all about building visual interfaces to navigate a hierarchy of related data tables. And it also —it turns out it was two problems instead of one— lets you to build extremely cool automations on top of it, so that the resulting application is highly responsive.
If you're dabbling into AppSheet like I am right now, I bet you're going spend a lot of time for a while in the first three of these five sections of the AppSheet editor:
Shortcuts to all these sections are neatly arranged in the top half of the left sidebar in the Appsheet app editor. I'll highlight the ones we'll be focusing on in this multi-part article.
It occurs to me that another bird's-eye view would be nice to get us situated, right? Even if this is not a tutorial 😜.
In a rather quick way:
- Top bar, contains several buttons to perform general tasks and lets you access your user profile and settings.
- Left sidebar with direct access buttons to the different main sections or work panels of the editor.
- Secondary panel to manage the specific elements you are working on at any moment, you already know them all: tables, views, actions, automations and chat apps.
- The specific work area for each of AppSheet's panels. This is where you are going to have a blast. Really!
- Application preview. Here you can comfortably test in real time the appearance and behavior of your app on different types of devices (mobile, tablet and desktop browser) while you are building it. Extremely helpful and neat.
Having made the introductions, let's dive into the pool 💦...
But I am afraid that this is as far as this goes for today.
We've just entered the realm of AppsSheet and begun to explore its lush lands. Hope you have enjoyed the adventure so far.
Stay tuned for the next post in this exploring AppSheet series, where we'll take a deep dive into the extremely powerful and satisfying AFL, the AppSheet Formula Language (spoiler: if you're familiar with Google Sheets, prepare for a shock).
Until then, happy appsheeting!