Tutorial Appsheet
Tutorial Appsheet
Tutorial Appsheet
Ok, let’s get started. Meet Jenna. She’s the CEO of fictional hardware chain based in California
called EZ Hardware.
She sells all the tools and materials that DIY enthusiasts and contractors could want, but there’s
a lot of competition in the market. She identified the need for a new way to communicate with
contractors in the area.
Attracting contractors is good for business. Contractors buy a lot of stuff, and they buy often.
Jenna knows that having a way of connecting with contractors will be valuable to her and them.
They will be able to stay on top of trends, gain new skills and sell more products. In turn, her
hardware chain will sell more as well, and become a mainstay of the communities her stores are
located in.
Jenna knows that contractors are mobile and don’t have time to sit around checking their emails.
She’s realised that an app is the best way to connect her business with theirs.
Time to shine. Jenna has asked you to build an app for her company which will allow her to
market her stores to contractors and will leverage some of the other marketing tools they have.
Contractors can see upcoming events that will be held at the stores.
They can also view news articles that EZ Hardware feels would be interesting to them.
They can see featured product reviews.
In the menu, theres more options
Easy access to stores listings
A map showing all the EZ hardware stores – as well as a link to get directions to any of
the stores
Links to useful “How to” Videos
And a link to EZ Hardware’s Digital accounts such as twitter, facebook and the company
website.
And what’s amazing is that all this info comes from a Google Sheet!
Whenever the spreadsheets get updated, the data in the app updates with it. AppSheet is
democratising app development!
Getting set up
To start, you’ll need an AppSheet account and a Google account, both of which you can create
for free.
Sign up to AppSheet by clicking here and logging in with your Google account.
You’ll be building up each View in the app, one at a time. Let’s start with a Store Listing View.
Launching an app is quite simple, and we’ll get to that in a moment. First you’ll create the first bit
of data that your app will need.
Select or create a Folder in Google Drive where you want to keep your app’s data.
Go ahead and create a folder called “Stepsheet Course” (where you can keep all your apps) and
within that create another folder called “Tutorial 1 – EZ Hardware”.
Now, create a spreadsheet to store the app’s data. Call it whatever you want. I Suggest “EZ
Hardware” or similar.
Here you can see the spreadsheet for the app I’ve already completed.
Great. Now you next step is to install the AppSheet Add-on in Google Sheets. You will only need
to install the add-on once.
Inside the Google Sheet, click on Add-ons and the Get Add-ons.
Then search for “AppSheet” and clock on “Add to Chrome”. Mine says “Manage” because it’s
already installed.
Create your first View
Start off by renaming this first sheet “Store_Listing”. You’ll see that I’ve placed an underscore in
between the two words rather than a space in the name. AppSheet will work fine with a space,
but I recommend using an underscore.
Later, when you build more complex apps that reference tables and sheets, you’ll see that you
will find it easier for you to read and follow what you are doing when referring to formulas, which
can sometimes get complicated.
When spaces are present in the names, it becomes less clear whether the table name is “Store
Listing” or just “Listing”. Like I said, this will become clearer when building other apps. For now,
just take my advice :).
Now complete the header row for this set of data. You will always need to use the first row in the
spreadsheet as your header row and then input your data into the columns. AppSheet won’t work
if you list the headers in the column and then fill out data in the rows.
All stores have the same information. There’s the store name, the address, the operating hours
and the store’s phone number. These will be the names of the columns for the header row.
Go ahead and fill in data for the six fictional stores. You can use the same data as I’ve got here
or input whatever you want.
When adding stores addresses, choose some for 2 or three different cities so that a few cities
have multiple stores in them- you’ll add some nice sorting options to the app using these
groupings.
We’ll still tidy this up and add more views. But how cool is that? You typed some data in a
spreadsheet and with the click of a button, created an app!
You can click on a Store Listing to view more info about the store.
You can click on the Map and see where all the stores are listed as well .
You can also call or text the store number, or launch the device’s Map app.
Pretty cool right?
Before we start building more of the app, let’s take a moment to tour the Editor.
With that short tour out of the way, let’s carry on working with the Store Listing View.
Let’s click it as a User would be able to, and let’s see what happens.
Woops – looks like a user can add their own store listing – that’s not right!
The Plus sign means Users can add data to the underlying spreadsheet, which for this app you
don’t want. Let’s change a setting to prevent that from happening.
Hit the “Cancel” button on the preview window to go back to the Store Listing View.
Now, because we are dealing with Data and how the Data is being handled, we’ll need to find the
right setting in the Data menu.
AppSheet works with this concept of Tables.
Each table links to a spreadsheet. Here you can see the first table that was created when we
launched the app is call EZ Hardware Demo. We’ll add new tables when we start adding more
data, for now we’ll just work with the current table.
Here you can see the Table Name, the source path (which is the name of the Google Sheet) and
finally, the worksheet within that Google Sheet workbook where the data is stored.
In this case, its the Store_Listing sheet.
Here the setting we want to change. See where is says : Are updates allowed? The default
setting is to allow for Adds and Updates, which means users can Add to the Google sheet and
Update the google sheet that this table links to.
Clicking on the drop-down menu, you can you can see all the different options available. You can
control what users are able to do with each sheet.
In other apps we will want users to manipulate data, but not in this one. We’re going to change it
to “Read only” to make sure that Users can only view the data, not change the data, or add any
data to the underlying spreadsheet.
Now you’ll see the plus sign option has disappeared. Some changes in AppSheet take
immediate effect. Others require you to hit this “Save Changes” prompt that pops up. For good
measure, you should always hit “Save Changes” to make sure everything works as expected.
Ok great, now let’s look at the next Tab in the Data menu – Column Structure. This is where all
the magic happens!
At the moment there is only one table, but this will start getting populated with more as
you develop the app.
Clicking on Show All Properties, you can see the list of all the columns that you have in your
spreadsheet.
AppSheet does its best to identify what type of data is in each column – it does this by looking at
the name and if present, the data inside each column.
This is important to get right so that the app behaves in the right manner. If for example this
phone column was identified as text, then the app will not be able to launch the device’s phone
when the number is clicked, because it would think it was just text. If the Address column is not
identified as an address, then the app wouldn’t able to link to the Maps app on the device.
You’ll see there are quite a lot of options available!
Take a moment to verify that your app matches each of these column types.
You can collapse and expand the Preview pane by clicking on this little arrow. Collapse it now to
get a better view of the rest of the screen.
Now you’ll notice some other settings here – Type Qualifiers, App Formulas and so on. These
are outside the scope of this tutorial, but this is where you control some visibility options, as well
as how columns treated in your app.
Next, let’s head on over to the next Menu item – the UX menu!
You can click on the Map to see a map with all the stores identified. Now, AppSheet saw that
you have Map data in your table and so assumes that you want a map as well and it created a
Map view. In this case, AppSheet is right! So leave the View in place, but this is a good chance
to show you the View options.
Here you can see the two views listed. There’s the List View and the Map. AppSheet auto-
generated this view when we launched the app, but we’ll be adding additional views
manually. Click on the List View and you’ll see these options pop up. There’s a tonne of setting
available and you’ll become familiar with them as you build more apps and experiment.
For starters, let’s change the name of the View. I think “Stores” is more descriptive than List.
There, you can see the name of the button changed in the Preview window.
You can also see that the data for this view comes from the “EZ Hardware” table.
There are a bunch of different View Types available. The Table view works well for this one.
You can also Change the position of the button on the screen. Leave it where it is for now – we
can tidy up further one we have all our views in place.
There are some sorting options for how the data in this view should be displayed. For now, set it
to Store Name, Ascending. You will see it’s sorted by the Store Name, in alphabetical order.
Click on “Save Changes” to make sure everything saves.
You can also look at the map view for good measure. All the settings look pretty good and the
map looks good, so we don’t need to change anything.
You’ll see the data source for this View is also the “EZ Hardware” table. You can have multiple
Views link to one table. Generally however, you will have a single view for each table you create.
One last thing before you move onto building your next view.
Head back to the Data menu item.
As you can see, you currently only have a single data table, which AppSheet has defaulted to
naming whatever the Google Sheet name is – in this example, it’s “EZ Hardware demo S3”. As
you can see in the worksheet name, its the Store_Listing sheet that we started with.
For good measure, let’s go ahead and rename this Table to “Store_Listing” so that it matches the
others that we’ll creating for consistency. Then you won’t need to try and remember two sets of
names for where the data comes from.
You’ll only need to do this renaming for the first table. The rest that you create will take on the
name of the spreadsheet it’s based on, automatically. For some reason, AppSheet doesn’t
name the first one automatically when launching an app from a sheet, but in other cases it does.
Ok, hit save changes. Now here’s another example of the beauty of AppSheet – anything that
depended on this table that you’ve renamed has been automatically changed to reflect this name
change. As you can see, the Store View has had its data source changed from the old name to
the new Table name, and the same goes for the Map View as well!
Little touches like this really help speed up the app development process!
That took a little while because I was explaining everything, but you’ll see the beauty of
AppSheet once you get familiar with it – it’s amazingly fast to add data, views and quickly
experiment with different settings.
Ok, let’s get cracking with some more views!
Now that the app has been created, you will add additional tables and views from within the
Editor.
Ok, now from the Data menu and in the Tables tab, click the Add New Table button.
This next workflow order changes occasionally – sometimes you may need to first select the
source for the table, but it should automatically pick up the same Google sheet that the app is
based on..
If you need to select the source: Here you’ll need to connect a source – in other words, you’ll
need to tell AppSheet where to get the data from. The options you first see may vary quite a lot
depending on how AppSheet has updated, what data sources you’re using and so on. For now,
find the Google option and select it. Next, search through the folders in your google Drive to find
the workbook where the data is stored.
Now you will need to specify which sheet you want to connect. Select the Events sheet.
Because this is an app where contractors can only View information, we’ll need to uncheck all of
these options.
If you select Allow Updates, then users of the app will be able to update the rows in the Google
Sheet.
If you select Add, then users will be able to Add new data.
Similarly, if you select Allow Deletes, then Users will be able to Delete data from the
spreadsheet.
You can allow different permissions for different sheets, but in this case Jenna does not want
Users users to add, delete or edit any data, they must only view data, which makes sense.
In other tutorials we’ll get into the different permissions for when you do want users to manipulate
the data but for this tutorial, we’ll always uncheck all of these options.
Once you’ve done that – go ahead and click Create Table.
The Store Name is set to the “Name” type. This is actually not very different compared to being
set to the Text type, but the AppSheet documentation indicates that setting to the Name type
means that in certain View types the name is given priority to other data types. Don’t worry too
much about this though.
The Event is the event name which is set to Text. This is just regular text, which is perfect.
The Date and Time columns have been correctly identified as Date and Time column types.
The Description has been set as LongText. What this means is that it can accept and display
longer inputs than the name and Text column types which have limits on the number of
characters that these columns can include.
AppSheet does its best to try guess what sort of data it can expect to see by using the data in the
sheet and the column names. Generally AppSheet is pretty good at identifying these but you
should always double check them.
Here you can see the Events view has already been added and is listed alongside the Store and
Map views.
From the summary data listed below the View name, you can see that it is drawing data from the
Events table.
The View type selected is Table – that name can be a little confusing but it means that the data is
displayed as a Table i.e. in rows and columns. There are a bunch of other ways data can be
displayed, including Maps, Slideshows and a few others – which one you use will depend on the
data available and what you want the app to look like & how you want it to behave.
Click on the Events menu item in the preview pane and you will see the list of Stores where
events are happening.
You can click on any of the store names to see more details about the event at that store, and
you can click the back arrow to return to the list of events.
Now, this table view for the Events isn’t set up to be useful at a glance. The summary information
presented here looks a bit sparse. It would be great to add the date column to this summary view
to give a bit more information and make it easier for the User to see when events are happening.
Let’s also tidy up the View button and placement.
Start typing in Calendar in the icon search bar and then select the Calendar icon.
Let’s also change the position of the Events menu button. You will see that the button is currently
placed in the Menu – that’s the Hamburger Menu dropdown button. Not very handy for this
tutorial because you’ll need to first access the Hamburger menu each time to find it. Let’s change
it’s position to Left.
Now you’ll see it appears on the bottom menu of the device. There is space for 3 icons, with the
left “Share” icon and right “Sync” icon being system icons which are fixed in place – you cannot
move these.
In between the two system icons you can have anywhere between 0 and 3 icons for quick
access to Views.
Ok, back to how the data is being displayed. You can play around with different options to see
what happens, but once you are done, make sure that you have:
1. “Sort by” Store name and have is sort in Ascending order. This will sort alphabetically.
2. “Grouped by” Store name selected – this will group the data on the sheet by the Store
Name – so multiple events at the same store will now fall under one store heading. Also set
this to Ascending.
Next setting is the “Column order”. AppSheet may have already displayed the Event Name and
date in the view, but sometimes things change unexpectedly, so it’s best to explicitly sort by the
things you want to view – that will prevent changes elsewhere affecting your Views.
So go ahead and have the Column Order Display as Event and then Date – these being the
Event and Date columns from your table.
There you go – now that looks a lot clearer! The User will easily be able to get an overview of
which events are happening and when they are happening at each store.
Go ahead and click “Save Changes” to lock these in.
Now head back to the app preview window and hit the Sync
button.
Tada! The data is now in the app!
This works the same for deleting or editing data on the back-end.
Users won’t have to always press the Sync button – the app will sync as the User switches
between views, loads the app and so on. The sync button is a handy way to force the app to
sync with the database right away.
Well done – you already have an app that has two tables and three Views!
I’m sure by now you are seeing how powerful AppSheet is.
Secondly, you’ll also create a list of relevant News articles. Jenna’s team will be able to add
news articles via the Google sheet for anything that Contractors would find useful. This will help
keep the app fresh and relevant as Contractors start logging on to check a curated news
Thirdly, you will add is a list of featured products that are stocked in stores. These will have links
to online reviews and you’ll display them in a new view type called the Slideshow. Jenna knows
that featuring products is a great way of introducing professionals to new stock and she wants
this view to look especially great.
Head over to Youtube and find a few videos of DIY tips- paste their links in the Video Link
Column and give each video a simple title in the How To column.
Create a new sheet called News.
Add the following column headers: Product, Image, Description, Review URL.
Head over to www.protoolreviews.com and choose a few tools to add as Featured Tools in the
app. In practice, Jenna’s team will be able to do this themselves, linking to other site’s reviews or
their own. Add the Product Name, a short description, a link to the main image of the review and
a link to the review itself.
If you are not sure how to insert the image URL into the image column, just right click in Windows
(or double tap on Mac) on the image you want ot include from the review site and Select “copy
image address” and then paste that into the Image column.” This is one way of adding images to
apps – you’ll see a different way to add images stored in the Google Drive account when you add
the Digital Accounts View later on in this tutorial.
There you go. You have added the data needed for the three Views that you’re about to add to
the app.
Click on Add new Table. Then click on the source – and if you need to – navigate to the
“How_To” spreadsheet in your Google Sheet and click Next.
Remember, you don’t want contractors to be able to add or change the data, only view it – so
make sure all the permissions are disabled.
And scroll down to check that all the permissions under “Are Updates Allowed?” are set to Read
Only.
Now go to the Column Structure tab in the Data menu and check that AppSheet has correctly
identified the data types in each column.
Head to the How_To table and click “Show all properties”, they should look like this.
The News column structure should look like this.
And the Featured Product Table column structure should look like this.
Make sure the View Type is set to Table and then search for and select the “film” icon.
Now go to the next view – Featured Products. In this tutorial, AppSheet automatically called the
View “List”, instead of “Featured Product”, so we’ll change this in a moment.
If for some reason AppSheet hasn’t named the view correctly, you can always name it whatever
you want. Your Editor may not have done this.
This is a good example of how the name of the View doesn’t have to match the table it is based
on. However, here we’ll change the name to be consistent and so that it makes sense to the
User.
“Featured Products” might be a bit long to display under the menu button on a phone, so just
rename it from”List” to “Featured”.
In this example, the view type is set to Deck view.
Have a look in the Preview pane. You will see it’s not that great – a slideshow will look much
better in this case. Change the View Type to Slideshow.
To change the icon, search for and select the Star icon.
Now for the News view.
Make sure the view is also set to Table, then search for and select the “News” icon.
Now, if you go to the News view in the preview and you click on the topmost article, you will see
that the oldest article is listed first.
Wouldn’t it be better if the newest article, based on the date column, was listed first? That’s
where sorting comes in!
In the UX > View menu in the Editor, make sure the News View is still selected, then scroll all the
way down to the “Sort By” option and make sure Date > Descending is selected.
Now if you go the the News tab and click on the first news item, you will see it’s the latest one.
All the icons in your Preview window may be in different places from what you see in this tutorial,
but that will be cleaned up after you’ve added the final view in the next section.
Hit the big blue Save Changes button to lock these changes in.
Looking good – your app is really starting to come together now.
You’ll also get the chance to see how link to images that are stored on Google Drive, rather than
using a link to an image on the web, as you did for the Featured Products.
First, you’ll need some images.
Next to where you created the original spreadsheet in Google Drive, create a folder called
“images”. You can call it something else if you want, it won’t matter – but go with “images” for
now.
Now download and place the following three logos inside the “images” folder that you’ve just
created in Googel Drive.
Here they are: one is for Twitter, one for Facebook and one for the Website.
Now populate the rows as you see here. I’ve used placeholders for EZ Hardwares accounts’
Urls, but you can use whatever you want.
Note how the images are referenced. Click on the screenshot above to get a better view of the
image filename.
/image/<filename> – it’s saying look in the image file in this directory and find this filename.
Head to Data > Column Structure and have a look at the Digital Accounts column types, they
should match these.
In this tutorial, AppSheet didn’t add the new Digital Accounts View – if that happened to you,
then follow these steps…
Make sure you are on UX > Views (because that’s where Views are controlled from).
Click Add new View at the bottom of the Views list.
Change the name of the view to “Digital Accounts” and select the source data as the
Digital_Accounts table which you just added.
Make sure the View Type is set to “Deck View” because that will look good in this context,
showing the Logo as a small square image next to the text of the Url.
Search for and select the “world” icon for the button.
Hit Save Changes and ta-da! You have a Digital Accounts View, just like that.
Take a second to pat yourself on the back and check it out!
Note that the Store Name is just set to the Name column Type. Select the Edit icon on the left of
the Column. This will show you a more detailed set of controls for this Column.
Change the Column type from Name to Ref.
See all these little Blue Arrows next to the Store Names? Don’t click on one just yet, rather click
on one of the events under the store name.
See all the Event details and the little blue arrow next to the Store name? Click on it.
Bam! You are taken right to the Store Listing which shows all the details for that Store. You will
see the link works both ways. In this Store Listing View, all the related Events for this store are
listed below the details.
You use References to link Tables together. This allows the User to see related information
within the app.
When you start building more complex apps, you will use references quite a lot to be able
to access data in a View that resides on a different table from that View.
A note on References
Ok, so how do References work? We’ll touch briefly on an important concept in databases, that
of Key values.
Every table needs a Key column, that is, some column that will have Unique values in each row.
This is a way of identifying unique records. Think of it as a Record ID which says “This is the ID
for this Row, and the data in this row is associated with this record.”
AppSheet will attempt select which column is the Key for the table. If it can’t fine one, it will use
the Row Number as the Key column. You can however change this if needed, but the Key
column must have unique values, it can’t have any duplicates because then AppSheet won’t
know which row the data in the duplicated keys belongs to.
In this app, the Store_Listings key column is the Store Name. That is because the store name
will only be listed once this column and won’t be repeated. The Store Name column will only
contain unique values.
Note that the Store_Listing table now has a new Virtual Column added below the list of columns.
This column shows that it is linked to the Events table via a Ref. Only Tables that have an
incoming link get this new virtual column added.
In the Events table, the Event is the key column, because the event name won’t be repeated.
The Event column will only contain unique values.
Ok, so you probably have thought, “But what if the same event name is repeated over again?”
Then yes, you will have a problem. Generating Unique keys is beyond the scope of this tutorial,
but in this case a simple fix will be to set the Row Number column as the key, which will work
because this is a Read Only table, as are all Tables in this app.
The Store Name in the Events table can’t be the key for that Table, because of course the Store
name might appear more than once in that column if there is more than one event assigned to
that store.
So, the Events table can link to the Store_Listing table via a Reference, because AppSheet is
able to recognise that the Store Name column in the Events table has the same values as is
found in the Key column (the Store Name) in the Store_Listing table.
In short, the tables you want to link must have a common column in both (e.g. Store Name) and
that column must be a Key column in the table being referenced.
Improve the Store Listing View / How to update a Table’s
structure
The Store Listing View could be improved a bit. Wouldn’t it be great if stores were grouped
according to the city they’re in? That way, a contractor could more easily find the information
about the Store that’s relevant without having to go into each store to see the address and city.
The problem is, we don’t have a City Column in the Store_Listing Table by which to group the
stores. There is an address column, but it’s not possible to sort by a full address. You need to
have a new column called City in the table and then you can sort by that.
This next exercise will show you what to do when you need to change the structure of your
spreadsheet after having already created a Table from it. Like most things in AppSheet, this is
quite easy to do.
In the Editor, go to Data > Column Structure and click on”Show” in the Store_Listing table.
You’ll see that nothing has changed. Where is the City column? You have to let AppSheet know
that the spreadsheet structure has changed.
To do so, click on Regenerate next to the Table name. This tells AppSheet to go look at the
spreadsheet and to restructure the Table to match.
After regeneration the Table, it will likely change position in the list of both the Table and Column
Structure view. Go look at the Column Structure for the Store_Listing table. You will see that it
now includes the City column. Well done!
Your Preview Pane may show that the Store View now includes the City column. This is helpful
but as you can see here, the Stores could still be grouped together better.
Great work! Have a look at the Preview window – each store is now nicely grouped by the City
the store is in.
Hit Save Changes. Next up, you’ll be making sure the Buttons on the app are all ordered
correctly.
Do the same for the Map View, and set the Menu Order to “2”.
Set the How To View to Menu Order “3” and the Digital Accounts View to Menu Order 4.
Hit Save Changes and now all your buttons are correctly configured!
In the drop-down menu, in the “About” view, there is also just default information. Let’s change
that too.
First you’ll need images. Download the following images in place them the same folder in Google
Drive as you stored the Facebook, Twitter and Web images for the Digital Accounts view.
hardhat logo.png and contractor_bg.jpg
Now head to UX > Brand and Localize. In the App logo settings, click on the document icon and
browse to find the “hardhat logo.png” image and select it.
For the Launch image, do the same but select the “contractor_bg.jpg” image. Hit Save changes.
Now the App icon has been updated. If you hit the Sync button in the Preview window, you’ll see
the Sync screen has also changed.
A Word of Warning – because of the way AppSheet works, updating the App’s icon won’t reflect
on the devices of Users who have already installed the app .
You’ll see there are quite a few customization options available in this pan, but we won’t cover
them in this tutorial.
Easy right?
Enter some text in the Short Description and Description boxes. That’s all we’ll cover in this
tutorial when it comes to these settings.
Hit Save Changes.
Congratulations - you're now an App Developer!
That’s it – the app is complete! In just a couple of hours you went from absolutely nothing, to a
complete App with NO CODE. This would have been impossible just a few years ago.
What’s more, this isn’t an app that’s merely displaying static information. Updating the dat is as
simple as changing data in a spreadsheet – a skill regular employees already have!
Ok so you aren’t done quite yet – you want to see this app on your phone right? And you need to
send it to Jenna for review. Let’s do that next.
The app is currently Not Deployed and is in a “prototype” state. You can confirm this by looking in
the upper-left corner of the
screen.
First, download the AppSheet app from the Google Play Store or iOS App Store by searching for
“AppSheet”. Here’s what the AppSheet Icon will look like once installed on the phone.
Once installed, you can send an install link to your email address (or Jenna’s) by going to the
Users Menu and entering the email address you want to send the install link to and hit “Send
install link”.
If you want to, you can also copy the install link and send it via email.
The recipient will receive an email with the install link and will be provided with instructions on
how to install the app. The process differs slightly depending on which operating system and
browser is being used. For more info, see the AppSheet documentation. Here’s an example of
what the email will look like.
Clicking on the install link will present the User with instructions for installation. If the User
doesn’t have AppSheet installed yet, they will be instructed on how to do so.
Once installed – the recipient will be able to access the app! Here’s what it looks like in the home
screen.
When the App is in prototype phase, you can have a handful of users testing the app without
getting charged (at the time of writing this tutorial).
There you go. Now any time that you make changes to the app in the Editor and Save the
changes, the app will update. When you edit data in the spreadsheet, this will be reflected across
all the devices that the app is installed on as well.
Now AppSheet will make sure everything is in place for the app to be deployed correctly.
In this case, the app is not ready. Details of all the checks are given in the checklist. What is
causing this message is that this Account does not have payment details entered.
If you do want to deploy your app for real, have a look at the AppSheet pricing
page and the AppSheet Pricing Guide on this site and if you have any trouble, there’s a very
helpful community of developers and the AppSheet team in the AppSheet Google+ Community.