Build your first AppSheet app: how I built a food tracker

Posted by Filipe Gracio, PhD – Customer Engineer

I keep forgetting what I have in the freezer. At first I used Google Sheets to keep track of it, but I wanted something that was easy to consult and update on my smartphone. So I turned to AppSheet! Here’s a tutorial to follow to make a similar tracking solution.

Creating the database

First I created a database that imported my data from the Sheet:

A cropped screen shot illustrating creating a database in AppSheet by importing data from sheets

After I selected “Import from Sheets” and selected the sheet I was cumbersomely maintaining, I get the preview of the new database:

A cropped screen shot illustrating creating a database in AppSheet by importing data from sheets

Creating the App

Then I can go back and create an App:

A cropped screen shot illustrating creating an app

After I name it I can select the database I just created.

A cropped screen shot illustrating step 1 of selecting the database


A cropped screen shot illustrating step 2 of selecting the database

The App now starts getting created, and then I can start customizing it!

Customizing the App:

I decided I want to actually add more information to the App. For example, I want to categorize my items, so I need another column. I can edit the data for this and I’ll add a column “Category”.

A cropped screen shot illustrating editing the data

After adding the extra column, this is the result:

A cropped screen shot showing the data with the new column added

That’s going to come in handy later for presentation and organization!

Now let’s do some configuration about how the items are presented on the actual app. That’s in the UX section of the App builder. I want to select “Table”, Group by “category” and then sort alphabetically by “Item”

A cropped screen shot showing The Pirmary views in the UX Section of the App builder

After tweaking a few more options in UX “Brand” and “Format Rules”, this is how my app is looks:

A screen shot of the app on a mobile device displaying with content from the original dataset

Using the App – adding and updating items.

Now, I can see what I have in the freezer at all times. If I cook something and have a leftover, I can just add it by clicking the + button. After that, I just need to add in the info:

A screen shot illustrating the functionality of the app on a mobile device

And of course, if I use something I can just tap on it to edit the amount (or delete it).

Try it yourself!

This small App is something I use every week now! It is much easier than my old method, plus I learned how to use AppSheet. And this was just a quite simple use case – which only touched the tip of the iceberg of AppSheet’s features. If you work for organizations that have information to share and organize, this technology could be useful for you.

Try it out for yourself: you can use the complete set of AppSheet features at no cost while building one or many app prototypes. You can also invite up to 10 test users at no cost to use your apps and share feedback.

Thank you to my colleague Florian Opitz, Customer Engineer – Google Workspace + Security , for his useful edits and suggestions.

Google Dev Library Letters: 19th Edition

Posted by the Dev Library team

In this newsletter, we’re highlighting the best projects developed with Google technologies that have been contributed to the Google Dev Library platform. We hope this will spark some inspiration for your next project!

Contributions of the Month

[ML] Serving Stable Diffusion by Chansung Park

Learn the various ways to deploy Stable Diffusion with TensorFlow Serving, Hugging Face Endpoint, and FastAPI.

[ML] Textual inversion pipeline for Stable Diffusion by Chansung Park

Dive into this repository which demonstrates how to manage multiple models and their prototype applications of fine-tuned Stable Diffusion on new concepts by Textual Inversion.

Read more on DevLibrary 

[Flutter] Animated soccer rating hexagon by Prateek Sharma

Create a hexagon widget in Flutter that displays the ratings of a soccer player or team. The six sides represent a different aspect of the player or team’s rating such as speed, strength, and accuracy.

Read more on DevLibrary 

Android & Kotlin

Mastering Kotlin Coroutines by Amit Shekhar

Dive into an introduction to coroutines in Kotlin programming language. Coroutines are a way to write asynchronous and non-blocking code in a sequential and easy-to-understand manner.

Kotlin Symbol Processing (KSP) for code generation by Tim Lin

Discover more about KSP API you can use to develop lightweight compiler plugins, which helps you get the complete source code information during compile time.

Form Conductor by Naing Aung Luu

Learn about form conductor. More than form validation, it provides a handful of reusable API to construct a form in simple easy steps.

MovieDB by Gabriel Bronzatti Moro

Discover how to fetch data from Movie DB API and allow users to search for movies and view details and store them on a local database in this Android project.


A complete guide to Angular Multilingual Application by Hossein Mousavi

Dive into the technical aspects of building a multilingual Angular application, starting with the localization of the application’s text.


Bank cards UI by Ethiel Adiassa

See how Flutter can be used to create aesthetically pleasing and functional UI designs for banking applications.

macOS UI by Reuben Turner

Dive into the repo resource for designers and developers looking to create beautiful templates and tutorials to create macOS applications and interfaces.

Google Cloud

Search for Brazilian laws using Dialogflow CX and matching engine by Rubens Zimbres

Develop a chatbot using Dialogflow CX and a matching engine to help users search for something specific in legislation.

Awesome CloudOps automation by Doug Sillars

Learn how a single repository could satisfy all your day-to-day CloudOps automation needs.

Serverless Kubernetes on Google Cloud Platform by Gursimar Singh

Learn how serverless technologies like Cloud Run can be used to simplify and expedite the process of designing software applications.

Implement secure CI/CD with Workload Identity Federation, GitLab CI, and Cloud Deploy by Ezekias Bokove

See how to implement a secure Continuous Integration/Continuous Deployment (CI/CD) pipeline using Workload Identity Federation and GitLab CI.

Google Dev Library Letters: 18th Edition

Posted by the Dev Library Team

In this newsletter, we’re highlighting the best projects developed with Google technologies that have been contributed to the Google Dev Library platform. We hope this will spark some inspiration for your next project!

Contributions of the month

Moving image showing SSImagePicker in different modes

[Android] SSImagePicker by Simform

See how to use a lightweight and easy-to-use image picker library that has features like cropping, compression and rotation, video, and Live Photos support.

Moving image showing overview of coroutines

[Kotlin] Mastering Coroutines in Kotlin by Reyhaneh Ezatpanah

Dive into a comprehensive overview of coroutines including tips and best practices, along with a detailed explanation of the different types of coroutines available in Kotlin and how to use them effectively.

Read more on DevLibrary

Flow Chart demonstrating Image to Image stable diffusion in Flax

[Machine Learning] Image2Image with Stable Diffusion in Flax by Bachir Chihani

Learn the uses of the Diffusion method, a technique used to improve the stability and performance of image-to-image translation models.

Read more on DevLibrary


Jetpack Compose state, deconstructed by Yves Kalume

Learn how state management in Jetpack Compose is implemented, how it can be used to build a responsive and dynamic UI, and how it compares to other solutions in Android development.

Dynamic environment switching on Android by Ashwini Kumar

Find out how to switch between different environments (such as development, staging, and production) in an Android app.

Migration to Jetpack Compose for a legacy application by Abhishek Saxena

Migrate an existing legacy Android application to Jetpack Compose, a modern UI toolkit for building native Android apps

Machine Learning

Simple diffusion in TensorFlow by Bachir Chihani

Understand the benefits of using TensorFlow for image processing, including the ability to easily parallelize computations and utilize GPUs for faster processing.

Deep dive into stable diffusion by Bachir Chihani

Look into the Flax implementation of the Stable Diffusion model to better understand how it works.

Create-tf-app by Radi Cho

See the tool that allows you to quickly create a TensorFlow application by generating the necessary code and file structure.



NGX-Valdemort by Cédric Exbrayat

Dive into a set of pre-built validation rules and error messages for commonly encountered use cases, making it easy to quickly implement robust form validation for your application.

Passing configuration dynamically from one module to another using ModuleWithProviders by Madhusuthanan B

Learn how to pass configuration data dynamically between modules in an Angular application.


Mastering Dart & Flutter DevTools by Ashita Prasad

Look at the first part of the series aimed at helping developers to understand how to use the tools effectively to build applications with Dart and Flutter.

Server-driven UI in Flutter – an experiment on remote widgets by Akshat Vinaybhai Patel

Learn the insights, code snippets and results of the experiment for readers to better understand the concept of Server-Driven UI and its potential in Flutter app development.

Flutter Photo Manager by Alex Li

Learn an easy-to-use API for accessing the device’s photo library, that performs operations like retrieving images, videos, and albums, as well as deleting, creating, and updating files in the photo library.


How to authenticate to Firebase using email and password in Jetpack Compose? By Alex Mamo 

Here’s a simple solution for implementing Firebase Authentication with email and password, using a clean architecture with Jetpack Compose on Android.

Google Cloud

Google Firestore Data Source plugin for Grafana by Prasanna Kumar

Learn how it allows users to perform operations like querying, aggregating, and visualizing data from Firestore, making it a powerful tool for monitoring and analyzing real-time data in a variety of applications. The repository provides the source code for the plugin and documentation on how to install and use it with Grafana.

Cluster cloner by Joshua Fox

See how this project aims to replicate clusters across different cloud environments and examine these varying infrastructure models.

Getting to know Cloud Firestore by Mustapha Adekunle

Learn how this post covers the basic features and benefits of Cloud Firestore, and how this document database is a scalable and versatile NoSQL cloud database.

Google’s Mandar Chaphalkar has submitted Data Governance with Dataplex

Discover how Dataplex can be used to transform data to meet specific business requirements, and how it can integrate with other Google Cloud services like BigQuery for efficient data storage and analysis.

Google Dev Library Letter: 17th Edition

Posted by the Dev Library Team

We are highlighting the best projects developed with Google technologies that have been shared on the Google Dev Library platform. We hope this will spark some inspiration for your next project.

Android – Content of the Month

Transformers by Daichi Furiya

See the Android transformation library providing a variety of image transformations for Coil, Glide, Picasso, and Fresco.

Camposer by Lucas Yuji Yoshimine

Learn how the camera library in Jetpack Compose which supports taking photos, recording videos, flash modes, zoom ratio, and more.

Read more on DevLibrary

ChatGPT Android by Jaewoong Eum

Integrate ChatGPT on Android with Stream Chat SDK for Compose.

Read more on DevLibrary

Read More

Dev Library Letters: 16th Issue

Posted by the Dev Library Team

Welcome to the 16th Issue! Our monthly newsletter curates some of the best projects developed with Google tech that have been submitted to the Google Dev Library platform.  We hope this brings you the inspiration you need for your next project!

    Content of the month

How to exclude stylesheets from the bundle and lazy load them in Angular

by Dharmen Shah

Learn how to load stylesheets only when needed without making them part of an application bundle.

    Check out content from Google Cloud, Angular, Android, ML, & Flutter


  • Check out this Android library that offers dialogs and views for various use cases built with Jetpack Compose for Compose projects by Maximilian Keppeler.

  • Learn how to create and publish your own Android Library with JitPack by Matteo Macri.


  • Dive into into composition and inheritance in Angular by Dany Paredes featuring an example focused on forms that highlights why you should be careful using inheritance in components.

  • Read “Angular dependency injection understood” by Jordi Riera to gain a broader perspective of how it works, why it is important, and how to leverage it inside angular.


  • Learn how Iris automatically assigns labels to Google Cloud resources for manageability and easier billing reporting in this post by Joshua Fox.

  • Check out Glen Yu’s hack for those in regions without access to native replication in “Pulumi DIY GCS replication” – some of these solutions will require understanding of the fundamental building blocks that make up the Google Cloud Platform.


  • Learn how to make Flutter projects scalable by using a modularization approach in R. Rifa Fauzi Komara’s article, “Flutter: mastering modularization”.

  • Check out Let’s Draw by Festus Olusegun, a simple app made with Flutter that enables users to draw art with freehand, line, and shape tools.

  • Explore how to use Cubits from the Bloc library to manage states and get the benefits and drawbacks of this approach in Verena Zaiser’s article.

Machine Learning

  • Get an overview on Convolutional Neural Networks (CNNs, ConvNets), why they matter, and how to use them in Henry Ndubuaku’s tutorial, “Applying CNNs to images for computer vision and text for NLP”.

  • See why you should add deep learning framework Jax to your stack and get an intro to writing and training your own neural networks with Flax in this introduction tutorial by Phillip Lippe.

Want to read more? 
Check out the latest projects and community-authored content by visiting Google Dev Library.
Submit your projects to showcase your work and inspire developers!