Home Windows Apps Phone Apps Bespoke Contact Privacy

professor cad logo

Christopher J Ward
Engineer & Software
Developer


App Inventor Tips & Tricks

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



If you find my Tips & Tricks helpful, please donate    Sightsavers    (No obligation)


GUI Layout

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.

Movie  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!

Movie  Simple GUI How To Movie

With the HTML option selected, You can use HTML tags in Label Components

HTML Tags Supported

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

Images

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

Cannot Build or Install APK, or APP installs but Crashes/Freezes  

Things to look out for:

Blocks Warning
Disable Clock Timer

MIME TYPES

Used by the Storage Access Framework (aka SAF), emails, Web Apps/Servers

File ExtFile TypeMIME 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, htmlHyperText Markup Language (HTML) text/html
.ico Icon format image/vnd.microsoft.icon
.jpeg .jpgJPEG images image/jpeg
.js JavaScript text/javascript
.json JSON format application/json
.mid, midiMusical 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
.pdf 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, tiffTagged 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
Iana: Internet Assigned Numbers Authority: Registration of Media MIME Types

MOCK DATA FILES

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  Download LoremAscii_EN.txt

A CSV Table File (Comma Seperated Values File) 6 columns * 7 Rows ASCII file [Mime Type: text/csv]

Download  Download TeamsTable_EN.csv

A CSV List File (Comma Seperated Values File) 1 Row ASCII file [Mime Type: text/csv]

Download  Download CarManufactures List_EN.csv

A PDF File (Adobe Portable Document Format), text only, multiple pages Lorem Ipsum [Mime Type: application/pdf]

Download  Download LoremText_EN.pdf

BLOCK LISTS TEMPLATE

Download 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]

Block Lists Template Image

Project File Care  

"Good Housekeeping" pays dividends!

ExportProjectToComputer
Recycle Inline Comment
Open Puzzle Piece

Getting Help on the App Inventor Forum  

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:

How to insert an image of your Blocks into your Forum Post

Steps 1,2,3 image

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)

  • You might need to insert a screenshot image from your phone. Do not take photos of your phone with another phone!
    Most Android phones will capture the screen when you hold-down the power and volume buttons at the same time. Many phones have a built-in app to do it - or you can download one from Google Play.

Forum Etiquette

MIT: App Inventor Forum Posting Guidelines

Android Versions

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~1322-02-2011
Ice Cream Sandwich4.0, 4.0.4 14~1518-10-2011
Jelly Bean 4.1, 4.3.1 16~1809-07-2012
KitKat 4.4, 4.4.4 19~2031-10-2013
Lollipop 5.0, 5.1.1 21~2212-11-2014
Marshmallow 6.0, 6.0.1 23 05-10-2015
Nougat 7.0, 7.1.2 24~2522-08-2016
Oreo 8.0, 8.1 26~2721-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 Q3-2024

Android Permissions

Please note that some of these permissions cannot be used or can no longer be used

ask for permission
  • ACCESS_COARSE_LOCATION
  • ACCESS_FINE_LOCATION
  • ACCESS_FM_RADIO
  • ACCESS_LOCATION_EXTRA_COMMANDS
  • ACCESS_MOCK_LOCATION
  • ACCESS_MTP
  • ACCESS_NETWORK_CONDITIONS
  • ACCESS_NETWORK_STATE
  • ACCESS_NOTIFICATION_POLICY
  • ACCESS_NOTIFICATIONS
  • ACCESS_PDB_STATE
  • ACCESS_VOICE_INTERACTION_SERVICE
  • ACCESS_VR_MANAGER
  • ACCESS_WIFI_STATE
  • ACCESS_WIMAX_STATE
  • ADD_VOICEMAIL
  • ALLOW_ANY_CODEC_FOR_PLAYBACK
  • ANSWER_PHONE_CALLS
  • ASEC_ACCESS
  • ASEC_CREATE
  • ASEC_DESTROY
  • ASEC_MOUNT_UNMOUNT
  • ASEC_RENAME
  • AUTHENTICATE_ACCOUNTS
  • BATTERY_STATS
  • BLUETOOTH
  • BLUETOOTH_ADMIN
  • BLUETOOTH_MAP
  • BLUETOOTH_PRIVILEGED
  • BLUETOOTH_STACK
  • BODY_SENSORS
  • BRICK
  • BROADCAST_CALLLOG_INFO
  • BROADCAST_NETWORK_PRIVILEGED
  • BROADCAST_PACKAGE_REMOVED
  • BROADCAST_PHONE_ACCOUNT_REGISTRATION
  • BROADCAST_SMS
  • BROADCAST_STICKY
  • BROADCAST_WAP_PUSH
  • CACHE_CONTENT
  • CALL_PHONE
  • CALL_PRIVILEGED
  • CAMERA
  • CAMERA_DISABLE_TRANSMIT_LED
  • CAMERA_SEND_SYSTEM_EVENTS
  • CAPTURE_AUDIO_HOTWORD
  • CAPTURE_AUDIO_OUTPUT
  • CAPTURE_SECURE_VIDEO_OUTPUT
  • CAPTURE_TV_INPUT
  • CAPTURE_VIDEO_OUTPUT
  • CARRIER_FILTER_SMS
  • CHANGE_APP_IDLE_STATE
  • CHANGE_BACKGROUND_DATA_SETTING
  • CHANGE_COMPONENT_ENABLED_STATE
  • CHANGE_CONFIGURATION
  • CHANGE_DEVICE_IDLE_TEMP_WHITELIST
  • CHANGE_NETWORK_STATE
  • CHANGE_WIFI_MULTICAST_STATE
  • CHANGE_WIFI_STATE
  • CHANGE_WIMAX_STATE
  • CLEAR_APP_CACHE
  • CLEAR_APP_GRANTED_URI_PERMISSIONS
  • CLEAR_APP_USER_DATA
  • CONFIGURE_DISPLAY_COLOR_TRANSFORM
  • CONFIGURE_WIFI_DISPLAY
  • CONFIRM_FULL_BACKUP
  • CONNECTIVITY_INTERNAL
  • CONTROL_INCALL_EXPERIENCE
  • CONTROL_KEYGUARD
  • CONTROL_LOCATION_UPDATES
  • CONTROL_VPN
  • CONTROL_WIFI_DISPLAY
  • COPY_PROTECTED_DATA
  • CREATE_USERS
  • CRYPT_KEEPER
  • DELETE_CACHE_FILES
  • DELETE_PACKAGES
  • DEVICE_POWER
  • DIAGNOSTIC
  • DISABLE_KEYGUARD
  • DISPATCH_NFC_MESSAGE
  • DISPATCH_PROVISIONING_MESSAGE
  • DOWNLOAD_CACHE_NON_PURGEABLE
  • DUMP
  • DVB_DEVICE
  • EXPAND_STATUS_BAR
  • FACTORY_TEST
  • FILTER_EVENTS
  • FLASHLIGHT
  • FORCE_BACK
  • FORCE_STOP_PACKAGES
  • FRAME_STATS
  • FREEZE_SCREEN
  • GET_ACCOUNTS
  • GET_ACCOUNTS_PRIVILEGED
  • GET_APP_GRANTED_URI_PERMISSIONS
  • GET_APP_OPS_STATS
  • GET_DETAILED_TASKS
  • GET_INTENT_SENDER_INTENT
  • GET_PACKAGE_IMPORTANCE
  • GET_PACKAGE_SIZE
  • GET_PASSWORD
  • GET_PROCESS_STATE_AND_OOM_SCORE
  • GET_TASKS
  • GET_TOP_ACTIVITY_INFO
  • GLOBAL_SEARCH
  • GLOBAL_SEARCH_CONTROL
  • GRANT_RUNTIME_PERMISSIONS
  • HARDWARE_TEST
  • HDMI_CEC
  • INJECT_EVENTS
  • INSTALL_GRANT_RUNTIME_PERMISSIONS
  • INSTALL_LOCATION_PROVIDER
  • INSTALL_PACKAGES
  • INSTALL_SHORTCUT
  • INTENT_FILTER_VERIFICATION_AGENT
  • INTERACT_ACROSS_USERS
  • INTERACT_ACROSS_USERS_FULL
  • INTERNAL_SYSTEM_WINDOW
  • INTERNET
  • INVOKE_CARRIER_SETUP
  • KILL_BACKGROUND_PROCESSES
  • KILL_UID
  • LAUNCH_TRUST_AGENT_SETTINGS
  • LOCAL_MAC_ADDRESS
  • LOCATION_HARDWARE
  • LOOP_RADIO
  • MANAGE_ACCOUNTS
  • MANAGE_ACTIVITY_STACKS
  • MANAGE_APP_OPS_RESTRICTIONS
  • MANAGE_APP_TOKENS
  • MANAGE_CA_CERTIFICATES
  • MANAGE_DEVICE_ADMINS
  • MANAGE_DOCUMENTS
  • MANAGE_FINGERPRINT
  • MANAGE_MEDIA_PROJECTION
  • MANAGE_NETWORK_POLICY
  • MANAGE_NOTIFICATIONS
  • MANAGE_PROFILE_AND_DEVICE_OWNERS
  • MANAGE_SOUND_TRIGGER
  • MANAGE_USB
  • MANAGE_USERS
  • MANAGE_VOICE_KEYPHRASES
  • MASTER_CLEAR
  • MEDIA_CONTENT_CONTROL
  • MODIFY_APPWIDGET_BIND_PERMISSIONS
  • MODIFY_AUDIO_ROUTING
  • MODIFY_AUDIO_SETTINGS
  • MODIFY_CELL_BROADCASTS
  • MODIFY_DAY_NIGHT_MODE
  • MODIFY_NETWORK_ACCOUNTING
  • MODIFY_PARENTAL_CONTROLS
  • MODIFY_PHONE_STATE
  • MOUNT_FORMAT_FILESYSTEMS
  • MOUNT_UNMOUNT_FILESYSTEMS
  • MOVE_PACKAGE
  • NET_ADMIN
  • NET_TUNNELING
  • NFC
  • NFC_HANDOVER_STATUS
  • NOTIFY_PENDING_SYSTEM_UPDATE
  • OBSERVE_GRANT_REVOKE_PERMISSIONS
  • OEM_UNLOCK_STATE
  • OVERRIDE_WIFI_CONFIG
  • PACKAGE_USAGE_STATS
  • PACKAGE_VERIFICATION_AGENT
  • PACKET_KEEPALIVE_OFFLOAD
  • PEERS_MAC_ADDRESS
  • PERFORM_CDMA_PROVISIONING
  • PERFORM_SIM_ACTIVATION
  • PERSISTENT_ACTIVITY
  • PROCESS_CALLLOG_INFO
  • PROCESS_OUTGOING_CALLS
  • PROCESS_PHONE_ACCOUNT_REGISTRATION
  • PROVIDE_TRUST_AGENT
  • QUERY_DO_NOT_ASK_CREDENTIALS_ON_BOOT
  • READ_BLOCKED_NUMBERS
  • READ_CALENDAR
  • READ_CALL_LOG
  • READ_CONTACTS
  • READ_DREAM_STATE
  • READ_EXTERNAL_STORAGE
  • READ_FRAME_BUFFER
  • READ_INPUT_STATE
  • READ_INSTALL_SESSIONS
  • READ_LOGS
  • READ_NETWORK_USAGE_HISTORY
  • READ_OEM_UNLOCK_STATE
  • READ_PHONE_NUMBERS
  • READ_PHONE_STATE
  • READ_PRECISE_PHONE_STATE
  • READ_PRIVILEGED_PHONE_STATE
  • READ_PROFILE
  • READ_SEARCH_INDEXABLES
  • READ_SMS
  • READ_SOCIAL_STREAM
  • READ_SYNC_SETTINGS
  • READ_SYNC_STATS
  • READ_USER_DICTIONARY
  • READ_WIFI_CREDENTIAL
  • REAL_GET_TASKS
  • REBOOT
  • RECEIVE_BLUETOOTH_MAP
  • RECEIVE_BOOT_COMPLETED
  • RECEIVE_DATA_ACTIVITY_CHANGE
  • RECEIVE_EMERGENCY_BROADCAST
  • RECEIVE_MEDIA_RESOURCE_USAGE
  • RECEIVE_MMS
  • RECEIVE_SMS
  • RECEIVE_STK_COMMANDS
  • RECEIVE_WAP_PUSH
  • RECEIVE_WIFI_CREDENTIAL_CHANGE
  • RECORD_AUDIO
  • RECOVERY
  • REGISTER_CALL_PROVIDER
  • REGISTER_CONNECTION_MANAGER
  • REGISTER_SIM_SUBSCRIPTION
  • REGISTER_WINDOW_MANAGER_LISTENERS
  • REMOTE_AUDIO_PLAYBACK
  • REMOVE_DRM_CERTIFICATES
  • REMOVE_TASKS
  • REORDER_TASKS
  • REQUEST_IGNORE_BATTERY_OPTIMIZATIONS
  • REQUEST_INSTALL_PACKAGES
  • RESET_FINGERPRINT_LOCKOUT
  • RESET_SHORTCUT_MANAGER_THROTTLING
  • RESTART_PACKAGES
  • RETRIEVE_WINDOW_CONTENT
  • RETRIEVE_WINDOW_TOKEN
  • REVOKE_RUNTIME_PERMISSIONS
  • SCORE_NETWORKS
  • SEND_CALL_LOG_CHANGE
  • SEND_DOWNLOAD_COMPLETED_INTENTS
  • SEND_RESPOND_VIA_MESSAGE
  • SEND_SMS
  • SEND_SMS_NO_CONFIRMATION
  • SERIAL_PORT
  • SET_ACTIVITY_WATCHER
  • SET_ALARM
  • SET_ALWAYS_FINISH
  • SET_ANIMATION_SCALE
  • SET_DEBUG_APP
  • SET_INPUT_CALIBRATION
  • SET_KEYBOARD_LAYOUT
  • SET_ORIENTATION
  • SET_POINTER_SPEED
  • SET_PREFERRED_APPLICATIONS
  • SET_PROCESS_LIMIT
  • SET_SCREEN_COMPATIBILITY
  • SET_TIME
  • SET_TIME_ZONE
  • SET_WALLPAPER
  • SET_WALLPAPER_COMPONENT
  • SET_WALLPAPER_HINTS
  • SHUTDOWN
  • SIGNAL_PERSISTENT_PROCESSES
  • START_ANY_ACTIVITY
  • START_PRINT_SERVICE_CONFIG_ACTIVITY
  • START_TASKS_FROM_RECENTS
  • STATUS_BAR
  • STATUS_BAR_SERVICE
  • STOP_APP_SWITCHES
  • STORAGE_INTERNAL
  • SUBSCRIBED_FEEDS_READ
  • SUBSCRIBED_FEEDS_WRITE
  • SUBSTITUTE_NOTIFICATION_APP_NAME
  • SYSTEM_ALERT_WINDOW
  • TABLET_MODE
  • TEMPORARY_ENABLE_ACCESSIBILITY
  • TETHER_PRIVILEGED
  • TRANSMIT_IR
  • TRUST_LISTENER
  • TV_INPUT_HARDWARE
  • TV_VIRTUAL_REMOTE_CONTROLLER
  • UNINSTALL_SHORTCUT
  • UPDATE_APP_OPS_STATS
  • UPDATE_CONFIG
  • UPDATE_DEVICE_STATS
  • UPDATE_LOCK
  • UPDATE_LOCK_TASK_PACKAGES
  • USE_CREDENTIALS
  • USE_FINGERPRINT
  • USE_SIP
  • USER_ACTIVITY
  • VIBRATE
  • WAKE_LOCK
  • WRITE_APN_SETTINGS
  • WRITE_BLOCKED_NUMBERS
  • WRITE_CALENDAR
  • WRITE_CALL_LOG
  • WRITE_CONTACTS
  • WRITE_DREAM_STATE
  • WRITE_EXTERNAL_STORAGE
  • WRITE_GSERVICES
  • WRITE_MEDIA_STORAGE
  • WRITE_PROFILE
  • WRITE_SECURE_SETTINGS
  • WRITE_SETTINGS
  • WRITE_SMS
  • WRITE_SOCIAL_STREAM
  • WRITE_SYNC_SETTINGS
  • WRITE_USER_DICTIONARY

General

MIT: Setting Up App Inventor
MIT: Updating App Inventor Setup Software
MIT Library: Documentation & Support
MIT: User Interface Components
MIT Library: Live Development, Testing and Debugging
PDF: Franklyn Turbak: PDF: 🔥 Events-First Programming In App Inventor
PDF: CCSCNE14: PDF: 🔥 Presentation re Events-First Programming In App Inventor
Oracle: Date and Time Patterns [Used with the App Inventor Clock Component]
Power User TimAI2: Metricat AI2: 🔥 Introduction to App Inventor plus excellent Scraps, Guides and Resources
Power User Juan Antonio: 🔥 Introduction to App Inventor, Arduino and other microcontrollers, Guides, Resources, Tutorials
Power User Taifun: 🔥 App Inventor Tutorials, Code Snippets and Extensions.

Trouble Shooting your App Inventor Setup

MIT: Setting Up App Inventor
MIT: How to Update the App Inventor Setup Software
MIT:App Inventor Online Connection Test
MIT: IT Help for Schools using MIT App Inventor
MIT:Connecting your Phone or Tablet over WiFi

Report Anti Virus Potential False-Positive

Ahn Lab
Avast
AVG
Bit Defender
Malwarebytes (via their forum)
Eset
Kaspersky
McAfee
Sophos
Norton-Symantec
Trend Micro

Test your Android App .apk or Windows Desktop Program .exe with all Anti-Virus software online, with one upload

Virus Total

Alternative Stores you can upload your App to (Google Play is not the only App Store!)

Huawei App Store (huge)
SlideME Marketplace
Amazon
Samsung App Store
mobile9 App Store
Bemobi - associated with Opera
Mobango
Get Jar
CNET
Torrapk
Apk Pure
Market Place Zoom
Aptoide
Softonic
Product Hunt (App hosted on your own website)
Mobile Toones

Publish Your App On Google Play Store  

🔥 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
App Inventor Forum: Tutorials and Guides: Publish App On Google Play Store (27/01/2021)
GoodFirms Blog: Anastasiya Filiuta: How to Publish an Android App on Google Play Store (25/09/2022)
Google: Google Play Launch Check List
Google: Google Play Developer Policy Center
Google: Play Console Help
Google Console for Google Play Store (signup)
Summary of Android Manifest Permissions
Coding Minds: 📽 YouTube: How to Publish Your MIT App Inventor App to Google Play [25/07/2017]
Mariusz Ferdyn: 📽 YouTube: How to publish App Inventor application to Google Play [29/04/2018]

🔥 Hot Tip: How to delete your App from the Play Store:

Google Play Account

Learning App Inventor

📽 MIT Beginner Videos hosted on Vimeo
🔥 MIT Book 2 Free online PDFs or purchase the book and help fund App Inventor
Books about App Inventor that you can buy online or in your local bookstore
Course In A box
MIT Tutorials
Kumaraswamy: 🔥 App Inventor & Javascript: Helpful things you need to know
Sajal Dutta: App Inventor Blocks
Professor Wolber: App Inventor Tutorials
Metricat AI2: Introduction to App Inventor plus excellent Scraps, Guides and Resources

App Inventor & JSON (JavaScript Object Notation) Data

Official JSON Website: Introducing JSON
Official JSON Website: JSON Example
📽 MIT Video: Evan Patton: 🔥 How to work with Lists, Dictionaries and web services using JSON
FoYo: Decoding JSON with Dictionary Blocks
Abraham Getzler: 🔥 How to decode quiz JSON from opentdb.com (includes Example Project)
Free online source of quiz questions
Mozilla: MDN Web Docs: Working with JSON

App Inventor for Teachers

App Inventor for Educators
App Inventor Forum for Teachers: Educational Issues
App Inventor Forum: App Inventor Instructors
Teaching with App Inventor
Teaching App Creation with MIT App Inventor
MIT App Inventor Teaching Modules
App Inventor Starter Curricula
Metricat AI2: 🔥 Introduction to App Inventor plus excellent Scraps, Guides and Resources

External Storage

An easy way to exchange files between your Smartphone and your PC is via eMail!

MIT: 📽 Using Google Sheets in MIT App Inventor
Metricrat: App Inventor: 🔥 Post Data to Google Sheet
MIT:How to work with Fusion tables
MIT:Cloud DB
MIT: Firebase DB
Derek Banas: 🔥 MySQL DB

App Security

comparitech: Flawed credential storage in top Android apps puts users at risk

Activity Starter

MIT: Using the Activity Starter
Activity Starter Examples
Alex Fuentes: 📽 YouTube: MIT App Inventor 2 Activity Starter
Andy Havranek: 📽 YouTube: App Inventor 2 Activity Starter YouTube Link Tutorial
MIT:App Inventor2 Book: Chapter 6: launching other Android Apps from your App

Arduino, other Microcontrollers and Related Subjects including Bluetooth and other Wireless Technologies  

Arduino    Back up

🔥 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.

🔥 Hot Tip:  Official Arduino Website Forum: Arduino Nano 33 BLE Bootloader corruption fix (may be viable for other boards too)


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.

Uno Dimensions

Arduino Uno R3 Hole Dimensions mm

[01] Official Arduino Website: Home
[02] Official Arduino Website: Programing Language Reference
[03] 🔥 Arduino Basics Tutorial Blog (massive site, tons of info)
[04] Open Source Hardware Group Arduino Tutorials: 📽 YouTube: How to Use and Understand the Arduino Reference
[05] Afrotechmods: 📽 YouTube: You can learn Arduino in 15 minutes
[06] Tinker CAD: Circuits: Simulate your Arduino Circuit and Sketch Code online
[07] Programming Electronics Academy: 📽 YouTube: Tinker CAD: Arduino Simulator demonstration
[08] Arduino Tutorial: Learn Electronics using Arduino (not using App Inventor but a useful Arduino tutorial)
[09] MIT: IoT: Introduction:Ardunio 101 (Note: other Ardunio boards are similar)
[10] 🔥 Random Nerd Tutorials: Arduino Trouble-shooting Guide
[11] Instructables: Arduino Home Automation
[12] CODEDUINO: Arduino Projects, Tutorials and News
[13] Instructables: Controlling a Servo With an Arduino 101
[14] Muhamad Andi Prasetyo: 📽 Video Tutorial: App Inventor 2: Android Receive Data from Arduino via Bluetooth
[15] 🔥 Random Nerd Tutorials: Rui Santos: Android Apps for Arduino with MIT App Inventor 2
[16] Random Nerd Tutorials: Rui Santos: Arduino Step-by-step Projects: Build 25 Projects
[17] 🔥 Arduino-er: How to read service UUID and Characteristic of HM-10 BLE Module, using AT command
[18] 🔥 Design Spark: Arduino Stepper Motor Control
[19] Becky's IoT Class: communicate with the ESP8266 and Arduino. Note: does not include App Inventor but if you want to know all about the ESP8266, very informative
[20] Hackster: MisterBotBreak: How to Debute Arduino with LED (Beginner Introduction without using App Inventor)
[21] Everything ESP: ESP32 Arduino Tutorial: Alarm with PIR motion sensor and buzzer
[22] 🔥 Juan Antonio: BLE ESP32 Bluetooth Send Receive Arduino to-from Inventor App
[23] 🔥 Juan Antonio: Bluetooth HC-06 Send and Receive Arduino to-from App Inventor App. Send Text File. Send Image.
[24] 🔥 Martyn Currey: Arduino, HM-10 BLE Module and App Inventor 2
[25] Arduino: Send SMS
[26] MIT: App Inventor: 📽 Video: Send Arduino sensor data to Website
[27] DFROBOT Bluno: An Arduino Uno specification board with built-in BLE
[28] Zaki Zakaria: Controlling a Servo: MIT App Inventor and Arduino via Classic Bluetooth
[29] 🔥 Simon Monk: Learn Arduino: 18 Arduino Lessons. ** Highly recommended - fun and very informative, as are Simon's books. **
[30] Arduino Project Hub: Pulse Width Modulation Tutorial (brightness of LED example)
[31] Arduino Project Hub: Getting Started with HC05 Bluetooth Module (includes wiring diagram)
[32] Electro Peak: Educational and Fun: Arduino Projects
[33] Cool Components: Fixing Common Arduino Issues
[34] Programming Electronics Academy: 📽 YouTube Channel: Learn Programming and Electronics with Arduino
[35] Maker Pro: How to Control Servo Motors from a Mobile Device with an Arduino UNO and an Android App
[36] 🔥 STEM Education: 📽 YouTube: App Inventor 2 to Control an Arduino Robot
[37] 🔥 Circuit Digest: 📽 Servo Motor Control using Arduino (includes Video)
[38] Instructables: Setting Up Bluetooth HC-05 With Arduino
[39] 🔥 Juan Antonio: Arduino and other microcontrollers, Guides, Resources, Tutorials
[40] 🔥 Arduino Docs: Nano 33 BLE Sense Cheat Sheet
[41] 🔥 Predictable Designs: John Teel: 📽 YouTube: Arduino in a commercial product?
[42] 🔥 cactus.io: Arduino UNO R3

Atmel ATtiny85/ATtiny84 (Atmel is part of Microchip Tech)    Back up

Official ATtiny85 Website
Hackster: Robin Thomas: ATtiny85/84 micro controller with Bluetooth

ESP8266 WiFi Module    Back up

🔥 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 Forum
[02] Instructables: Getting-Started-With-the-ESP8266-ESP-01
[03] Instructables: How to use the ESP8266-01 Pins and LEDs
[04] Techiesms: 📽 Video: How to Program a ESP8266-01 using the Arduino IDE
[05] EEVblog: 📽 Video: How to connect and use the low cost ESP8266 WiFi module with the Arduino environment
[06] Techiesms: World’s Smallest IoT Project using the ESP8266 01 module
[07] Becky's IoT Class: communicate with the ESP8266 and Arduino. Note: does not include App Inventor but if you want to know all about the ESP8266, very informative
[08] Andreas Spiess: 📽 Video: Power Saving with ESP8266 (Sleep Mode) Tutorial with some Tricks
[09] Geekstips: Internet Of Things Project – Communication Between ESP8266 Modules Arduino Tutorial
[10] Electronics Hub: Control a Relay using ESP8266 and Android MIT App Inventor

ESP32 WiFi & Bluetooth Mini Microcontroller    Back up

🔥 Hot Tip: The ESP32 can be used with or without a companion microcontroller.

[01] Predictable Designs: ESP32 as a microcontroller via Arduino IDE
[02] Random Nerd: TTGO T-Journal ESP32 Camera
[03] 🔥 Random Nerd Tutorials: Arduino Trouble-shooting Guide
[04] Everything ESP: ESP32 Arduino Tutorial: Alarm with PIR motion sensor and buzzer
[05] Juan Antonio: BLE ESP32 Bluetooth Send Receive Arduino to from App Inventor App
[06] EverythingESP: Raspberry Pi 3 Flask Tutorial: Receiving HTTP POST Request from ESP32 (App Inventor not included but very handy info)
[07] Random Nerd: Getting Started with ESP32 Bluetooth Low Energy (BLE) on Arduino IDE (App Inventor not included but very handy info)
[08] Random Nerd: ESP32-CAM Troubleshooting Guide: Most Common Problems Fixed (App Inventor not included but very handy info)
[09] Junxiao Shi (Your Sunny): ESP32-CAM OV2640 camera Library for Arduino IDE: Define Sketch to send/stream images to App Inventor App)
[10] 🔥 Random Nerd: ESP32 with Bluetooth and Bluetooth Low Energy: The Ultimate Guide (App Inventor not included but essential info)
[11] YouTube: Davy Wybiral: ESP32-Cam Quickstart with Arduino Code using YourSunny's camera Library

LinkIt    Back up

[01] MIT: IoT: Introduction: LinkIt
[02] MIT: IoT: LinkIt 7697
[03] MIT: IoT: LinkIt Smart 7688/7688 Duo (Compatible with Arduino)
[04] CAVEDU: 📽 Video: LinkIt 7697 component for App Inventor
[05] Hackster.io: CAVEDU: App Inventor + IoT: Wi-Fi RGB LED control with LinkIt 7697
[06] Hackster.io: CAVEDU: App Inventor: Bluetooth Low Energy LED control with LinkIt 7697
[07] App Inventor TW: Project: App Inventor + IoT: LED Blink with LinkIt 7697
[08] App Inventor TW: Project: App Inventor + IoT: LED Blink with LinkIt 7697 📽 Video

BBC micro:bit    Back up

🔥 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:bit
[02] MIT: IoT: Introduction: BBC micro:bit
[03] MIT: IoT Starter Tutorial
[04] MIT: micro:bit LED
[05] MIT: micro:bit Temperature Sensor
[06] MIT: micro:bit Potentiometer
[07] Microsoft: micro:bit script editor (Read/Write/Create micro:bit hex files)
[08] Barry Byford: 📽 YouTube: MIT App Inventor BLE to micro:bit
[09] CAVEDU: 📽 YouTube: micro:bit pin control with App Inventor and Bluetooth (BLE)
[10] Lancaster University: Bluetooth (BLE) profile for micro:bit
[11] micro:bit support: Pairing and Flashing code via Bluetooth (BLE)
[12] micro:bit support: What are the different Bluetooth Pairing Modes?
[13] UK Baz: Creating an Android App for your micro:bit with App Inventor and Bluetooth (BLE)
[14] MIT: micro:bit Educational Foundation (MIT microbit home website)
[15] sparkfun: Derek Runberg: Building a weather station with micro:bit and App Inventor
[16] micro:bit guide: Mobile Apps for micro:bit
[17] micro:bit tech: micro:bit Power Supply
[18] micro:bit Support: Why doesn't my computer detect my micro:bit?
[19] micro:bit Support: Fault finding with a micro:bit
[20] Bluetooth.com: Developing Applications for the BBC Microbit
[21] MakeCode: Martin Woolley: Bluetooth SIG: About Bluetooth

Nordic Thingy 52    Back up

[01] Nordic Semiconductor: Nordic Thingy 52 home page
[02] Nordic Semiconductor: Nordic Thingy 52 Software development kit to create custom firmware for Thingy
[03] Android Authority: Gary Sims: 📽 Video: Nordic Thingy 52 Explained
[04] Symmetry Electronics: Cobus Heukelman: 📽 Video: Nordic Thingy 52 Demonstration
[05] Nordic Semiconductor: Pär Håkansson: 📽 Video: Nordic Thingy 52 Introduction
[06] Nordic Semiconductor: Getting started with Nordic Thingy 52 Iot Sensor Kit
[07] Espruino (Web IDE): Nordic Thingy 52 Projects (Note: none are specific to App Inventor but could form the basis for App Inventor IoT use)
[08] Embedded Artistry: Philip Johnston: Nordic Thingy 52 Kit Specifications
[09] Nordic Semiconductor: Google Play: Nordic Thingy 52 App

STM32 32bit microcontroller (ARM Cortex)    Back up

[01] Solderer TV: Communication Between The STM32 And Android Via Bluetooth (HC-06)
[02] CircuitDigest: Interfacing Bluetooth HC-05 with STM32-F103C8 Blue Pill: Controlling LED
[03] STMicroelectronics: 📽 Video: Getting started with Bluetooth Low Energy expansion board (STM32 ODE)
[04] ST Life: PDF: BLUEMICROSYSTEM3 expansion software package for STM32-Cube

PIC micrcontrollers    Back up

[01] DesignSpark: Basics of PIC16F877A microcontroller
[02] components101: PIC16F877A microcontroller features, pin config, programming
[03] components101: PIC16F877A microcontroller data sheet (PDF)
[04] Bas van der Sluis: 📽 How to program PIC microcontrollers 📽 YouTube
[05] Professor Douglas Soares, Brazilian Aeronautics Institute of Technology: Racing robots with App Inventor and PIC microcontroller 📽 YouTube
[06] Electrotec: App Inventor, PIC16F877A microcontroller and Bluetooth HC05 📽 YouTube
[07] Microchip: PIC microcontrollers Forum
[08] EPE Magazine: Hobby Electronics

Raspberry Pi    Back up

[01] Adel Kassah: Get Data from Raspberry Pi with App Inventor 📽 YouTube
[02] Digital Polymath: App Inventor 2 to Control our RPi Robot ** Digital Polymath website is down **
[03] EverythingESP: Raspberry Pi 3 Flask Tutorial: Receiving HTTP POST Request from ESP32 (App Inventor not specifically included)
[04] DF ROBOT: 30 Awesome Projects for a Raspberry Pi (App Inventor not included but some projects can be adapted to use an App)
[05] 🔥 Juan Antonio: Raspberry Pi. Bluetooth. Send. Receive. App Inventor

8051 8-bit microcontroller (Intel MCS-51) [Embedded Systems]    Back up

[01] NPTEL: PDF: Specifications: Intel 8051 microcontroller
[02] EL-PRO-CUS: Introduction to 8051 Programming in Assembly Language (The polar opposite to App Inventor coding but super-interesting)
[03] introbotics: 8051 Microcontroller Programming Tutorials, Simulators, Compilers and Programmer. Huge links library.
[04] NBCAFE: Ports in 8051 microcontroller. A nicely presented description of the Ports, with diagrams.
[05] Electronics Hub: Bluetooth Controlled Electronic Home Appliances with 8051 Microcontroller, HC-05 Bluetooth Module, Android App (which could be defined in AI)
[06] Electronics & Communication Engineering: Umesh Dutta: Robot controlled with App Inventor, Bluetooth HC05 and 8051 Microcontroller

Blue Fruit LE    Back up

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 Project

Bluetooth    Back up

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: 20230728 Released: 28-07-2023 Package Name: edu.mit.appinventor.ble-20230728.aix

Fixes Critical Permissions issue: 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):


String Byte Size Clear



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 Estimator

Your 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

Make UUIDs Clear Validate UUID (from any source)

Note: If your Browser denies Copy to Clipboard, use Ctrl+A select, Ctrl+C copy, Ctrl+V paste

Note: The Clear buttons also clear the Clipboard (Compatible Browsers: FireFox, Chrome, Brave, Avast Secure, AVG Secure, Edge)


To Clipboard


To Clipboard


To Clipboard


To Clipboard


To Clipboard


To Clipboard


To Clipboard


Validate Clear


Links

[01] Jon Gunnar Sponås: Effective Range of Bluetooth Communications
[02] MIT: BluetoothLE (BLE) App Inventor Blocks
[03] MIT:Bluetooth Client, Bluetooth Server
[04] xkcd: Bluetooth Blues :)
[05] Bluetooth.com: BLE GATT Services
[06] Bluetooth.com: BLE GATT Characteristics
[07] Instructables: Arduino Bluetooth HC06 (any microcontroller)
[08] Instructables: Arduino Bluetooth HC05
[09] Robo India: Sending-Receiving with HC05 and App Inventor (any microcontroller)
[10] Martyn Currey: Arduino, HM-10 BLE Module and App Inventor 2
[11] Martyn Currey: HM-10 Bluetooth 4 BLE Modules
[12] PDF: Basic Two Way Bluetooth Communication via HC-05 Or HC-06 Between Arduino and Android (Not specific to App Inventor. Very informative nonetheless)
[13] Juan Antonio: BLE ESP32 Bluetooth Send Receive Arduino App Inventor App
[14] Mohammad Afaneh: NovelBits: How to achieve maximum throughput for your BLE application
[15] Mohammad Afaneh: NovelBits: eBook: Intro to Bluetooth Low Energy
[16] Juan Antonio: Bluetooth HC-06 Send and Receive Arduino to-from App Inventor App. Send Text File. Send Image.
[17] Random Nerd: Getting Started with ESP32 Bluetooth Low Energy (BLE) on Arduino IDE (App Inventor not included but very handy info)
[18] Random Nerd: Rui Santos: 📽 Getting Started with ESP32 Bluetooth Low Energy (BLE) on Arduino IDE (Video)

Text 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
VersionObsoleteBREDRHSSAMClassicBLERelease DateMS Windows BT ID
1.x1999LMP 0.x to LMP 2.x
2.x2004LMP 3.x to LMP 4.x
3.x✔*2009LMP 5.x
4.x2010LMP 6.x to LMP 8.x
5  2016LMP 9.x
5.1  2019LMP 10
5.2  2010LMP 11
5.3  2021LMP 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 LMPBluetooth Version
LMP 0.x1.0b
LMP 1.x1.01
LMP 2.x1.2
LMP 3.x2.0 EDR
LMP 4.x2.1 EDR
LMP 5.x3.0 HS
LMP 6.x4.0 BLE
LMP 7.x4.1 BLE
LMP 8.x4.2 BLE
LMP 9.x5.0 BLE
LMP 105.1 BLE
LMP 115.2 BLE
Bluetooth Modules for Microcontrollers (e.g. Arduino)
ModuleBluetooth VersionManufacturerReference
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 CompanyJNHuaMao Technology: Bluetooth v2.1 module Data Sheet PDF
HM-02 v2.1+EDR JNHuaMao Technology CompanyMay be supplied with or without EDR
HM-03 v2.1+EDR JNHuaMao Technology CompanyMay be supplied with or without EDR
HM-05 v2.1+EDR JNHuaMao Technology CompanyMay be supplied with or without EDR
HM-06 v2.1+EDR JNHuaMao Technology CompanyMay 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 CompanyJNHuaMao Technology: Bluetooth HM10 and HM11 module Data Sheet PDF
HM-11 v4.0 BLE JNHuaMao Technology Company
HM-12 v4.0 BLE JNHuaMao Technology CompanyJNHuaMao Technology: Bluetooth Dual Data Sheet PDF
HM-13 v4.0 BLE JNHuaMao Technology Company
HM-16 v4.1-5.0 BLEJNHuaMao Technology CompanyJNHuaMao Technology: Bluetooth HM16 and HM17 module Data Sheet PDF
HM-17 v4.1-5.0 BLEJNHuaMao Technology Company
HM-18 v4.2-5.0 BLEJNHuaMao Technology CompanyJNHuaMao Technology: Bluetooth HM18 and HM19 module Data Sheet PDF
HM-19 v4.2-5.0 BLEJNHuaMao Technology Company
GWBMD0X v4.0 BLE Gigawit Gigawit: GWBMD0X BLE Data Sheet PDF
RN4870-V/RM140v5.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 up

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-M

Robots

LEGO MINDSTORMS    Back up

MIT: IoT: Introduction: LEGO® MINDSTORMS® EV3 robot platform
MIT: LEGO® MINDSTORMS® NXT robots using Bluetooth

MIT App Inventor Codi Bot    Back up

MIT: IoT: Introduction: Codi Bot
Maker Fair Hong Kong: 📽 Video: App Inventor Bee Bot

Video Formats

MIT: App Inventor: Android Video Player Formats Supported

App Inventor Extensions

Extensions Library maintained by App Inventor Expert Taifun Baer, including his own excellent Products:

Pura Vida: App Extensions

Extensions Library maintained by App Inventor Power Users (including Taifun) and MIT:

MIT App Inventor Forum: App Extensions