Google created a cloud-based data base system called Fusion Tables. Later, support for Fusion Tables was added to App Inventor.
Google has sent out an email advising Fusion Tables users that they will be discontinuing Fusion Tables – literally, the database service will go away on 3 December 2019.
If you have used Fusion Tables, you will need to update the code to use a new data base system. You might consider third-party App Inventor-based development systems such as Appy Builder.
Google Fusion Tables was launched almost nine years ago as a research project in Google Labs, later evolving into an experimental product. For a long time, it was one of the few free tools for easily visualizing large datasets, especially on a map. Since then, Google has developed several alternatives, providing deeper experiences in more specialized domains.
Here are some next steps to consider:
Learn about alternative toolsSeveral new Google tools have been developed over the years, and we encourage you to visit the Help Center to learn which ones fit your use-case.
Teams at Google have developed internal tools that can create powerful map visualizations. We are working to make some of these tools publicly available and will have more to share in the coming months—sign up to stay in touch.
Download your dataFilter by “type:table” to pull up a list of your tables in Google Drive. Download data from an individual table by following these instructions. If you have a lot of tables, we will make it easy to download all your data in one step via Google Takeoutstarting in March 2019.
A reader asked if there is a way to determine the status of the Android device battery in MIT App Inventor. Unfortunately, App Inventor does not provide a way to check the battery status … but Appy Builder does!
To answer that question, our first Appy Builder app is a simple tutorial showing how to use the BatteryStatus component in Appy Builder.
The output is displayed after pressing the Start button and shows that my phone’s battery is at 99% and was plugged in to the AC power charger.
In this screen shot, the phone was unplugged from the battery charger and the “plugged in” status has changed to UNKNOWN.
I created this screen by adding a Button control, and then adding six HorizontalLayouts. Inside each layout, I dragged two Label controls, setting one to the descriptive text (such as “Battery level:” and the second to be used to display the status for that property).
The BatteryManager has several properties that describe aspects of the battery.
Before the properties may be used you must activate the BatteryManager by setting the .StartMonitoring property to true; this must be done separately as shown below. Errors occurred when I put that code inside the button’s .Click handler. Instead, I moved the StartMonitoring assignment to the Screen1.Initialize event handler and everything worked fine.
BatteryLevel – the battery’s current level in percent
BatteryTemperature – the temperature of the battery in degrees Celsius
BatteryPresent – true (my phone does not permit me to remove the battery)
BatteryPlugged – returns “AC” if the device is connected to a charger, or UNKNOWN if the device is not plugged in. This might also return “WIRELESS” if the device is currently using a wireless charger (based on Android BatteryManager API).
BatteryVoltage – battery voltage. A typically value will be near 4 volts plus or minus for most phones.
BatteryHealth – GOOD. I presume this returns a value corresponding to the Android BatteryManager API, which includes COLD, DEAD, GOOD, OVERHEAT, OVER_VOLTAGE, UNKNOWN and UNSPECIFIED_FAILURE.
Right-click (or Ctrl-click on Mac OS X) and use your browser’s feature to save this file to your computer: BatteryStatus.aia
Then, use Projects | Import selected project (.aia) from my computer … to load the file into Appy Builder
I prepared a PDF file that presents a quick look at all the App Inventor blocks. I posted this a long time ago but its still available and very useful! This can help you find specific blocks in the Blocks view editor.
MIT App Inventor supports apps having multiple screens, but due to the way that App Inventor is implemented, they recommend that apps have no more than 10 screens total – or risk running out of memory or seeing the Blocks editor crash or hang!
They suggest it may be possible to simulate multiple screens using just one extra screen, depending on the application. They provide hints as to how to do those hints may be insufficient for new App Inventor programmers.
A reader asked for help on this so I created this tutorial.
Since this app has two screens, this tutorial is split into two sections, one for each screen, and then a third section discussing optional modifications.
The basic app is called ManyScreens. The optional modifications are in ManyScreens2_Buttons (source code links at end of this post)
This demonstration app features 4 buttons – the first button displays “Screen 1”, the second button displays “Screen 2” and so on. These buttons could have any label on them appropriate for your application, such as “Register Account”, “Reserve a space”, “Display reservations” or what ever make sense for your app.
Pressing Screen 1 displays this screen – note the label at the top and the photo on the page.
This screen appears when pressing Screen 3. Note that the text label references Screen 3.
The button Do Something! is a placeholder for adding code to do something unique for this screen. For this application all it does is close the screen and return to the main app screen, Screen1.
A reader asked, “How can I center an image on the screen in an App Inventor app?”
There is an easy way to do this and there is a more complicated method (using the Canvas and other graphics objects). In this tutorial, we show the easy way to center an image on screen!
Our app uses the camera to take a photo and then displays that photo on screen. A secondary feature of the app demonstrates how the “image object” in App Inventor is the filename where the image is stored. In this way, the “image object” can be stored in TinyDB – its not really the binary data representing the photo or image – it is, in fact, just the filename. (TinyDB only stores text).
User Interface View
To demonstrate image centering, we use the camera to take a photo (creating the image) and then a Show pictures button to display the image on screen.
When you press Take a picture, the app launches the Android camera app to take the photo. When done taking the photo, click on the “check mark” (as it appears on my Android 7 phone) at upper right of the screen. The camera app returns to our app, which displays the file name and location on our Android device where the JPG image file has been stored.
Press “Show pictures” to display the photo. The default image size is small – but centered! We will see how to show the photo at a larger size.
A reader asked: Is there is a way to have a control, such as a button, rotate on the screen?
With a simple trick, the answer is Yes!
The trick is to use ImageSprites that are made to look like buttons. Then, instead of .Click event handler, as used on a Button, we use one of the “touch” events defined for the ImageSprite class. To rotate the sprite, change the sprite’s Heading property. Easy!
App Inventor programmers routinely store values, such as numbers or text strings (“Hello!”) in variables. For example,
stores the numeric value 6 in to the variable TOTALBUTTONS.
To illustrate by example, here is a global variable named SpecialButton. We can initialize it to anything we want at this point.
Next, inside our app, our blocks code assigns Button1 to the variable SpecialButton. SpecialButton now holds a reference to the actual user interface control Button1.
Since SpecialButton is a variable and not an actual button, we cannot directly use a SpecialButton.Click handler but we can use a feature of App Inventor to do the same thing in a different way. We will see how to do this in this a bit later.
You can store any App Inventor components – a Clock, a Bluetooth device – any component, in a variable.
Why would you want to do that? We will see in the example in this lesson.
This tutorial is in both written form and as an online video.
This tutorial shows how an App Inventor app can communicate with 2 (or more) Arduino boards and Bluetooth devices simultaneously. These instructions assume you are familiar with the code and hardware presented in Part 1 and Part 2 and “How to connect App Inventor apps to Arduino using Bluetooth“. This tutorial uses the same Arduino source code as in that tutorial.
A follow up tutorial will show how to simplify some of this code for supporting multiple Bluetooth devices.
Bluetooth is a short range, low power, limited speed wireless communications technology. The original Bluetooth technology provided a serial communications link between two paired devices (as compared to an individual data packet sent between up to n devices using the much newer Bluetooth LE – see here and here for information on Bluetooth LE).
Arduino is a microcontroller board for building hardware projects. You can write software for Arduino using a programming language similar to the C++ programming language.
The code used in these examples has been tested with some specific Bluetooth modules connected to Arduino. These include the JY-MCU (Amazon (Prime), Amazon (non-Prime) and also some HC-05 and HC-06 based Bluetooth modules.
Build two Arduino boards each with an appropriate Bluetooth module as described in the prior tutorial.
Compile and load the Arduino software in to each of the Arduino boards.
Test and confirm that your basic LED lights flash for the original, single Bluetooth connection case.
Then, with two working boards, continue to this tutorial.
User Interface View
The original app supported just one device, so there was just a single “Connect” and “Disconnect” button. This version demonstrates how to connect more than one Bluetooth device so we need separate buttons for each device. Similarly, we must add a second status and data sending item to the screen:
Before running this app, be sure to use Android | Settings | Bluetooth to “pair” your Bluetooth devices with Android.
Then, run the app and select Connect to Device 1. This displays a list of available Bluetooth devices in the vicinity. Select your specific Bluetooth device for the connection. Do this for both Bluetooth devices.
Once connected, you can send some simple commands to the Arduino board. Commands are very simple – a single number – to tell the Arduino to do something (this confirms that the Bluetooth link is working). If we enter a single digit 1 and then press Send Numeric 1, the Arduino board will send back 2 bytes of data which will then be displayed on the app screen. If we enter a single digit 4 and then press Send Numeric 1, a value of 4 is transmitted over Bluetooth to the Arduino board, which responds by flashing the externally connected LED.
Because the text box for data entry has its property set to NumbersOnly, a pop up numeric keypad displays when entering data, rather than the usual Android text keyboard.
Video Demonstration this App
I created a short video showing this app in operation. There are two versions of the video – one is standard 2D format and the other is in VR 3D format for viewing on Google Cardboard-like viewers used with smart phones to watch VR videos.
The pedometer uses the phones motion sensors (accelerometers) to identify when the phone (or tablet) is being carried by someone that is walking – and uses this to measure the number of steps you take as you walk. When calibrated to the length of your stride, the pedometer provides a way to estimate the distance you have traveled.
The pedometer is so simple to use, I put this example together while eating lunch today.
This is a simple program!
To use this app, enter your stride length in meters. For illustration, I set the stride length to 1/2 meter or 0.5, as seen in this screen shot:
Press the Start measuring steps button to activate the pedometer and then start walking with your phone. You will soon see the Elapsed distance value increase as you move around.
See Part 0 for a brief introduction to this series and Bluetooth LE plus our past tutorial series on classic Bluetooth for communicating between Android devices, and between an Android device and an Arduino board with external Bluetooth transceiver.
Note – Bluetooth LE was introduced in the Bluetooth 4.0 specification. As of this writing, the latest version of the specification is 4.2. Bluetooth LE introduced capabilities to support very low power, battery operated devices that are designed to operate for weeks to months on a single battery or battery charge
Does Your Device Support Bluetooth LE?
To find out if your smart phone or tablet can work with Bluetooth LE: Go to the Google Play store and install the free app “BLE Checker” on your Android device. The app is simple – it tells you whether your device supports Bluetooth LE or not and that is all it does.
Devices that support Bluetooth LE will support BLE connections between compatible devices. However, this app does not tell you if your device supports a special BLE feature called “advertisements”. You can use Bluetooth LE without the “advertisements” feature but you will not be able to use all BLE features.