Really useful information! Get yourself a cup of tea and spend ten minutes reading!
Free tips and tricks that you can use for your own App Inventor Apps.
All content by ProfessorCad on this page is protected under Creative Commons: CC BY 4.0
Third Party linked content Copyright is the responsibility of those Third Parties
My Golden Rules:
KISS, an acronym for Keep It Simple, Stupid, is a design principle noted by the U.S. Navy in 1960. The KISS principle states that most systems work best if they are kept simple rather than made complicated; therefore, simplicity should be a key goal in design, and unnecessary complexity should be avoided.
KISS Explained YouTube Movie: Professorcad is not associated with advertisements that may accompany the movie!
Note that if deploying image buttons, especially for toolbars, they may have to be defined in pixels (height and width) to minimise distortion. In my experience, square buttons 50pix x 50pix (min 44pix x 44pix) can serve a range of different phone sizes. A Horizontal Scroll Arrangement (aka container) can ensure the User has access to all of the buttons on the toolbar. You can use smaller buttons, but space them apart so your Users do not hit the wrong one!
Simple GUI How To MovieWith the HTML option selected, You can use HTML tags in Label Components
Tag | Description |
---|---|
<a> | Hyperlink |
<b> | Defines Bold Text |
<big> | Defines 'Big' Text [HTML4 only] |
<blockquote> | Defines a section that is quoted from another source |
<br> | Defines a single line break (\n) |
<cite> | Defines the title of a work |
<del> | Defines text that has been deleted from a document |
<dfn> | Specifies a term that is going to be defined within the content |
<div> | Defines a section in a document |
<em> | Emphasized Text |
<font> | Defines font, color, and size for text [HTML4 only] |
<h1> to <h6> | Heading: HTML headings |
<i> | Defines Italic Text |
<img> | Defines an image |
<li> | Defines a List Row or Item |
<p> | Defines a Paragraph |
<s> | Defines text that is no longer correct |
<small> | Defines smaller text |
<span> | Defines a section in a document or Table |
<strike> | Defines strikethrough text [HTML4 only] |
<strong> | Defines important text |
<sub> | Defines subscripted text |
<sup> | Defines superscripted text |
<tt> | Defines teletype text [HTML4 only] |
<u> | Defines some text that is unarticulated, styled differently from 'normal' text |
<ul> | Defines an unordered List |
Defined and or managed incorrectly, images will take up too much memory and could cause a crash:
App Icon Exception: Adaptive icons: Specify an app icon 512 x 512 pixels PNG format and the App Inventor Build Server will generate icons for every available icon size and shape needed for Android
Things to look out for:
Used by the Storage Access Framework (aka SAF), emails, Web Apps/Servers
File Ext | File Type | MIME Type |
---|---|---|
.aac | AAC audio | audio/aac |
.avi | AVI: Audio Video Interleave | video/x-msvideo |
.azw | Amazon Kindle eBook format | application/vnd.amazon.ebook |
.bin | Any kind of binary data | application/octet-stream |
.bmp | Windows OS/2 Bitmap Graphics | image/bmp |
.bz | BZip archive | application/x-bzip |
.bz2 | BZip2 archive | application/x-bzip2 |
.cda | CD audio | application/x-cdf |
.css | Cascading Style Sheets (CSS) | text/css |
.csv | Comma-separated values (CSV) | text/csv |
.epub | Electronic publication (EPUB) | application/epub+zip |
.gif | Graphics Interchange Format (GIF) | image/gif |
.htm, html | HyperText Markup Language (HTML) | text/html |
.ico | Icon format | image/vnd.microsoft.icon |
.jpeg .jpg | JPEG images | image/jpeg |
.js | JavaScript | text/javascript |
.json | JSON format | application/json |
.mid, midi | Musical Instrument Digital Interface (MIDI) | audio/midi audio/x-midi |
.mjs | JavaScript module | text/javascript |
.mp3 | MP3 audio | audio/mpeg |
.mp4 | MP4 video | video/mp4 |
.mpeg | MPEG Video | video/mpeg |
.odp | OpenDocument presentation document | application/vnd.oasis.opendocument.presentation |
.ods | OpenDocument spreadsheet document | application/vnd.oasis.opendocument.spreadsheet |
.odt | OpenDocument text document | application/vnd.oasis.opendocument.text |
.oga | OGG audio | audio/ogg |
.ogv | OGG video | video/ogg |
.ogx | OGG | application/ogg |
.opus | Opus audio | audio/opus |
.otf | OpenType font | font/otf |
.png | Portable Network Graphics | image/png |
Adobe Portable Document Format (PDF) | application/pdf | |
.php | Hypertext Preprocessor (Personal Home Page) | application/x-httpd-php |
.rar | RAR archive | application/vnd.rar |
.svg | Scalable Vector Graphics (SVG) | image/svg+xml |
.tif, tiff | Tagged Image File Format (TIFF) | image/tiff |
.ttf | TrueType Font | font/ttf |
.txt | Text, (Ascii or ISO 8859-n) | text/plain |
.wav | Waveform Audio Format | audio/wav |
.weba | WEBM audio | audio/webm |
.webm | WEBM video | video/webm |
.webp | WEBP image | image/webp |
.woff | Web Open Font Format (WOFF) | font/woff |
.woff2 | Web Open Font Format 2 (WOFF) | font/woff2 |
.xhtml | XHTML | application/xhtml+xml |
.xml | XML | application/xml (RFC 7303 section 4.1) Or text/XML |
.zip | ZIP archive | application/zip |
.3gp | 3GPP audio/video container | video/3gpp; or audio/3gpp without video |
.3g2 | 3GPP2 audio/video container | video/3gpp2; or audio/3gpp2 |
.7z | 7-zip archive | application/x-7z-compressed |
.n/a | Android Folder | vnd.android.document/directory |
Download files for App Testing [Public Domain Free To Use]
A Plain Text (.txt) ASCII file containing three Lorem Ipsum paragraphs [Mime Type: plain/text]
Download LoremAscii_EN.txtA CSV Table File (Comma Seperated Values File) 6 columns * 7 Rows ASCII file [Mime Type: text/csv]
Download TeamsTable_EN.csvA CSV List File (Comma Seperated Values File) 1 Row ASCII file [Mime Type: text/csv]
Download CarManufactures List_EN.csvA PDF File (Adobe Portable Document Format), text only, multiple pages Lorem Ipsum [Mime Type: application/pdf]
Download LoremText_EN.pdfDownload an App Inventor File which consists of Block Lists for Text, Numbers, Images, Buttons, Labels and TextBoxes of 10, 20, 30 and 40 rows. Keep it in App Inventor with your Projects and simply copy the List you require to the Backpack. [Public Domain Free To Use]
"Good Housekeeping" pays dividends!
An average of 1 million Users per month means that you have a lot of competition for the attention of the Power Users (Technical Support Volunteers). Therefore, it is in your best interests to ensure that your help request is very carefully described and where appropriate supported with images and a small Test Project File (.aia) that demonstrates the problem.
If you are communicating with (IOT) hardware such as Arduino, BBC Microbit, Raspberry Pi, Banana Pi -include your Sketch/Script and connectivity (BlueTooth, BlueTooth LE [BLE], WiFi, Serial/USB Serial). Include your schematic or circuit diagram too.
If you are having trouble with App Inventor (rather than your work on your App) try this first: MIT: Troubleshooting for App Inventor 2
The Basics
Description: Tell Us:
1) Clean up Blocks: This arranges the Blocks in a vertical column, making it easier for us to read [Right Mouse Click in Blocks work space to pop-up menu]
2) Download Blocks as image: This exports a high quality zoom-able image of the Blocks, save on your computer. [Right Mouse Click in Blocks work space to pop-up menu]
3) Upload Blocks Image to Forum Topic: Upload the image from your computer. If a large image, click on it to display in a Viewer page (zoom-able)
Name | Version No | API Level | Release Date |
---|---|---|---|
(none) | 1.0 | 1 | 23-09-2008 |
Petit Four | 1.1 | 2 | 09-02-2009 |
Cupcake | 1.5 | 3 | 27-04-2009 |
Donut | 1.6 | 4 | 15-09-2009 |
Eclair | 2.0, 2.1 | 5~7 | 26-10-2009 |
Froyo | 2.2, 2.2.3 | 8 | 20-05-2010 |
Gingerbread | 2.3, 2.3.7 | 9~10 | 06-12-2010 |
Honeycomb | 3.0, 3.2.6 | 11~13 | 22-02-2011 |
Ice Cream Sandwich | 4.0, 4.0.4 | 14~15 | 18-10-2011 |
Jelly Bean | 4.1, 4.3.1 | 16~18 | 09-07-2012 |
KitKat | 4.4, 4.4.4 | 19~20 | 31-10-2013 |
Lollipop | 5.0, 5.1.1 | 21~22 | 12-11-2014 |
Marshmallow | 6.0, 6.0.1 | 23 | 05-10-2015 |
Nougat | 7.0, 7.1.2 | 24~25 | 22-08-2016 |
Oreo | 8.0, 8.1 | 26~27 | 21-08-2017 |
Pie | 9.0 | 28 | 06-08-2018 |
Quince Tart | 10.0 | 29 | 03-09-2019 |
Red Velvet Cake | 11.0 | 30 | 08-09-2020 |
Snow Cone | 12.0 | 31 | 19-10-2021 |
Snow Cone v2 | 12L.0 | 32 | 07-03-2022 |
Tiramisu | 13.0 | 33 | 15-08-2022 |
Upside Down Cake | 14.0 | 34 | 04-10-2023 |
Vanilla Ice Cream | 15.0 | 35 | 03-09-2024 |
Baklava | 16.0 | DP | 03-06-2025 |
Please note that some of these permissions cannot be used or can no longer be used
🔥 Hot Tip: To update your App on the Play Store:
Note: App Inventor Apps now require an Android App Bundle for Google Play Store. Other Stores may require either an App Bundle (AAB) or an APK. App Inventor can build both.
MIT: Uploading your Apps to Google Play Store🔥 Hot Tip: How to delete your App from the Play Store:
Google Play AccountAn easy way to exchange files between your Smartphone and your PC is via eMail!
MIT: 📽 Using Google Sheets in MIT App InventorArduino Back
🔥 Hot Tip: Ardunio Sketch (Script): Use Serial.println() (empty!) to separate messages when you transmit.
App Inventor: Set DelimiterByte to 10 in the BlueTooth Block.
Check that: Bytes Available > 0 in BlueTooth Block.
Then request -1 bytes to get the full message data.
Specification of an AC To DC Power Adaptor For Arduino UNO: 9v to 12V max DC output, 250mA to 1A max current output, 2.1mm diameter plug which is centre pin positive. If you are connecting kit like lots of LEDs, LCDs, servo motors etc, the Adapter should supply at least 500mA, upto 1A max.
Arduino Uno R3 Hole Dimensions mm
Atmel ATtiny85/ATtiny84 (Atmel is part of Microchip Tech) Back
Official ATtiny85 WebsiteESP8266 WiFi Module Back
🔥 Hot Tip: The ESP8266 ESP-01 WiFi Module can be used with or without a companion microcontroller. It is an SOC - System On a Chip.
[01] ESP8266 Community ForumESP32 WiFi & Bluetooth Mini Microcontroller Back
🔥 Hot Tip: The ESP32 can be used with or without a companion microcontroller.
[01] Predictable Designs: ESP32 as a microcontroller via Arduino IDELinkIt Back
[01] MIT: IoT: Introduction: LinkItBBC micro:bit Back
🔥 Hot Tip: Pairing: This is when you connect your device (smartphone or tablet) to your micro:bit for the first time.
[01] MIT: App Inventor Extension for micro:bitNordic Thingy 52 Back
[01] Nordic Semiconductor: Nordic Thingy 52 home pageSTM32 32bit microcontroller (ARM Cortex) Back
[01] Solderer TV: Communication Between The STM32 And Android Via Bluetooth (HC-06)PIC micrcontrollers Back
[01] DesignSpark: Basics of PIC16F877A microcontrollerRaspberry Pi Back
[01] Adel Kassah: Get Data from Raspberry Pi with App Inventor 📽 YouTube8051 8-bit microcontroller (Intel MCS-51) [Embedded Systems] Back
[01] NPTEL: PDF: Specifications: Intel 8051 microcontrollerBlue Fruit LE Back
The Bluefruit Boards are based on Arduino. They have BLE already built-in for ease of set-up and reliabilty.
It should be noted though that only a few App Inventor Users have used BlueFruit and they have mostly struggled with the communications. MIT Power User Gerrikoio has built an excellent sample project to help. Note: Update the BLE extension if you use Gerrikoio's Project File.
Hackster IO: Gerrikoio: Bluefruit LE: BLE LED Controller: Feather 32u4 + MIT App Inventor ProjectBluetooth Back
App Inventor BLE requires your device (e.g. SmartPhone) to have Android v5.0 or higher to avoid known issues with Google's Bluetooth LE support prior to Android 5.0.
Some Smartphones will not work with BLE unless Google Location is activated. Android Marsh Mallow (v6) and up. This is a Google Android security measure
Download the latest MIT BLE Extension: Version: 20240822 Released: 22-08-2024 Package Name: edu.mit.appinventor.ble-20240822.aix
Fixes Critical issues: MIT BLE Extension
🔥 Hot Tip for BLE: Some of the BLE modules arrive with very little information (or none at all). To communicate with them, you need their UUIDs. Bluepixel Technology have written a Scanner App to help verify UUIDs. Down load it from the Google Play Store: BLE Scanner
🔥 Hot Tip for BLE: The data size is limited by the maximum transmission unit (MTU) of the Bluetooth device, which is typically 23 bytes, including the payload (your data, 20 bytes). If the MTU is resized, the BLE spec says that the max payload for v4.2 and v5.0 is 244 bytes. Depending on the device, this could be more, 512 bytes (517 bytes on Android).
🔥 Hot Tip for Bluetooth: Define your code appropriately if your App needs to both send and receive. Think of a Bluetooth signal as water running through a pipe - it can't go in both directions at the same time (Increasing BLE MTU turns that pipe into a tunnel!).
Troubleshoot Bluetooth Issues
There are many reasons why there would be an issue (no specific order):
Sources of Signal Interference:
Bluetooth Range (maximum distance between Sender and Receiver) is an ever-present challenge, especially indoors. Ensure there are as few physical barriers as possible (walls, doors, furniture, people).
The Bluetooth Range EstimatorYour Own BLE UUIDs
BLE uses UUIDs (universally unique identifiers for Services and Characteristics). You can define your own UUIDs right here!
Note: Do not use many Characteristic UUIDs when it is not necessary. For example, if sending three integer values to your App, they can share the same UUID.
Example
#define BLE_SERVICE_UUID "1F97F780-C16D-48FA-ACF7-84959F055440"
#define BLE_CHARACTERISTIC_UUID "1F97F781-C16D-48FA-ACF7-84959F055440"
//Define Temperature Service
BLEService TempService(BLE_SERVICE_UUID); //BluetoothLE Temperature Service
//Define Characteristic
BLEStringCharacteristic TempCharacteristic(BLE_CHARACTERISTIC_UUID, BLEWrite | BLENotify, 32); //String of 3 ints to App
Links
[01] Jon Gunnar Sponås: Effective Range of Bluetooth CommunicationsText String Character Sets Supported by App Inventor Bluetooth Classic | |
---|---|
US-ASCII | Seven-bit ASCII (ISO646-US), the basic Latin block of the Unicode character set. 127 characters |
ISO-8859-1 | ISO Latin Alphabet N° 1, (ISO-LATIN-1) |
UTF-8 | Eight-bit UCS Transformation Format |
UTF-16BE | Sixteen-bit UCS Transformation Format, big-endian byte order |
UTF-16LE | Sixteen-bit UCS Transformation Format, little-endian byte order |
UTF-16 | Sixteen-bit UCS Transformation Format, byte order identified by an optional byte-order mark |
Bluetooth Versions | |||||||||
---|---|---|---|---|---|---|---|---|---|
Version | Obsolete | BR | EDR | HS | SAM | Classic | BLE | Release Date | MS Windows BT ID |
1.x | ✔ | ✔ | ✘ | ✘ | ✘ | ✔ | ✘ | 1999 | LMP 0.x to LMP 2.x |
2.x | ✘ | ✔ | ✔ | ✘ | ✘ | ✔ | ✘ | 2004 | LMP 3.x to LMP 4.x |
3.x | ✘ | ✔ | ✔ | ✔ | ✘ | ✔* | ✘ | 2009 | LMP 5.x |
4.x | ✘ | ✔ | ✔ | ✔ | ✘ | ✘ | ✔ | 2010 | LMP 6.x to LMP 8.x |
5 | ✘ | ✔ | ✔ | ✔ | ✔ | ✘ | ✔ | 2016 | LMP 9.x |
5.1 | ✘ | ✔ | ✔ | ✔ | ✔ | ✘ | ✔ | 2019 | LMP 10 |
5.2 | ✘ | ✔ | ✔ | ✔ | ✔ | ✘ | ✔ | 2010 | LMP 11 |
5.3 | ✘ | ✔ | ✔ | ✔ | ✔ | ✘ | ✔ | 2021 | LMP 11.x |
BR: | Basic Data Rate max 1Mbps |
EDR: | Enhanced Data Rate max 3MBps |
HS: | High Speed Data Rate max 24Mbps |
SAM: | Slot Availability Masking - detect and prevent interference on neighbouring radio bands |
A2DP: | Advanced Audio Distribution Profile - Optional Bluetooth Stereo profile which defines how high quality stereo audio can be streamed from one device to another |
AptX: | Compression Enhancement of A2DP - requires supporting codec in both devices |
AptX HD: | Compression Enhancement of A2DP - requires supporting codec in both devices |
Classic: | Higher power consumption, less advanced comms. *version 3.x consumes more power than v2.x |
BLE: | Bluetooth Low Energy (for battery powered devices), advanced comms with GATT Generic Attributes hierarchical data structure |
MS Windows Bluetooth Versions | |
---|---|
MS ID LMP | Bluetooth Version |
LMP 0.x | 1.0b |
LMP 1.x | 1.01 |
LMP 2.x | 1.2 |
LMP 3.x | 2.0 EDR |
LMP 4.x | 2.1 EDR |
LMP 5.x | 3.0 HS |
LMP 6.x | 4.0 BLE |
LMP 7.x | 4.1 BLE |
LMP 8.x | 4.2 BLE |
LMP 9.x | 5.0 BLE |
LMP 10 | 5.1 BLE |
LMP 11 | 5.2 BLE |
Bluetooth Modules for Microcontrollers (e.g. Arduino) | |||
---|---|---|---|
Module | Bluetooth Version | Manufacturer | Reference |
HC-05 | v2.0+EDR | GME | GME: HC-05 Data Sheet PDF |
HC-05 | v2.0+EDR | Guangzhou HC TECH | Guangzhou HC TECH: HC-05 Data Sheet PDF |
HC-06 | v2.0+EDR | Guangzhou HC TECH | Guangzhou HC TECH: HC-06 Data Sheet PDF |
HC-08 | v4.0 BLE | Guangzhou HC TECH | Guangzhou HC TECH: HC-08A Data Sheet PDF |
HC-10 | v4.0 BLE | UNIVERSAL-SOLDER | UNIVERSAL-SOLDER: HC-10 Web Page (HC-10 is a HM-10 clone) |
HM-01 | v2.1+EDR | JNHuaMao Technology Company | JNHuaMao Technology: Bluetooth v2.1 module Data Sheet PDF |
HM-02 | v2.1+EDR | JNHuaMao Technology Company | May be supplied with or without EDR |
HM-03 | v2.1+EDR | JNHuaMao Technology Company | May be supplied with or without EDR |
HM-05 | v2.1+EDR | JNHuaMao Technology Company | May be supplied with or without EDR |
HM-06 | v2.1+EDR | JNHuaMao Technology Company | May be supplied with or without EDR |
HM-07 | v2.1+EDR | JNHuaMao Technology Company | |
HM-08 | v2.1+EDR | JNHuaMao Technology Company | |
HM-09 | v2.1+EDR | JNHuaMao Technology Company | |
HM-10 | v4.0 BLE | JNHuaMao Technology Company | JNHuaMao Technology: Bluetooth HM10 and HM11 module Data Sheet PDF |
HM-11 | v4.0 BLE | JNHuaMao Technology Company | |
HM-12 | v4.0 BLE | JNHuaMao Technology Company | JNHuaMao Technology: Bluetooth Dual Data Sheet PDF |
HM-13 | v4.0 BLE | JNHuaMao Technology Company | |
HM-16 | v4.1-5.0 BLE | JNHuaMao Technology Company | JNHuaMao Technology: Bluetooth HM16 and HM17 module Data Sheet PDF |
HM-17 | v4.1-5.0 BLE | JNHuaMao Technology Company | |
HM-18 | v4.2-5.0 BLE | JNHuaMao Technology Company | JNHuaMao Technology: Bluetooth HM18 and HM19 module Data Sheet PDF |
HM-19 | v4.2-5.0 BLE | JNHuaMao Technology Company | |
GWBMD0X | v4.0 BLE | Gigawit | Gigawit: GWBMD0X BLE Data Sheet PDF |
RN4870-V/RM140 | v5.0 BLE | MICROCHIP | MICROCHIP: BLE RN4870-71 Data Sheet PDF |
453-00039C | v5.1 BLE | Laird Technologies | Laird Technologies: BL653 Series BLE Data Sheet PDF |
Wireless Technologies Back
Including Bluetooth, there are many other wireless technologies to choose from!
John Teel: Comparison of Wireless Technologies Bluetooth Classic, WiFi, BLE, Zigbee, Z-Wave, 6LoWPAN, NFC, WiFi Direct, GSM, LTE, LoRa, NB-IoT, and LTE-MLEGO MINDSTORMS Back
MIT: IoT: Introduction: LEGO® MINDSTORMS® EV3 robot platformMIT App Inventor Codi Bot Back
MIT: IoT: Introduction: Codi BotExtensions Library maintained by App Inventor Expert Taifun Baer, including his own excellent Products:
Pura Vida: App ExtensionsExtensions Library maintained by App Inventor Power Users (including Taifun) and MIT:
MIT App Inventor Forum: App Extensions