Release Notes for MIT App Inventor 2
Changes in MIT App Inventor 2 are documented on this page. Note:
Versions that end with a letter (for example: nb117c) are bugfix
releases.
Changes between nb198 and nb199 (November 17, 2024)
This is a Component Release.
This release focuses on updating the Android Companion app and its
underlying framework. A new version, 2.73, is now available for
download from both the Google Play Store and directly from
ai2.appinventor.mit.edu (version 2.73u).
Changes:
- Implement “hint” property for the ListView component and generally
improve its performance.
- Add Dropdowns in the ChatBot Component for choosing different
supported providers and models.
- ChatBot System property modified to use larger text area.
- Updated Catalan translation.
- Implement draggable property and component help popups (the
messages you see when you type a “?”).
- Bugfixes.
Changes between nb197d and nb198 (August 18, 2024)
This is a Component Release.
This release focuses on updating the Android Companion app and its
underlying framework. A new version, 2.72, is now available for
download from both the Google Play Store and directly from
ai2.appinventor.mit.edu (version 2.72u).
The key change in this release is upgrading the Android SDK target to
34, which aligns with Android version 14. This update is essential as
it will be mandatory for adding or updating apps on the Google Play
Store after August 31, 2024.
Changes between nb197 and nb197d (August 6, 2024)
Releases nb197a - nb197d are a series of bugfix releases.
Changes between nb196 and nb197 (July 7, 2024)
This is a component release which includes bugfixes and
improvements. It includes a new Android MIT AI2 Companion versions
2.71 (from Google Play) and 2.71u (directly downloaded from MIT App
Inventor).
Features:
- New user interface. Go to Settings > User Interface Settings > Neo to try it out
- ChatBot component adds a new block, ConverseWithImage to ask questions about images (API key needs payment for gpt-4)
- Palette categories can be independently expanded/collapsed
- The main body of MIT App Inventor now loads via the CloudFlare
content delivery network. This should result in faster startup of
MIT App Inventor.
- Note: Sites with restrictive firewalls will need to unblock
access to https://.appinv.net (where the “” means any site
name). This domain (appinv.net) is used exclusively to distribute
the code of MIT App Inventor. Different host names are used for
different versions.
- You can now set the “Origin” of Image Sprites. The origin is used
to calculate when a Sprite is involved in a collision as well as
the point it rotates around.
Bug Fixes:
- Fix a 404 error in the Navigation component Internals
Internal Changes:
- Fix an issue with running d8 on Windows machines
Changes between nb195e and nb196 (February 19, 2024)
This is a component release which includes bugfixes and
improvements. It includes a new Android MIT AI2 Companion, versions
2.70 (From Google Play) or 2.70u (directly downloaded from MIT App
Inventor).
Features:
- Add a Japanese translation
- Update the Spanish translation
- Make the Sharing component respect DefaultFileScope when sharing relative path files (@arjuninv)
- Add TextChange event, MoveCursor methods, and HintColor property to TextBox and related components (@gordonlu310)
- Show translated help in property help widgets
- Add CircularProgress and LinearProgress components from Kodular (@barreeeiroo)
- Add Theme and Toolkit properties to the new project dialog (@jennet-zamanova)
- Add a Trendline component to visualize linear, quadratic, exponential, and logarithmic trends in ChartData2D components
Bug Fixes:
- Fix a bug in removing an item from a listview resulting in bad indices (@timfoden)
- Fix a bug that could result in an infinite loop for certain TTS engines (@XomaDev)
- Improve documentation about special regex characters in replace block (@JustinFrost47)
- Improve description of the DataFile component (@gordonlu310)
- Fix a font size issue for checkbox and switch in the designer (@gordonlu310)
- Fix a CSS issue that made the PasswordTextBox look larger in the Designer than it should be
- Fix an issue where the project properties dialog would not open when using a non-English locale
Internal Changes:
- Deprecate the Twitter component (@gordonlu310)
- Fix a duplicated translation file causing issues on macOS
Changes between nb195c and nb195e (January 27, 2024)
This is another bugfix release.
Changes between nb195a and nb195c (January 19, 2024)
This release is mostly a bugfix release. We also updated our server
side run-time to use Java 11 instead of Java 8, as required by Google
for the App Engine environment that we use.
This change should not have any impact on MIT App Inventor programmers.
Changes between nb195 and nb195a (November 27, 2023)
This is a minor bugfix release.
Changes between nb194c and nb195 (November 26, 2023)
This is a component release which includes bugfixes and
improvements. It includes a new Android MIT AI2 Companion, versions
2.69 (From Google Play) or 2.69u (directly downloaded from MIT App
Inventor).
Bugfixes:
- Fix Error Handling in ChatBot and ImageBot
Properly pass through the HTTP Status code from the Chat/Image Bot proxy
- Fix alist to dict bug with FString keys
- Fix USB connections not loading extensions
- Restore substitution for spaces in project name (#2991)
- Filter out deprecated methods, events and properties when using the
keyboard to enter block names
- Stop the Player from playing in the Companion when you switch screens
- Ensure Player state resets upon completion
- Only respond to messages if intended for the WebViewer
- Fix buttons not taking a translucent background color
- Fix Companion crashes reported by Google
Improvements:
- Allow loading media from private directory by referencing /data/
- Logo is now an SVG file, which scales better
- Provide error message regarding extensions for the Gallery
Extensions are not permitted in the Gallery, this change provides
a better error message.
- Implement ResponseTextEncoding property for Web component
- Add “RemoveItemAtIndex” block to ListView
- Implement a Project Properties Dialog
- Allow filtering components in source structure
Introducing a dropdown which allows to select if should see all
components or only the visible ones or the non visible ones.
- Add Send To Gallery button to designer toolbar template
For Developers:
- Keep extension classes in extension package when proguarding
- Download phantomJS during build on github action
- Make java_dev_appserver.sh command single-line in README.md
Other internal changes:
- Switch to gviz export API for Spreadsheet
- Fix misaligned buildserver stat reports
- Load and compare project properties in tests
- Only send Strict Transport Security Header using https
- Remove obsolete code in Bluetooth handling for ancient versions of Android
- Remove unused logic and feature flag check
Changes between nb194b and nb194c (September 14, 2023)
This is a bugfix release.
Changes:
- Restore Scrolling on project explorer view.
- Correct text on move projects wizard.
- Restore ability to export multiple projects.
- Fix order of created/modified date labels.
- Fix file leak in buildserver when aab files are created.
- Internal refactoring of buildserver in anticipation of supporting
iOS as well as Android.
Changes between nb194 and nb194b (September 4, 2023)
This is a bugfix release.
Changes:
- Fix a bug in the buildservers that caused them to fill up their
disks and then fail (this was in nb194a which was only deployed to
the buildservers).
- Fix a bug that sometimes caused the Media panel to not be displayed.
- Fix a bug that could cause a second build triggered too quickly
from working.
- (internal) Fix a bug that prevented building the App Inventor
sources on Windows.
Changes between nb193 and nb194 (August 29, 2023)
This is a Component Release with a new Companion, version 2.68
(Android). If you side-load the Android version of the MIT website,
the version will be 2.68u.
Here are the changes for this release:
- Android SDK 33 support
- Fixed an issue listing shared directories with the File component
- Added support to components to make use of content: URIs
- New FilePicker component (Android only at the moment)
- ChatBot and ImageBot have ApiKey settable in the designer. Any
component with an ApiKey property will have its property obfuscated
even when set in the designer.
- New buildserver infrastructure refactored to support new build
targets (new targets, e.g., iOS, will come in a separate release)
(@Diego)
- User interface internals have been refactored to support making new
editor layouts (new layouts will come in a separate release)
- Add folders to project list to help organize projects (@austenjoa,
@Vishwas)
- New data science component category with anomaly detection and
regression calculators (@HanyaElhashemy)
- Fixed an issue where screens would change orientation back and
forth when opened
- Fixed a bug where loading extensions would throw an internal error
- Fixed a bug where ImageBot would not make connections on Android 13
- Implement grouping of properties in the properties panel
- Add a help widget to property names for fast access to reference
info
- Fix a bug where an internal error would occur when procedures were
stored in the backpack
- Add a GetEntries method to TinyDB (@Hossein)
- Fix a bug where helper blocks would cause an internal error on
undefined keys
- Add AddSheet, DeleteSheet methods to Spreadsheet (@lexue28)
- Fix custom fonts not loading in Android < 10 (@Patryk_F)
- Fix a type coercion bug in Spreadsheet write operations
- Remove deprecated Canvas caching code no longer needed due to
hardware acceleration (@adirn26)
- Fix BluetoothClient and BluetoothServer documentation (@Gordon_Lu)
- All servers will serve from HTTPS by default
- Fix bug applying BlocksToolkit to multiple screens (@Arin-Modi)
- Add ChatBot model support (@lexue28)
- Fix some component documentation errors (@SudarshanSirsi)
- Add a Stop block for TextToSpeech
- Fixed an issue that prevented some components from writing to
shared storage directories
- Permissions are now sorted alphabetically in the permission block
- Permissions are included in the manifest if the permission block is
used in the block area and is not disabled
- Fixed an issue that prevented the File component from listing some
shared directories
- Fixed help widget issues related to the FilePicker and Screen1’s
Default File Scope.
- Fixed an issue where the ImageBot would return a 404 due to SSL
certificate problems
- Added an AllValues option to the LOBFValues enumeration
- Fix an issue where the Chart component would not redraw after
changing the GridEnabled or LegendEnabled properties via the blocks
Internal fixes:
- Remove erroneous .gitignore (@Diego)
Changes between nb192 and nb193 (June 18, 2023)
This is a Component Release with a new Companion, version 2.67
(Android) or version 2.64.2 (iOS). If you side-load the Android
version from the MIT website, the version will be
2.67u. Platform-specific changes are indicated using square brackets.
Features:
- Add a ChatBot component (generative AI for chat)
- Add an ImageBot component (generative AI for images)
- Add a warning when loading a project with extensions on iOS (@PThorpe92)
- [iOS] Implement large font, alt text, and high contrast modes
- [iOS] Enable camera use in split screen mode on iPadOS 16
- [iOS] Implement list and math blocks introduced in nb191
Bug fixes:
- Handle unknown component_method shape via mutation
- Update documentation for Flung event (@dhruvpatidar359)
- [Android] Use file system for Map tile cache to prevent infinite reloading of some tiles
- [Android] Bubble up errors from Spreadsheet to Screen if error handler not implemented
- [Android] Add support in MediaUtil for android_asset URLs
- [Android] Fix screen orientation artifacts in compiled apps
- [iOS] Improve multiple screen handling
- [iOS] Prevent some crashes by avoiding use of fatalError (@dhruvshrivastava18)
- [iOS] Fix collision detection in ImageSprite
- [iOS] Fix crash due to potential nil keyWindow
- [iOS] Fix a logical bug in onboarding screen
- [iOS] Fix a logical bug in IP address detection
Internal changes:
- Report hostname in buildserver vars
- Add a FUTURE category for components (@barreeeiroo)
- Use platform-specific file separator in buildserver
- Add the ability to store packaged apps in a different GCS bucket
Changes between nb191 and nb192 (March 21, 2023)
This is a bugfix release. The Companion in the Play Store remains
version 2.66. However, if you download the companion from the server
itself (aka side load), it is version 2.66au, which contains the
Bluetooth permission change.
Changes:
- Relax maxSdk constraint for Android 12. This fixes issues with
Bluetooth on some Android 12 devices
- Make the six character code in the connect dialog box copyable
- Translation fixes
- Fix conversion of some older projects
- Other minor fixes
Changes between nb191 and nb190a (February 17, 2023)
This is a Component Release with a new Companion, version
2.66. Companion version 2.64+ should continue to work, but will not
work with projects that use new features.
Features:
- Add functional list operators like map, filter, reduce, and sort (@siyaoL1)
- Add new math stats blocks like average, standard deviation, min/max over lists
- Add custom font typeface support (@preetvadaliya)
- Add new Bluetooth permissions to permission helper block
- Add WebRTC support for iOS companion (needs iOS companion 2.64.1 or later)
- Add “every component” block (@Vishwas-Adiga)
- Add functions to Chart to set domain and range of charts and to fix the origin at 0, 0
Bug fixes:
- Assert immutability of pending intents for compatibility with Android 12 (affects Texting)
- Update Physicaloid library for immutable pending intent on Android 12 (affects Serial)
- Fix Web component permission checks for reading/writing files
- Fix File.Exists logic when testing for assets
- Ask for dangerous Bluetooth permissions in Android 12 (affects BluetoothClient and BluetoothServer)
- Make FinishedClearRange event run after clearing range (affects Spreadsheet)
- Fix some naming of spreadsheet blocks to follow App Inventor conventions
- Update spreadsheet internal data structures before calling GotSheet event
- Fix a crash when using scatter charts with unsorted X values
- Fix use of deprecated drag and drop APIs in Chrome
- Refresh ChartData2D properties when Source component is changed
- Do not show the DataSourceKey property when a Spreadsheet is a data source
- Add missing helper block for Player’s Source property (@conorshipp)
- Handle control characters in block XML breaking projects
- Add a missing documentation page on list concepts
- Update some Chinese translations
- Fix issues with null geometries in FeatureCollections
- Fix ImageSprite image size in designer (@Himanshu2107)
- Make split string consistent across Android versions using Java 8 semantics, i.e., no empty space when splitting by the empty string (@jingmiao-z)
- Fix replace-all so replacement string can contain the dollar sign (@XomaDev)
- Fix Spreadsheet.GotRows returning 0-indexed values instead of 1-indexed values (@dhruvpatidar359)
- Fix a typeblocking issue introduced by functional blocks
Internal changes:
- Reimplement component descriptor generator using JSONObject
- Use glob matching to handle proguarding of extensions
- Implement a PermissionConstraint annotation for components and extensions
- Prevent unintended command execution in buildtools
- Update documentation copyright year to 2023
- Refactor YaClientApp and devmode to use a shared classpath
- Update to using Google Analytics 4
- ai2-test now served exclusively with HTTPS
Changes between nb190 and nb190a (September 29, 2022)
This is a simple bugfix release. No new Companion is needed
Changes between nb189b and nb190 (September 22, 2022)
This is a Component Release with a new Companion, version
2.65. Companion version 2.64 should continue to work, but will not
work with projects that use new features.
Features:
- New Component: Spreadsheets: Spreadsheet is a non-visible
component for storing and receiving data from a Google Sheets
document using the Google Sheets API.
- New Component: Chart: The Chart component plots data
originating from its attached Data components. Five different
Chart types are available, including Line, Area, Scatter, Bar and
Pie.The Chart component itself has various properties that change
the appearance of the Chart.
- App packaged with this release target Android Sdk 31 (Android 12.0)
which is required for placing apps in Google’s Play Store.
Changes between nb189a and nb189b (September 1, 2022)
This is a non-component release.
- Make Companion version 2.64 the default Companion
- Warn people with old Companions (prior to 2.63) to upgrade
providing a QR-Code to scan to upgrade. Note: This is for people
who “side-load” the Companion. Those who obtained the Companion
from the Google Play Store should have already been updated to
version 2.64.
Changes between nb189 and nb189a (June 19, 2022)
This is a minor bugfix release. No new Companion is provided nor
required.
Bug Fixes:
- Fix a problem with the “Do It” menu option on blocks when used in
Legacy Mode (introduced in nb189)
- Fix a problem triggered when some procedure blocks are removed.
Changes between nb188a and nb189 (June 8, 2022)
This is a component release with a new Companion, Version 2.63. Like
most component releases, older Companions should continue to work, but
new features will not work with older Companions.
Features:
- Added two new language translations, Catalan and Turkish
- Add support for an external server to handle logins
-
The Companion now fetches assets (images, sounds, etc.) directly
from the App Inventor Server instead of first loading them into the
browser and then sending them to the Companion. This speeds
Companion startup. The Companion also caches assets so it only
downloads them if it needs new versions. This too improves
Companion startup time and reduces bandwidth utilization.
- NOTE: This requires that the network that the Companion is
connected to permit connections to the App Inventor Servers (aka
ai2.appinventor.mit.edu and/or code.appinventor.mit.edu)
- Added the Delete Account Menu option (under the right hand side
where your user name is displayed). As its name implies, it will
delete your account. However to avoid mistakes it first requires
you to delete all of your projects first. Placing them in the
“Trash” is sufficient.
- The YandexTranslate Component was replaced with the
Translator component. Translator works the same as YandexTranslate and
projects that use YandexTranslate will automatically be upgraded to
use Translator. Translator uses a server at MIT which in turn
uses a commercial translation service, currently Amazon Translate.
Coming Soon:
- This release adds the infrastructure for a new legacy connect
mode. This connection mode uses a pop-window to manage the
connection to the Companion. This mode will permit us to serve MIT
App Inventor over https (aka securely). It will also be required by
the fall when Google will change Chrome in such a way as to
permanently break our current legacy connection mode.
- This functionality will be available in the 2.64 Companion which we
will make available soon in the Google Play Store as a Beta
Test. To install it you will need to sign up for the Beta
Test. Instructions on how to do so will be posted on our website
when the Beta Test goes live.
Bug Fixes:
- Fix reading images out of CloudDB
- Other minor Bug Fixes
Changes between nb187d and nb188 (November 11, 2021)
This is a Component release with a new Companion, version 2.62. Like
most component releases, older Companions should continue to work, but
new features will not work with older Companions.
Features:
- Add method for extensions to retrieve Canvas bitmap (@XomaDev)
- Implement element for Android 11 to support BarcodeScanner and SpeechRecognizer components
- Update all components that write files to follow new DefaultFileScope property in Screen1
- Add Language property to SpeechRecognizer component
- Add Armenian translation (@ArmeniaTeam)
Bug fixes:
- Fix ListView filter functionality to handle backspacing/clearing
- Reposition block flydowns so that they always appear within the blocks workspace
- Fix z-index issue causing some elements to appear above error messages (@nirvasangani)
- Fix some traditional Chinese translations (@toto6038)
- Move network state permissions specific to the companion app to an internal component
- No longer trigger AfterTextInput if a Notifier’s TextInputCancelled property is implemented
- Fix an issue where initial Canvas LineWidth was not in device pixels (@preetvadaliya)
- Fix a null pointer exception in ElementsUtil (@wxbit)
- Fix typeblocking for “any component” and some built-in blocks (@preetvadaliya)
- Fix a broken link in the Firebase documentation (@preetvadaliya)
- Fix contains/contains any/contains all block in traditional Chinese
- Fix translation of some built-in blocks in traditional Chinese
- Clean up code issues in ListView and implement some unit tests
- Fix a null pointer exception when filtering a ListView
- Fix issue where the last ListView in a screen would receive the events from every ListView
- Fix issue where map feature infoboxes would not appear
Internal:
- Clean up a bad import that would prevent building on some versions of Java
- Clean up a bad string in generateActivityMetadata (@pavi0240)
- Move build tools to their own /tools/ directory (@pavi0240)
- Handle default values cleanly in Compiler (@pavi0240)
- Fix compiling on Windows when paths include space characters (@MohamedTamer94)
Changes between nb187c and nb187d (September 28, 2021)
Chrome 94 breaks our “Legacy Mode” Companion connection. This change
includes a special header, specific to MIT App Inventor, that permits
Chrome 94 to permit Legacy Mode connections. This is a temporary fix,
as Google will break this change around May. Hopefully we will have a
more permanent fix before then.
Changes between nb187b and nb187c (September 3, 2021)
This is a bugfix release
- Put back some missing messages (they would show up as “undefined”)
Changes between nb187a and nb187b (August 25, 2021)
This is a bugfix release.
- Fix issue with release upgrader which caused some projects with
empty sockets to fail to upgrade
- Fix for projects with non-ASCII names
- Fix text compare operator in English
Changes between nb187 and nb187a (August 23, 2021)
This is a bugfix release.
- Fix an issue with the PasswordTextBox which caused projects
that used it to fail to load
- Fix a bug in WebView using Data URIs on with Android versions
greater then 5.0. Note: This bug is fixed for packaged apps,
but is still present in the current Companion
Changes between nb186a and nb187 (August 22, 2021)
This is a Component Release. As such, there is a new Companion
(version 2.61 and 2.61u). As is always the case with a Component
Release, the previous Companion (2.60) should work fine with this
release, however new features will not work and require the updated
Companion.
If you downloaded your Companion from the Google Play Store and have
automatic update enabled (the default) you should receive the new
Companion automatically. If you side-loaded the Companion, you can
obtain the new version from the Help->Companion Information
menu. It
will give you a barcode which you can scan to download the new
Companion with either a Barcode Scanning application, or just using
the existing Companion.
You can watch a video that describes some of the new features!
Features:
- Load tutorials over HTTPS when available (@pavi2410)
- Implement a select all projects checkbox (@AnujSinghal12)
- Add MoveToPoint method to ImageSprite (@joysyu)
- Add UpdateDone event to CloudDB
- Add TapThreshold property to Canvas to fine-tune touches vs
drags (@Himanshu2107)
- Load built-in templates via the repo URL parameter
- Implement visual accessibility features for apps (@dunandmuri)
- Add NumbersOnly property to the PasswordTextBox
component (@preetvadaliya)
- Add project name suggestion when collisions occur (@AKandAK)
- Add new layouts for ListView items (@ankritisachan)
-
Improve the performance of ListView using the RecyclerView
library (@27vinayvyas)
Note: This version of ListView adds significant new functionality,
you can Read our updated documentation for the details.
-
Implement scoped file storage needed for Android SDK 30
compatibility.
Note: This change was complicated and there are likely more bugs
to be discovered in the implementation of the new features.
- Reset Ev3Gyro previousValue to -1 on mode switch (@BeksOmega)
- Open external links in Help menu in separate tabs (@pavi2410)
- Add different preview options to the designer (@HimaniKaul)
- Add dropdown blocks to the blocks editor (@BeksOmega)
- Add a copyright overlay to the Map component
- Add a read-only flag for the gallery
Some distributions of App Inventor may download projects from the
Gallery, but may not upload projects because they may contain
features not compatible with the current version of MIT App
Inventor. For example this is used by ai2-test, our test server
which often has newer code deployed on it then our production
server.
- Load block translations in parallel to improve load time
performance
- Make the designer reflect the status of ShowStatusBar
(thanks @HimaniKaul)
- Add HTTP PATCH support to the Web component
(thanks @Blueknight10001)
- Add dropdown blocks to the blocks editor (thanks @BeksOmega)
-
Add ability to build App Bundles (alternative way to create apps
for sending to the Google Play Store) (thanks @barreeeiro)
Note: App Bundles (AAB files) can only be used to upload
a packaged app to the Google Play Store and cannot be loaded
directly into a device or emulator. This is now the required
way to upload a new App to Google Play.
-
The APK build option will now give both a QR code and
download option:
- “Move to Trash” becomes “Delete from Trash” when in the trash
view (thanks @beinganonymous)
Bugfixes:
Internal changes (of interest to developers of MIT App Inventor and
extension authors):
- Fix a bug that prevented the companion app from building on Windows
- Clean up some unused imports (@rupesh-kumar-lpu)
- Add build tools helper (@pavi2410)
- Add GitHub actions as an option for continuous
integration (@Sander0542)
- Add some additional metadata to CloudDB tokens
- Implement a flag to control the use of whitespace in blocks XML
- Fix a locale bug in the development server login page (@HollowMan6)
- Add stats collection for build pipeline
- Add gitattributes to control line endings for unit tests
- Made the allowed tutorial URLs list a server configuration
- Add a service expiry notice for test servers
- Add more unit tests for components (@preetvadaliya)
- Address out of memory issues in unit tests
- Change how project settings are managed on the server
- Implement limited continuations in the component processor and code
generator
- Update the library list for proguarding extensions
(thanks @mishra-kunal)
- Add the ability to include license files in extensions
(thanks @Vishwas-Adiga)
Changes between nb186 and nb186a (November 17, 2020)
This is a bugfix release that resolved an issue that would arise if
people double-clicked the “Publish to Gallery” button instead of
single-clicking it.
Changes between nb185a and nb186 (November 14, 2020)
nb186 is a non-component release. There is no new Companion app. The
most noticeable change is the introduction of the new MIT App Inventor
Gallery. You can read more about the new gallery at Gallery
Introduction.
Changes
- Introduction of the New Gallery
- Add Chinese translation for Contains any and all blocks
- Addition of Lithuanian translation
- Rename “My Projects” to just “Projects” in the toolbar
- Various internal bugfixes and changes to aid in development
Changes between nb185 and nb185a (September 2, 2020)
nb185a is a non-component bugfix release.
Bugfixes:
- Fix an issue that caused the “text contains” block to not work
correctly when a language other then English is selected.
Changes between nb184a and nb185 (September 1, 2020)
nb185 is a Component Release. There is a new Companion, version 2.60
available both from the site and from the Google Play Store. Most
people who downloaded from the Play Store should receive an update
automatically.
Features:
-
Implement LegacyMode for File component (#2269)
Android 10 uses a new file model that prevents writing to arbitrary
locations on external storage (colloquially, /sdcard/). People
should migrate their files to app-specific storage, which is what
the File component uses by default on Android 10. Checking the
LegacyMode option will let you read files in the old locations, but
will fail once App Inventor targets Android 11 (summer 2021). This
has no effect on Android versions prior to Android 10.
-
Implement a universal URL format for assets in WebViewer (#2272)
Use file:///appinventor_asset/ or http://localhost/ to access your
assets in a companion/build agnostic way. Using the HTTP version
also allows for assets to be loaded using a XMLHttpRequest object
in JavaScript.
-
Update the “text contains” block to accept a string and a list of
pieces. There is a “contains any” which is true if any of the
pieces are present in the original string. “contains all” is true
only if all of the pieces are present.
Bugfixes:
- Fix a crash in Web Put/Post methods when an error occurs.
- Fix an issue with copy and paste that prevented copying the QR
code (for Companion connection) on some tablets.
Changes between nb184 and nb184a (August 23, 2020)
nb184a is a non-component release. There is no new Companion for this
release.
Bugfixes:
-
Make specific drop areas for projects, extensions, and assets (#2276)
nb184 added the ability to drag and drop files into the App Inventor
workspace (project files, extensions, assets). It treated the entire
window as a drop target, which had unintended consequences. Now, you
must drag and drop items to specific locations (project list,
component palette, media list) to trigger an upload.
-
Fix empty property descriptions causing bad documentation (thanks @sarthakhanda)
-
Do not allow projects in Trash to be opened
-
Ask to overwrite asset if it is added via drag and drop
Internal Fixes:
- Exclude documentation files from Android Runtime (thanks @pavi2410)
Changes between nb183c and nb184 (July 30, 2020)
Nb184 is a component release, which means it includes a new
companion, version 2.59. This release provides support for Apps to run
on Android Q (SDK 29), which is required by all new Apps submitted to
the Play Store as of August 1st, 2020 and all updated Apps submitted
to the Play Store by November 1st, 2020 per Google policy. This update
also includes the following changes:
Features:
- Add support for Chromebooks
- Add support for Android Q
- Made and/or blocks mutatable
- Implement metadata annotations for extensions (thanks @bartmathijssen)
- Implement copy and paste for the designer
- Implement multidex in app builds to support larger apps
- Increase build limit for apps to 30 MB
- Add drag and drop to web editor to upload projects, extensions, and assets
- Implement high-res PNG downloads (thanks @Ramanathi)
- Suggest alternative project name when name contains invalid characters (thanks @Ramanathi)
- Component names ending in numbers sort sanely in block dropdowns, e.g., Button1 … Button2 … Button10 … Button20
- Add support for services and content providers in extensions (thanks @ShreyashSaitwal)
- Update the and and or blocks to accept 0 or 1 inputs
- This is the same release as 2020-07-27 with the Companion version updated to the release version.
Bug Fixes:
- Fix components not being accepted as keys in dictionaries
- Fix an issue where the BlocksToolkit property prevented apps from compiling
- Fix disabled blocks not working in Backpack (thanks @BeksOmega)
- Fix Blockly context menu not hiding itself (thanks @BeksOmega)
- Fix focusing on collapsed warning/error blocks (thanks @BeksOmega)
- Make Camera component create Pictures directory if not exists (thanks @singhalsara8)
- Fix errors in LineString.PointsFromString documentation (thanks @BeksOmega)
- Fix contrast issues in comment text color (thanks @BeksOmega)
- Fix help URL entry for new radix number block (thanks @Conorshipp)
- Implement improvements to “Do It” comments (thanks @BeksOmega)
- Fix bug handling autoload parameter that prevented galleryId from working
- Fix documentation of compare text block (thanks @BeksOmega)
- Fix null pointer exception in text connection check (thanks @BeksOmega)
- Prevent deactivate gallery URLs from opening
- Fix an issue where blocks editor stops page from responding to touch on mobile
- Prevent scroll jumping when selecting components/media
- Fix an issue that crashed the companion on Android 4.x
- Fix an issue that prevented apps from being deleted from trash if they had been previously published to the gallery
- Fix an issue where Navigation component was used without the Map component resulted in apps that would not build
- Minor fixes (orphan </center> tag on login page, typo in Picture-In-Picture element
- FIx a permission problem effecting some packaged apps that use CloudDB, the Web component and the Canvas component to save files
Internal Fixes:
- Implement checkstyle rules for App Inventor
- Include user locale in TutorialURL requests
- Fixed XSS vulnerability in login page
- Implement onOrientationChange interface (for extension writers)
- Update logging so most debugging also goes to the browser console
Changes between nb183b and nb183c (April 14, 2020)
This is a non-component bugfix release. There is no new Companion.
- A bug that was fixed in nb183a had corrupted some projects by
adding Column and Row properties to the Screen. This version will
repair the corrupted projects when they are loaded.
Changes between nb183a and nb183b (April 13, 2020)
This is a non-component[*] bugfix release. There is no new Companion.
- Fixed a bug that resulted in an error if an MIT App Inventor
programmer attempted to remove a media/asset from a project.
- Fixed a bug where “storage” permission was needed to play audio and
or video from external (aka sdcard) storage, but wasn’t asked for
in compiled apps. Technically this is a component change, but it
doesn’t require a new Companion. The buildservers were updated so
that apps packaged with nb183b will have this problem fixed.
Changes between nb183 and nb183a (April 10, 2020)
This is a Component bugfix Release. There is a new Companion, version
2.58a. It is only required if you wish to use the ApiKey
property of
the YandexTranslate Component (first item on the list below).
Update 04/11/2020: The 2.58a Companion is now available via Google Play
As of today (April 10, 2020) Companion 2.58a is still being reviewed
by Google and is not yet available from the Google Play Store. However
it is only needed for the `ApiKey` property of the YandexTranslate
Component. Very few people need to modify this property because MIT
App Inventor has a builtin key.
Like the last release many of the changes are from open source
contributors. They are recognized by the GitHub usernames. The MIT App
Inventor team is extremely grateful for their efforts and
contributions.
-
Add an “ApiKey” property to the YandexTranslate component. This
permits the App Inventor programmer to obtain their own Yandex API
key and use it instead of the platform default. If left at the
“DEFAULT” value, the platform’s API key is used.
-
Fix bug where clicking on a block while the backpack was opened
added the block to the backpack. (thanks @BeksOmega)
-
Add a prompt to enter the name of a screen when deleting it to
prevent accidental deletions. A checkpoint of the project will also
be made by default before the screen is deleted. (thanks
@beinganonymous)
-
Fix an issue where changing the preview size in the designer would
also change the size of the selected component
-
Fix an issue where property validators would report errors when
working with multiple component selection. Property editors were
made to be more robust to address when conflicting property values
were present when selecting multiple components.
-
Fix an issue where the BackPress event would still allow going back
(thanks @conorshipp)
-
Fix an issue where polygon title/description were not being set
from the designer
-
Fix an issue where block expand/collapse actions were not being
recorded for undo/redo
-
Improve reliability of non-legacy Companion connections on Firefox
Changes between nb182b and nb183 (March 28, 2020)
This is a Component Release. There is a new Companion, version 2.58
which is required if you wish to use the new features introduced in
this release. Older Companions will continue to work for features from
prior releases.
Many of the changes are from open source contributors. They are
recognized by the GitHub usernames. The MIT App Inventor team is
extremely grateful for their efforts and contributions.
New Features
- Add C-like prefixes for numbers (0b for binary, 0o for octal, 0x
for hexadecimal) (thanks @BeksOmega)
- Example: 0b10000 == 16 == 0o20 == 0x10
-
Add support for App Inventor over HTTPS
Note: The support has been added to the system, but as of this
release we are not yet serving ai2.appinventor.mit.edu over https.
Once we do it will require that Companion connections do not use
Legacy mode. Legacy mode does not work when App Inventor is served
over https. If you must use legacy mode, for how you can go to your
browser’s location bar and remove the “s” from https and press
enter to reload MIT App Inventor insecurely. Information on why
this is so is at https://appinventor.mit.edu/ai2/aboutsecurity.
-
Add scoped variable blocks to typeblock (thanks @BeksOmega)
When using typeblock, the variable setters/getters shown will reflect
what is available for the currently selected block. If no block is
selected, only global setters/getters will be shown.
- Add Serial component (thanks @barreeeiroo)
-
Add Navigation component (thanks @rgangela99)
Navigation uses the OpenRouteService (OSR) api. To use OSR
requires an api key ( https://openrouteservice.org/dev/#/signup )
and creation of a token. There is a free usage category.
- Add DisconnectOnError property to BluetoothClient
- Add new functions for the WebViewer (thanks @nitinseshadri)
- New events: BeforePageLoaded and ErrorOccurred
- New Methods: ClearCookies, Reload, StopLoading, RunJavaScript
- Add radix number block (thanks @BeksOmega)
- Add reverse text block (thanks @conorshipp)
- Add ability to provide lists as ActivityStarter extras
- Add BackgroundImageInBase64 property to Canvas
- Add Platform and PlatformVersion properties to Screen
These blocks permit MIT App Inventor programs to learn which which
platform (Android or iOS) as well as the version of the platform
that is running on a device
- Add for each key, value in dictionary block to the control category
(thanks @BeksOmega)
- Add Clickable property and event to Image (thanks @moliata and @conorshipp)
- Add a “replace all mappings” block to text category (thanks @elatoskinas)
- Add a magnetic field sensor (thanks @barreeeiroo)
- Allow ListView to highlight selection programmatically (thanks @elatoskinas)
- Allow for a subset of projects to be exported (thanks @bartmathijssen)
- Optimize predexing on build server to speed up builds (thanks @pavi2410)
- Make collapsed dictionary constructor block look like JSON
Bug Fixes
- Fix not being able to make collapsed blocks generic (thanks @BeksOmega)
- Fix multiselect issue when changing tabs/windows
- Fix missing write permission in SoundRecorder (thanks @singhalsara8)
- Fix mutators not removing empty input (thanks @BeksOmega)
- Fix a bug where number blocks would display non-numeric values (thanks @BeksOmega)
- Fix an issue where projects exported by non-admins would be empty
- Fix race condition in enabling the dyslexic font
- Fix dyslexic font not applying to block workspace menu
- Fix accelerometer crashing emulator when UseLegacy is off
- Fix dictionary to list coercion in list blocks (thanks @BeksOmega)
- Use onBackPressed instead of onKeyDown (thanks @bartmathijssen)
- Refactor project list and trash can functionality
- Handle special trig cases (thanks @jsuyash1514)
- Translate global variable typeblock names
- Send only complete screens to build server
Other Changes
There were also some internal changes that are specifically of
interest for open source contributors and extension authors and do not
affect App Inventor’s behavior:
- Allow menu items to be referenced by ID
- Add proguard support for extensions (thanks @barreeeiroo)
- Make ExternalComponentGenerator work outside of App Inventor’s source tree
- Add port forwarding to Vagrant for superdevmode (thanks @imdhruvgupta)
- Add link for external issues to GitHub (thanks @barreeeiroo)
- Fix build server tests on Windows
- Address macOS security changes in README (thanks @imdhruvgupta)
- Add Jekyll files to gitignore (thanks @bartmathijssen)
Webviewer JS Evaluate example:
Changes between nb182a and nb182b (February 18, 2020)
This is a bugfix component release. There is a new Companion, version
2.57b. Version 2.57a will continue to work, but without the fixes
below.
- [Bug] Restore HeightPercent for Slider
- [Bug] Make ThumbColorActive visible for Switch
- [Bug] Fix dictionary issues with String/FString mismatch
Changes between nb182 and nb182a (February 5, 2020)
This is a bugfix component release. nb182 introduced a problem with the
CloudDB and FirebaseDB components. It includes a new Companion,
version 2.57a (from Google Play) or version 2.57au (from the site for
direct loading). Be sure to update your Companion.
If you packaged any apps that use FirebaseDB or CloudDB while we were
running release nb182 (pretty much from February 2 through today) you
will want to re-package them.
Changes between nb181c and nb182 (February 3, 2020)
This is a Component Release, which means that there is a new MIT AI2
Companion, version(s) 2.57 (and 2.57u). The older Companion will work
as long as none of the new features below are attempted. Version 2.57
is available both on the server and via the Google Play Store.
- [Feature] Added support for JSON-like dictionaries to the blocks
language. There is a new category of blocks, called Dictionaries,
that contains blocks for manipulating dictionaries. There are also
blocks to convert traditional associative lists (lists of lists)
into dictionaries and vice versa. (Thanks @data1013)
- [Feature] Added methods in the Web component to work with JSON and XML using
dictionaries rather than associative lists, as well as new method
JsonObjectEncode to convert App Inventor types into JSON.
- [Feature] Added if-else and if-elseif-else variations of the if block to the
Controls drawer (normally one would create these using the
mutator). (Thanks @Conor)
- [Feature] Added HelloPurrStarter template. (Thanks @Conor)
- [Feature] Made the project and extension upload dialogs only accept .aia and
.aix files, respectively.
- [Bug] Fixed a bug where assets and code were not sent in the right order,
resulting in missing assets in live testing.
- [Bug] Fixed an issue with app icons appearing “zoomed in”
- [Bug] Fixed an issue where the newline character (\n) would not be
rendered appropriately in Labels in the designer. (Thanks
@matthewcoufal)
- [Bug] Fixed some issues where resizing the companion app on a Chromebook
would crash the companion.
- [Bug] Fixed an issue where the “Show All Comments” command would cause
ghost bubbles to appear due to comments on collapsed blocks.
- [Bug] Fixed an issue on Android 9+ where READ_CALL_LOG permission was
needed for the PhoneCall component but not requested.
- [Bug] Fixed the return type of some list blocks that actually return
strings. (Thanks @wxbit)
- [Bug] Fixed an issue on Android 10 that prevented the Camera component
from working correctly.
- [Bug] Fixed potential null pointer exceptions in the code. (Thanks
@Hossein )
- [Bug] Fixed resource leak when deleting nested components. (Thanks
@elatoskinas)
- [Bug] Fixed an issue where the “global” keyword was breaking apps in
Korean and Polish (due to translations).
- Miscellaneous internal development, documentation, and bug
fixes. (Thanks @pavi2410, @Diego, @jerinjacob1999, @aashimgarg, and
@bartmathijssen)
Changes between nb181b and nb181c (January 12, 2020)
This is a non-component release with system improvements and
bugfixes. There is no new Companion.
MIT App Inventor version nb181c includes the following changes from nb181b:
- [Feature] Add a refresh companion item to the Connect menu
(thanks @kalsheikh)
- [Feature] Make project and extension upload dialogs limited to .aia
and .aix files, respectively
- [Bug] Fix bugs with null pointer comparisons in website (thanks
@kkashi01)
- [Bug] Fix nested components not being fully deleted when their
parent was deleted (thanks @elatoskinas)
- [Bug] Fix bug that prevented using the dropdown to switch
properties in the blocks editor
- [Bug] Fix return type of list to csv row and list to csv table to
be text and not list
- [Bug] Fix bad website asset paths in the gallery and maps
- [Internal] Add support for “Super Dev Mode” (thanks @pavi2410)
Changes between nb181a and nb181b (December 21, 2019)
This is a bugfix release.
- Fix an issue where global variables didn’t work in the Polish and
Korean translations
Changes between nb181 and nb181a (December 20, 2019)
This is a bugfix and documentation update release.
- Include the correct version of the Emulator APK file
- Update the documentation to refer people to the new community
site
Changes between nb180a and nb181 (December 19, 2019)
This is a Component Release with a new version of the MIT AI2
Companion app, version 2.56 (and 2.56u). The current Companion (2.55)
will work, but you will need the newer version to use new features.
If you downloaded the Companion from the Google Play Store, you should
get the update automatically.
- [Feature] Consolidated pedometer methods by removing resume and
pause (use start and stop instead) (Thanks @bartmathijssen)
- [Feature] Switched to using textareas for some designer properties
to allow for more text (Thanks @bartmathijssen)
- [Feature] Added a PageLoaded event for the WebViewer
- [Documentation] Updated documentation to a Markdown based system
and updated the theme to reflect latest App Inventor website
- [Documentation] Added documentation for “Any Component” blocks and
the drag and drop block PNG functionality
- [Documentation] Added help shortcuts to some block context menu
items
- [Bug] Fixed an issue where deprecated blocks would continue to
appear
- [Bug] Fixed a typeblock issue that would cause all statements in an
if-elseif-else block to be consolidated into a single set of
statements
- [Bug] Removed ability to create useless “any Form” blocks
- [Bug] Removed “Make Generic” on Screen blocks as only one screen is
ever active at a time (Thanks @conorshipp)
- [Bug] Fixed bug in tooltip translations
- [Bug] Allow 0% width or height in the designer (to be consistent in
the companion)
- [Bug] Fixed block text fields staying active when switching views
- [Bug] Fixed issue with button background colors changing on some
versions of Android [Internal] Cleaned up old code and removed
unused server routes
- [Feature] Implement a trash can for deleted projects (Thanks
@HimaniKaul and GSOC)
- [Feature] Make empty component setter sockets into errors, not
warnings
- [Feature] Implement option to disable project autoload
- [Feature] Added four environmental sensors: Barometer, Hygrometer,
Light Sensor, and Thermometer (Thanks @espertus)
- [Feature] Added HTMLContent property block to Label that returns
raw HTML if Text was previously set to HTML
- [Feature] Responsive sizing is now the default (Thanks
@elatoskinas)
- [Feature] Added Timeout property to Web component (Thanks
@austenjoa)
- [Feature] Numbers are now converted to Instants (interpreted as
milliseconds) when used in Clock methods
- [Feature] Added OriginAtCenter property to Ball (Thanks @espertus)
- [Feature] ShowListsAsJson is now the default (Thanks @austenjoa)
- [Feature] Add ReadOnly property to TextBox (Thanks
@matthewcoufal)
- [Feature] Added FillOpacity and StrokeOpacity to all map feature
types (Thanks @rangela99)
- [Feature] Select multiple components and edit their properties by
Control-clicking (Command-clicking on macOS) components (Thanks
@matthewcoufal)
- [Feature] Buildserver will generate a round icon needed by newer
versions of Android, and will scale icons to appropriate size based
on target device display density (Thanks @kalsheikh)
- [Feature] PNG export of blocks now have transparent background
- [i18n] Update Dutch translation (Thanks @bartmathijssen)
- [i18n] Fix translations of preview size dropdown options (Thanks
@bartmathijssen)
- [i18n] Re-enabled some math block translations for Chinese (Thanks
@bartmathijssen)
- [i18n] Fixed issue where tooltip internationalization resulted in
the wrong tooltips being show for some components
- [Deprecation] FusiontablesControl can no longer be added to new
projects. Google is shutting down the service on Dec 2.
- [Bug] Fixed issue where Camera would not require
WRITE_EXTERNAL_STORAGE permission in compiled apps though it was
needed to save pictures
- [Bug] Fixed “random” whitespace between tutorial panel and project
editor
- [Bug] Fixed bug where Points and HolePoints properties would be
empty after dragging polygons
- [Bug] Ignore any events on Canvas outside of Canvas borders
- [Bug] Fixed null pointer exception in FeatureCollection.Visible
- [Bug] XMLDecode now handles CDATA sections
- [Bug] Corrected a number of issues related to block dragging
- [Bug] Fix storing translated global keyword in blocks file
- [Bug] Hide more chaff
- [Bug] Set open flydown only once flydown is open
- [Bug] Skip dragging bubbles of icons without locations
- [Bug] Fix incorrect reference to FieldFlydown
- [Bug] Implement extra null checks on flydown
- [Bug] Fixed exception caused by attempting to open flydown during
block drag from toolbox
- [Bug] Made “Display hidden components in Viewer” checkbox
screen-dependent (Thanks @matthewcoufal)
- [Bug] Fixed block flydowns creating many orphan HTML elements
- [Bug] Fixed missing marker icon in compiled apps
- [Bug] The tooltips on the thermometer seem to be showing tooltips
for the barometer, e.g., Thermometer.Refreshtime
- [Bug] The thermometer attributes are confusing when there is no
thermometer available. For example, the thermometer can be both
unavailable and enabled
Changes between nb180 and nb180a (November 26, 2019)
This is a “non-component” release. As such there is no need for an
updated MIT AI2 Companion.
- Removed the FusionTablesControl from the “Storage” category as
Google will be shutting down the Fusion Tables service on December
3rd, 2019.
Changes between nb179 and nb180 (September 27, 2019)
This is a “non-component” release. As such there is no need for an
updated MIT AI2 Companion.
- Disabled event blocks will now be disabled in the Companion
(previously if you disabled an event block, the companion would
still react to the event unless you reconnected the companion).
- Eliminated the scrolling of the initial projects window on startup
when you have a lot of projects.
- Give deprecation warning for FusiontablesControl
Give a warning when a project that uses the FusiontablesControl is
loaded. Google will be shutting down the Fusiontables service on
December 3rd, 2019.
- Update the display of uploaded files to indicate file type by
showing an icon.
- Fixed minor sizing issue the TextBox in the program designer
- Add a new “Setting” menu to the top toolbox Immediately to the left
of the Help MENU. Currently the first available setting is to
permit the selection of the OpenDyslexic font as alternative font.
- Redesign the dialog box that appears when a user has no projects. It
now provides some example starter projects to help new App Inventors
learn how to use App Inventor.
- Fixed deleting extensions from screens other then screen one.
- Update the blocks Sort By Category Function
- You can now “preview” uploaded images, video and audio from the
“Media” palette by left-clicking on the loaded media and selecting
Preview. Hide the preview by clicking on the Close Preview button
that shows with the previewed media.
- The Help > About menu now displays the version of Android that
packaged applications are compiled for. This version of MIT App
Inventor “targets” SDK 28, which is Android 9.0 (Pie). This is
mostly significant for people who put apps in Google’s Play Store.
- Implement substring search on components palette, you can use any
sub-string of a component name to find the component in the
palette. There is now a search box at the top of the Palette on the
left side of the Designer. Typing loc finds all tools containing the
letters loc.
- Fix landscape navigation bar orientation in designer.
- Make blocks collapse/expand on double click.
- Add not-equal to text compare block.
- Add direct link to download in Barcode link dialog when packaging
an application.
- Miscellaneous Bugfixes and Documentation Updates.
Changes between nb178b and nb179 (August 24, 2019)
This is a “component” release. There is a new MIT AI2 Companion,
version 2.55 (and 2.55u). However if you are not auto-updating and are
not effected by the VideoPlayer and WebViewer rendering bug, you may
continue to use the previous companion.
- Added a missing lifecycle dependency (caused lots of warnings in
the internal phone log but doesn’t appear to affect behavior)
- Added YR Media tutorials, developed as part of our joint NSF grant, to the “Import project (.aia) from a repository” menu (thanks to @bartmathijssen on GitHub)
- Made the template import wizard smaller so that it is usable on lower resolution screens
- Added Polish translation (thanks to Krzysztof Kucner)
- Updated Korean translation
- Fixed rendering bugs on Android 8.1+ for VideoPlayer and WebViewer
- Removed some out-of-date documentation
- Moved CloudDB to Storage from Experimental
- Made blocks tooltips internationalizable
Changes between nb178a and nb178b (August 12, 2019)
- Fixed an issue where some blocks were missing
- Procedure Call Blocks should now have all of their parameters
- Screens with underscores in their name (_) should no longer generate errors
Changes between nb178 and nb178a (August 1, 2019)
This is a bugfix release that updates the Emulator.apk included to fix
an issue that prevented it from being installed.
Changes between nb177 and nb178 (July 30, 2019)
This is a Component Release which includes a new Companion, version
2.54 (and version 2.54u if downloaded directly from
http://ai2.appinventor.mit.edu).
- Add a new “Blocks Toolkit” feature that permits you to limit which blocks and components are available (displayed for the user).
This is a useful feature for a teaching environment. An instructor
can build a template project that limits the displayed components
and blocks in order to help a student focus on the lesson at
hand. To use the new feature look for the “BlocksToolkit” designer
property on Screen1 (the property only appears on Screen1). To get
a quick demo, load a project and then select “Match Project” from
the BlocksToolKit pulldown. This will limit the project to just
those components and blocks in use.
- Updated Android Target to SDK 28 (Pie 9.0) as required for Apps submitted to the Play Store after August 2019
- Added StopListening method to the SpeechRecognizer
This involves an improved implementation. A new Designer Property,
UseLegacy, was added. By default UseLegacy is set to true (for
compatibility with older SpeechRecognizer projects). Setting it to
false changes the User Interface (UI) for the Speech Recognizer and
permits the “stop” StopListening method to be used , Setting this
to false will forcefully stop listening in cases where
SpeechRecoginzer cannot or will not stop automatically for some
reason.
- Add a new Phone Skin to the Designer (replaced the ‘old’ Designer display skin)
- Add a Component Search Filter (look on the left hand palette)
- Better handling of unbound variables
- Various Bug Fixes
Changes between nb176 an nb177 (May 25, 2019)
Note: This is mostly a bugfix release. There is a new Companion, version
2.53 (and version 2.53u if downloaded directly from
http://ai2.appinventor.mit.edu).
Companion Upgrade is encouraged, particularly if you are experiencing
poor connectivity with your PC. It includes significant improvements
with how we use WebRTC to commmunicate between the Companion and your PC
(WebRTC is the technology used if “Legacy Mode” is not selected).
- Switch component should work correctly in Classic theme
- Return of the Update Companion menu item in order to force an update
of the emulator
- Fix translations of event parameters when switching languages
- Make the word “global” internationalizable (“global” from “global
variable”)
- Make English the blocks editor base language. This will result in
untranslated words in a language being presented in English instead
of an arbitrary different language
- Fallback to application/octet-stream for unknown file types. This
permits the downloading of files that are not understood by the
system
- Maps Fixes
- Apply AnchorHorizontal and AnchorVertical values to Marker
- Initialize polygons loaded at runtime
- WebRTC (non legacy companion connection) stability improvements,
particularly for high latency networks
- Other Minor bugfixes
Changes between nb175b to nb176 (May 10, 2019)
Note: This is a Component Release with a new Companion. There are
actually two different Companions for this release. Version 2.52 which
is available from Google Play. Version 2.52u is directly downloadable
from ai2.appinventor.mit.edu (Help->Companion Information). The 2.52
version implements some restrictions mandated by Google. These
restrictions are not present in version 2.52u.
More information about this release can be found on this detail
page.
- New features:
- Added Hungarian translation
- Added German translation
- Added new User Interface component: Switch
- Added ShowPasswordDialog method to Notifier
- Added DrawShape and DrawArc methods to Canvas
- Added MakeDate, MakeTime, and MakeInstantFromParts methods to
Clock
- Added Stop method to VideoPlayer
- Added “join with separator” block
- Added “reverse list” block
- Added generic (e.g., when any Button click) events
- Added menu option to convert blocks to/from “any component” form
- Added buttons to navigate through warnings and errors on the
blocks workspace
- Added a dropdown to switch designer preview size
- Added a menu option to the blocks editor to hide the controls
- Corrected the order of Copy/Paste All Blocks from Backpack to
match the traditional order (i.e., Copy before Paste)
- Increased contrast of blocks editor controls
- Implemented app isolation in Map component
- Made blocks return to their original positions if a trashing
operation is cancelled
- Made component blocks and property getters usable in “initialize
global variable” blocks
- Made locale saved by the system so returning users will
automatically see the last locale used rather than English
- Moved the “Empty Backpack” context menu item from the workspace
to the backpack
- Bugfixes:
- Fixed a bug that prevented ActivityStarter, Sharing, and Camera
from correctly sharing files on older versions of Android
- Fixed a bug where the “no projects dialog” would be shown when
opening a gallery link
- Fixed a bug that caused the Terms of Service page to forget new
user information (e.g., locale)
- Removed dead code related to package installation
- Fixed issues with HolePoints property in the Polygon component
- Fixed blocks PNG export in Safari
- Hide the progress bar when a dialog appears
- Fixed bug that prevented arrow key navigation in typeblocking
- Fixed an issue with themes due to initialization order of
components and properties
- Fixed a logic bug in MakePhoneCallDirect that launched the
default dialer app rather than directly calling
Changes between nb175a and nb175b (March 3, 2019)
- Minor bugfix to fix issue with loading template projects from
appinventor.mit.edu.
Changes between nb175 and nb175a (March 2, 2019)
This is a bugfix release, primarily to resolve an issue with using Map
tiles. There is an updated Companion, version 2.51a (and 2.51au, see
note below).
- Change how MIT App Inventor identifies itself to the Open Street Map
tile server. This change re-enables use of map tiles.
- Minor bugfix so Apps which include the “File” component do not
prompt for permission until the permission is needed.
A note on Companion versions.
Google now limits some permissions in the Google Play Store. Companion
version 2.51a is available via Google Play. With this version of the
Companion the “MakePhoneCallDirect” block (PhoneCall Component) and the
“SendMessageDirect” block (Texting Component) will generate a permission
error and will not work.
Companion version 2.51au can be directly downloaded from
ai2.appinventor.mit.edu (Help->Companion Information). This version
has the necessary permissions for the “Direct” versions of the blocks to
operate.
Note: If you use the Direct blocks in a packaged application, it will
not be accepted into the Google Play Store without special permission,
which is not likely to be granted. More information is available in the
Play Store’s publishing dashboard.
We are working on a solution for the future that will not require two
separate versions of the Companion while still abiding by the rules of
the Google Play Store. However it is not yet ready.
Changes between nb174 and nb175 (February 7, 2019)
This is a Component Release. You should use MIT AI2 Companion version
2.51, available directly via the Help->Companion Information menu
option and from the Google Play Store. Earlier versions should also
work, but new features require the newer version.
New functionality
We implemented conditional permissions for Texting and PhoneCall
components so apps built with MIT App Inventor will be compliant with
new Google Play Store policies. By default, apps using the Texting and
PhoneCall components will now launch the device’s default texting and
dialer apps. Most app inventors will be able to continue using the
existing blocks for their apps.
If you want to build apps that respond to SMS or phone calls, or
directly initiate a text or call, you may do so. To send a message or
start a call, use the SendMessageDirect and MakePhoneCallDirect blocks,
respectively. Receiving texts and calls continues to behave as it did.
However, apps built with these behaviors will trigger additional review
when being submitted to Google Play.
We implemented default handling for the Map.GotFeatures and
Map.LoadError events. For GotFeatures, the default behavior will be to
create features and populate the Map with them. For LoadError, the
Screen’s ErrorOccurred event will be run if defined, otherwise a toast
will be shown.
NOTE: The MIT AI2 Companion distributed through the Google Play
Store cannot use the SendMessageDirect or MakePhoneCallDirect blocks.
Attempting to use them will result in a permission error. This is due to
restrictions imposed by Google (see paragraph above about changes in
Google Policies). If you download the Companion directly from the MIT
App Inventor system (via the “Help->Companion Information” Menu
option) you will get a version that does work with the “Direct” blocks.
Documentation improvements
Fixed issues with some Help menu items being disabled Added
documentation to combine date and time information from DatePicker and
TimePicker. Made miscellaneous improvements to the documentation based
on feedback.
FustionTables Deprecated
We have deprecated the FusiontablesControl component due to Google’s
planned shutdown of Fusiontables in December 2019.
Connectivity
Fixed an issue with new connection method not working in Safari 11+ We
added a progress bar to report connection status.
Bug fixes
- Fixed an issue where changing the visibility of a Marker would not
update the Map containing the Marker until the user interacted with
the map
- Fixed an issue with the SDK 26 update that caused Error 1101 when
scanning QR codes for built apps on older devices
- Fixed an issue where polygons would not be parsed correctly from a
GeoJSON file on the device
- Fixed an issue where loading a list of elements into ListView would
not handle large numerical values in the list
- Fixed an issue where the MIT AI2 Companion would crash on some older
devices
Changes between nb174 and nb173 (January 6, 2019)
Note: This is a Component Release. Use MIT AI2 Companion version 2.50.
- Fixed an issue that prevented loading of pre-existing projects
containing a Map component
- Fixed an issue where the default BackgroundColor for a Screen
running on Android 2.x was black instead of white
- Fixed a bug in the backpack that would prevent it from opening if it
contained blocks related from an extension but the project didn’t
contain the extension
- Fixed a bug in the new connection mechanism that would prevent large
projects (e.g., with maps) from transferring to the companion
- Fixed an issue where the AboutScreen textbox could be made larger
than the Properties panel (thanks to @ethanhon for this patch)
- Fixed an issue where the textbox labels in forms were visually
off-center (thanks to @ethanhon for this patch)
- Fixed a performance issue in the blocks connection database that
would result in long switch times to the blocks editor in larger
projects
- Added two context menu item to show and hide comment bubbles (thanks
to @conorshipp of Kodular for this patch)
- Added bitwise and, or, and xor operators to the math drawer
- Added ShowScale (default: false) designer property to Map to draw a
scale
- Added ScaleUnits property to control whether the Map scale uses
metric or imperial units (default: metric)
Changes between nb173 and nb172 (December 15, 2018)
This is a bugfix release.
- Fixed an issue where the backpack icon would not accurately reflect
the backpack state when switching screens
- Fixed an issue where components that require dangerous permissions
on Android 6.0 Marshmallow and later would not work correctly on
Android earlier than 4.0 Ice Cream Sandwich
- Fixed a regression in File.ReadFrom that broke the use of asset
paths (i.e., //asset) in the Companion
Changes between nb172 and nb171 (December 1, 2018)
Major changes:
- Added a new communication protocol for the MIT AI2 Companion that
should be more versatile to different networks and firewalls. If you
experience difficulties connecting, you can use the old behavior by
enabling the “Use Legacy Connection” option in the companion
- Update for Android 8.0 Oreo (SDK 26). This includes many fixes to
account for behavior changes in Android since our previous target,
Android 2.1.
- Added three new blocks to Screen to handle user interaction with the
Android 6.0+ permissions model.
- AskForPermission: You can ask for permission explicitly by
calling this method. Generally, components will handle asking
permissions by themselves, so no change is necessary for
existing apps to work.
- PermissionGranted: The PermissionGranted event will be run if
the app user grants permission in response to an
AskForPermission call.
- PermissionDenied: If a user denies a permission and you want to
provide custom handling, you can drag in a
Screen.PermissionDenied event block to ask again or disable any
functionality that needed the permission.
Bug fixes:
- Blocks editor: Migrated the built-in blocks documentation to
ai2.appinventor.mit.edu
- Blocks editor: Fixed a bug to allow the “Show warnings” button
to work in Firefox
- Blocks editor: Fixed a bug to ensure apps will compile even
where there are empty local variable blocks
- Blocks editor: Fixed help URLs for some blocks
- Button and related components: Allow buttons on newer themes to
be smaller than the Android UI guidelines if they have an image set
- Button and related components: Fixed a bug where setting the
background color of a button to “None” would show the button as if
the background color were “Default” rather than removing the
background color
- Material UI ripple effect: Added support for ripple effect on
button clicks in non-Classic themes when on Android 5.0 and higher
- Designer: Fixed a bug allowing project templates to load even if
the project file contains a terminating newline
- Designer: Improved performance of loading projects with
complicated user interfaces
- Maps component: Fixed bugs in the GeoJSON support in Maps
components
- Tutorials: Fixed a bug where large images linked from the
tutorial sidebar would take up the entire workspace, preventing any
further progress
- Texting component: Fixed a bug to allow SMS messages longer than
160 characters
- WebViewer component: Fixed a bug where setting the WebViewString
from blocks would trigger a WebViewStringChanged event
Changes between nb170 and nb171 (October 21, 2018)
- Prohibit projects and component names that may conflict with
reserved words in the Java language
- Added Menu Choices to enable and disable all blocks
- Bugfixes
- Convert to the Java 8 Runtime on App Engine (this should have no
effect on App Inventor programmers)
Changes between nb169 and nb170 (July 31, 2018)
- Add second set of build menu options to build Apps for the Google
Play Store. As of 8/1/2018 All new apps in the Store must be built
for the newest version of Android. Read more about this
change.
Changes between nb168 and nb169 (July 11, 2018)
- CloudDB: The DataChanged event now can handle images.
- WebViewer: A new event “WebViewStringChange” is fired when the
“webviewstring” is updated within the webviewer.
- FusionTablesControl: The dialog that displays while FusionTables is
working can be suppressed or have its wording changed.
- Slider: Fixes for some versions of Android.
- Added the “Break” block which can be used to exit a “while” or “for
each” loop pre-maturely.
- Maps: Fixes the Compass location and to the Zoom controls (which
didn’t work on some versions of Android).
- Maps can now be rotated programmatically using blocks.
- BackPack: Individual items can now be removed instead of having to
completely empty the backback to remove items.
- Clock: Added more flexibility to “DateValue” and “FormatDateTime.”
- Notifier: Implement ChoosingCanceled and TextInputCanceled.
- You can now get events when a dialog is canceled.
- Web: Added a UriDecode function.
- Bugfixes and overall Performance Improvements
Changes between nb167 and nb168 (May 31, 2018)
This is a non-component maintenance release. It re-engineers how the
buildservers (which package applications) are managed. In particular you
should no longer see the build progress bar go backwards (which was a
bug, now fixed).
Changes between nb166 and nb167 (April 24, 2018)
This is a non-component release. No new Companion is needed.
- Feature: Touch support for the designer and blocks editors. App
inventors can now create projects on a touch screen device, such as
a tablet.
- Feature: Buttons with destructive actions (e.g., delete) have a red
background with white text to differentiate them from
non-destructive actions
- Bug: NxtColorSensor was missing a default values, which resulted in
an error that prevented using the component. The default value in
the editor now matches the value specified in the companion.
- Bug: Added missing documentation for File AfterFileSaved event and
addressed other minor typographical errors in the documentation.
- Bug: Fixed a bug where extension icons would not appear in the “Any
Component” section of the blocks tree.
- Bug: Fixed a bug where component names were not being translated in
“Any Component” blocks.
- Bug: Fixed an edge-case bug that involved an interaction between
loading multiple screens of of an out-of-date project in the wrong
order and the project upgrader. This would result in a project
structure that could not compile unless the project was exported and
then reimported back to App Inventor.
- Miscellaneous code cleanup and bug fixes that, in rare cases, could
result in instability.
Changes between nb165 and nb166 (January 24, 2018)
This is a bugfix release. It does contain new components, but no new
Companion is needed. However any app packaged with this release will be
packaged with updated components.
- The “ActionBar” property on Screen1 has been removed. The display of
the ActionBar is now controlled by the selected Theme.
Changes between nb164a and nb165 (January 8, 2018)
This is a Component Release. There is a new Companion, version 2.46.
Version 2.45 should work if you do not use Themes, but we recommend
updating.
- Update to Themes:\
- Added a Classic theme option, which is the now the default
theme, to address compatibility issues for developers used to
the old theme
- Switching themes now takes effect in the companion assuming the
device supports it
- Dark theme will set the screen background to black and checkbox,
label, and spinner text to white if the “Default” color is used
- The emulator update mechanism uses a shim called
CompanionUpgradeHelper to work around an issue with the companion
running out of memory during an companion update
- The companion now writes assets received from the browser directly
to disk rather than storing them in memory. This will prevent future
out of memory errors during upgrades
- Made MockFeatureCollection have an icon while dragging and fixed
some minor bugs related to the MockFeatureCollection properties
- Carriage return “\r” is supported in the blocks language
- Fixed an issue where the titlebar did not appear with certain
combination of theme settings
- Fixed an issue where compiled apps would crash on some devices if
the AccentColor or PrimaryColor values were not opaque
- Updates to Dutch Translation
- Bugfixes
Changes between nb164 and nb164a (January 4, 2018)
Changes between nb163 and nb164 (Decmeber 27, 2017)
This is a component release, a new Companion (version 2.45) contains the
changes for this release. Older Companion Apps may work, but new
features will not work and other issues may be encountered. We recommend
updating to the latest Companion as soon as possible. Companions
downloaded from the Google App Store should auto-update.
Starting with this release, MIT App Inventor will require Android
version 2.1 or higher. We believe that there are only a very small
number of devices in use today that have software older than this.
Version 2.1 was released in 2009 and has been unsupported by Google for
several years.
- Introducing the new Map component to MIT App Inventor. This
component, built on OpenStreetMaps, works on any Android device. It
includes a significant amount of new functionality including
customizability of seven new map-related components, web-based
editing of map content, and native support for distance calculations
(e.g., Haversine). More details are available at Evan’s Blog Post.
- Introducing the new CloudDB component. This experimental
component provides a lot of the functionality of the FirebaseDB
component but without requiring a proprietary back-end database.
Like Firebase, MIT will supply a default storage back-end for a
reasonable usage. However MIT App Inventor programmers can choose to
operate their own back-end storage server using the open source
Redis system
- Adds support for App Themes, including Material UI support,
which let you specify the look and feel of user interface elements
such as buttons
- Adds a color wheel to the designer color property editor, permitting
selection of colors from the full RGB color space and control over
opacity
- Adds an “is-text?” block to test whether a value is a string
- Implements a workaround for an Android issue that would cause the
Accelerometer to switch X and Y directions on some landscape mode
devices
- Various updates to facilitate the easier creation of extensions
- Various bug fixes and performance improvements
Changes between nb162 and nb163 (November 19, 2017)
This is a non-component release
- Eliminate a visual glitch when dragging certain blocks
- When using “Highlight Definition” to find a procedure definition,
move the workspace to the definition if it is not in the area
displayed on the screen. Scroll to highlighted procedure
- Bugfixes to type-blocking. Make sure methods are displayed for
component when using type-blocking
- Fix messages in some non-English translations
- Bugfix to extension upgrading
- Display an extension’s version in the help widget
- Bugfix to undo/redo when used with the “if” block mutator
- Update reference documentation to use the new MIT App Inventor logo
- Performance improvements to the blocks editor
- Bugfix to block tooltips
- Improve performance to communication with the Companion
- Bugfix to dropdown position in Chrome 61 and later
- Various fixes/improvements to the developer experience
- Properly resize buttons when the font size of the button changes
- Improve project loading time for large projects
- Fix issue with project switching when connect to the Companion
- Bugfix to project upgrading (when a new version of MIT App Inventor
is released). Make sure blocks stay where they are supposed to
- Fix to the emulator “hard reset” menu item for non-English languages
- Permit the \t character (which represents a tab) in block texts
- Use GWT dialogs instead of “alert” dialogs when deleting a component
Changes between nb161 and nb162 (August 23, 2017)
This is a non-component release consisting of bugfixes.
Changes between nb160 and nb161 (August 11, 2017)
Note: This is not a component release, but there is a new Companion
with our new MIT App Inventor logo.
- New MIT App Inventor Logo
- Bug fixes.
Changes between nb159 and nb160 (July 7, 2017)
- Remove “Beta” Tag!
- Update Chinese Tranlations
- Bug fixes.
Changes between nb158 and nb159 (July 3, 2017)
Note: This is a component release. There is a new Companion, version
2.43. Updating is recommended but not required.
- The texting component can once again send texts with Google Voice.
We still haven’t figured out how to receive them (or if it can even
be done). This is likely a temporary fix as using Google Voice the
way we are is not supported by Google, and therefore may break in
the future. We are actively looking into an alternative for
non-phone devices (things like tablets that do not have a phone
number) to send and receive messages.
- The default service for TinyWebDB has been updated to
http://tinywebdb.appinventor.mit.edu instead of
http://appinvtinywebdb.appspot.com. For now both of these URLs point
to the same physical service, so no disruption should be seen by
anyone. However this change will permit us in the future (with
notice) to move the service from Google to another provider,
including hosting it locally at MIT. This will save us money (it
costs to host TinyWebDB for eveyone) and permit us to offer better
service.
- Added the Dutch (Nederland) translation.
Changes between nb157 and nb158 (June 14, 2017)
Note: This is a component release. You should upgrade your copy of
the MIT AI2 Companion to version 2.42. Google Play will auto-update your
Companion if you downloaded it from the Google Play Store. Otherwise you
can use the “Help->Update The Companion” Menu option.
- Enhance extension support
- Add a progress bar when loading large files to the Companion
- Miscellaneous bug fixes
Changes between nb156c and nb157 (June 6, 2017)
- Added new “TutorialURL” property to Screen1. A URL placed in this
property will be used as a tutorial panel on the left hand side of
the screen. NOTE: Only approved URLs can currently be used to avoid
people using this mechanism to distribute malware.
Changes between nb156b and nb156c (May 31, 2017)
- Solve problem where the Splash Screen interfered with the Project
List when a person has a lot of projects.
- Fix a problem that caused problems with the Blocks Editor in
versions of Firefox older then version 53.0
Changes between nb156 and nb156b (May 29, 2017)
- Bugfix to Blocks Editor: Fix bug where sometimes you would get 20+
blocks when you dragged a block out of the blocks drawer.
- Other miscellaneous bugfixes to the blocks editor.
Changes between nb155 and nb156 (May 25, 2017)
This is a non-component release, however it is a significant release
because of a major upgrade to the Blocks Editor.
- Added the ability to zoom the workspace in/out. Zooming gestures
include:
- Click the +/- buttons in the lower left corner above the
trashcan.
- Ctrl+Mouse wheel on a mouse.
- Multi-touch trackpad users with Chrome, zooming can also be done
with the pinch/expand gesture.
- Added the ability to pan the workspace. Panning gestures include:
- Mouse wheel up/down will pan the view vertical.
- Wheels with 2-dimensional scrolling can also pan left/right.
- Multi-touch trackpad users can pan in two dimensions using
two-finger scrolling.
- Added Reset to center button will set the zoom back to 1:1 and move
to the center of the blocks workspace.
- Added workspace grid. Right-clicking (Ctrl+Click on Mac) on the
workspace brings up a context menu with “Enable Workspace Grid”
option. This option is a user setting and will persist across
workspaces and across App Inventor sessions.
- Added workspace snapping. If the grid is enabled, another menu
option “Enable Snap to Grid” will be available. Enabling this option
will make the top-left corner of blocks snap to the nearest grid
point. This option is a user setting and will persist across
workspaces and across App Inventor sessions.
Changes between nb154a and nb155 (March 5, 2017)
- Updates to better support newer versions of Android
Changes between nb154 and nb154a (February 15, 2017)
Note: This is a non-component release. No new Companion is required.
- Make the Backpack persistent – If you leave MIT App Inventor with
blocks left in your backpack, they will be there the next time you
login.
- Projects load faster – We optimized how projects are loaded.
Projects, particularly larger projects, will load faster.
- Additional minor bugfixes
Changes between nb153 and nb154 (January 27, 2017)
- Changes to better support extension writers who need to add features
to the Android Manifest
- Changes and bugfixes to support newer versions of Android
- “ShowListsAsJson” – A new property was added to Screen1 (which
affects all screens). When set to true, “ShowListsAsJson” will cause
all lists, when converted to a string, to be represented in
JavaScript Object Notation (JSON) instead of as Lisp lists.
- In the future we will change the system so that all new projects
are created with this set by default (existing projects will not
be affected).
Changes between nb152b and nb153 (November 23, 2016)
- Speed up App Inventor client by reducing the number of server calls
during project load and general operation of the software.
- Speed up server side processing of content by removing unneeded
stats calculations.
Changes between nb152a and nb152b (November 15, 2016)
- Load the App Inventor Gallery when first accessed instead of when
App Inventor is started. This improves loading time.
Changes between nb152 and nb152a (November 8, 2016)
- Critical Bugfix to nb152 so projects without assets can be loaded
into the Companion.
Changes between nb151a and nb152 (November 7, 2016)
- Bugfixes and performance improvements\
\
In particular we fixed a bug that caused excessive network traffic
when projects with many or large assets were worked on.
Changes between nb151 and nb151a (September 22, 2016)
- Fix to a problem where renamed procedure call blocks had the wrong
number of sockets.
- Fix to extension loading that prevented the loading or updated of
MIT App Inventor Extensions
Changes between nb150e and nb151 (September 13, 2016)
This is a mostly bugfix release. The most significant:
- Fix a bug in ActivityStarter introduced in nb150 that prevents the
ActivityStarter from working properly on older devices.
Note: This is a component release which introduces Companion version
2.39. If you have auto-update enabled in the Google Play Store the
update will happen automatically.
If you loaded the Companion manually, you can update the companion by
using the Help->Update the Companion menu option while connected.
Updating the Companion is not required with this release.
Changes between nb150d and nb150e (August 27, 2016)
Changes between nb150 and nb150d (August 23, 2016)
- Bugfixes and performance improvements
Changes between nb149 and nb150 (July 26, 2016)
Note: This is a component release. The new Companion is version 2.38
available directly from MIT App Inventor or via the Google Play Store.
However if you do not use the Scrollable Horizontal and Vertical
arrangements, you can continue to use the old Companion (version 2.37).
If you have a Companion older than version 2.37, you will be prompted to
auto-update your Companion.
- Migrate to FusionTables version 2
- Added Scrollable Horizontal and Vertical Arrangements
- Update Alignment Dropdowns in the Designer
- Add Comments to Block Save Images
- Rewrite Extensions packaging scripts
- Support upgrading of extension components
- Bugfixes to the MIT App Inventor Gallery
- Update to ListView
- Update to ActivityStarter
- We now signal an error on Divide by Zero
Changes between nb148 and nb149 (June 15, 2016)
Update to Firebase: Add New Blocks:
- AppendValue: Takes a “tag” and a “value.” If tag points to a list,
it will append the value onto the end of the list. If two devices
attempt this at the same time, both will be added (instead of one
being lost).
- RemoveFirst: This function instructs Firebase to remove the first
element of the list pointed to by “tag”. It is returned in the new
Event “FirstRemoved.”
- GetTagList: Useful when debugging. It gets a list of the known tags
in your application. The list itself is returned as an argument to
the “TagList” Event.
- ClearTag: This function takes a “tag” as argument and removes it
from the Firebase system. It is analogous to TinyDB’s ClearTag
function.
- Persist: New Designer only property. When set to “true” Firebase
will keep track of changes when there is no internet connection,
even when the App exists. Upon next invocation, if there is an
Internet connection variable changes will be uploaded.
Firebase remains an experimental feature.
App Inventor Extensions
This is the first public release of MIT App Inventor that supports
“extension” components written by users in Java. Extensions are built
using the App Inventor sources and are packaged into “.aix” files.
“.aix” files can then be added to projects to add functionality.
Limitations
Currently only non-visible components may be added. Apps with extensions
loaded may not be uploaded to the App Inventor Gallery
New Components
BluetoothLE
New BluetoothLE (Bluetooth Low Energy) Component: This component is
actually our first official release of an MIT App Inventor supported
extension. It is available for download from the following site. MIT
App Inventor
Extensions.
This extension supports a new protocol similar to classic Bluetooth
except that it is designed to consume less power while maintaining
comparable functionality. For this reason, Bluetooth LE is the preferred
choice of communication with IoT (Internet of Things) devices that have
limited power resources. We are currently in the process of creating a
new page on our website that will provide documention, tutorials and
other materials to help use and understand the new possibilities that
this new component. A draft of this page can be found here: BluetoothLE
Documentation and
Resources
Pedometer
New Pedometer Component: This component uses the accelerometer to
determine the number of steps taken while walking with a device.
Components to support LEGO Mindstorms® EV3 Robots
Other
- The system is now based on Android SDK 5.1.1: However we still
support devices back to Android 2.2 (though not all features of App
Inventor will work with all versions of Android)
- Listview Update: Font size scales properly in “Responsive” mode.
- Labels can now contain a limited subset of HTML as well as text.
Check the “HTMLFormat” designer property to enable this feature.
- Bugfixes and Documentation fixes
Changes between nb148 and nb148a (April 25, 2016)
- Bugfix to CheckBox handling
- Removal of temporary transition code to smooth the deployment of
nb148
Changes between nb147e and nb148 (April 24, 2016)
- No user visible changes. This release restructures some of the
internal functions of MIT App Inventor to facilitate future
improvements.
Changes between nb147d and nb147e (April 22, 2016)
- Bugfix to Checkbox resizing. Make sure floating point values work
Changes between nb147c and nb147c/d (April 20, 2016)
- Fix to a bug which prevented very old Companions from auto-updating
Changes between nb147a and nb147b (April 20, 2016)
- Gallery Fixes: retry failed searches and return more consistent
results
- Fix checkbox resizing in the Designer
- Fix the “tooltips” on the COS and TAN math blocks
- Updated Italian Translation
- Updated Swedish Translation
Changes between nb147 and nb147a (March 15, 2016)
- Documentation updates
- Minor fix to Designer Color Dropdown, if there is not enough room to
show all colors below the control, the list of colors will show up
above.
Changes between nb146k and nb147 (February 18, 2016)
NOTE: This is a component release which will have a new Companion to
take advantage of new features. The older Companion should still
function, but not everything will work correctly.
- UI Improvements:
- Welcome to App Inventor 2 Dialog will no longer prevent the
“Start Project” button from working.
- Additional validation of new project names to ensure they are
valid names.
- Fix an issue where the project “Start” button can be pushed
multiple times before a new project is created (this can happen
on a slow network) which results confusion.
- Various features that open a documentation page from the system
will now open in a fully functional new window or tab instead of
a pop-up.
- The Backpack icon has been updated to better show when it
contains blocks or is empty
- Add a new Menu Item to the Help Menu to facilitate downloading
andinstalling the latest companion.
- “ScalePictureToFit” property on an image will scale it both on
the device and in the UI Designer
- Clock Component Update: Additional functions for computing
timeintervals and otherwise manipulating dates and times.
- Documentation Updates
- Updates the Portuguese (Brazilian) Translation
- Gallery Improvements: Better search results
-
Add the new “Firebase” Component:\
This is an experimental prototype release of the Firebase component.
Feel free to use it for personal apps, but be aware that the
component is under active development, and may change in a way that
could make your apps stop working.
The Firebase component provides a mechanism similar toTinyWebDB.
However it is hosted using a Firebase database
(firebase.com) and supports updates to
variables from different copies of an application, when multiple
copies of an application are running on different devices which are
connected to the network. When one device updates a variable the
other will get a “DataChanged” event with the new value. This
permits a form of “cloud variable.”
The use of Firebase normally requires an account at firebase.com,
but by default an account sponsored by MIT is configured (via
“branding” commits which are not public) for the MIT sponsored
service.
See
http://ai2.appinventor.mit.edu/reference/other/firebaseIntro.html
for more information.
Note: The Emulator that we distribute does not support the
Firebase Component at this time.
- Camera Component: The UseFront property was removed, it no longer
functions on newer versions of Android. Projects that set it in the
Designer will receive a warning the first time they are loaded into
the system and the property will be removed. Any blocks that
reference it will be disabled and marked “bad” (they will have a red
border and will need to be discarded).
- Location Component: Do not fire the “LocationChanged” event if the
location is invalid.
- The GyroscopeSensor component was added.
- The “HideKeyboard” function was added the the “Screen” component. It
is still present in the TextBox component as well.
Changes between nb146j and nb146k (January 8, 2016)
- Portuguese (Brazilian) Translation
- Minor documentation changes
Changes between nb146i and nb146j (December 11, 2015)
- Security bugfixes – Make sure a person can only “Like” an App Once
- Server Performance improvements
- Server fix to make sure older projects can load
- Other Minor bugfixes
- Minor documentation fixes
Changes between nb146h and nb146i (December 1, 2015)
Changes between nb146g and nb146h (November 19, 2015)
- Gallery Update: Adds “Tutorial” category. Changes how a user’s
profile is laid out: List of Apps now shows more than 5 apps and
appears below the profile information instead of to the right of it.
- Updates to the Korean Translation
- Addition of the Swedish Translation
- Bugfixes. In particular errors during initial form load of the
Companion (which happens when you make changes in the designer) no
longer “crash” the Companion.
Changes between nb146f and nb146g (October 23, 2015)
Changes between nb146 and nb146f (October 18, 2015)
- Bugfixes.
- Right clicking the Backpack brings up a menu with option to see
short help message.
- Minor updates to French and Russian translations.
Changes between nb145i and nb146 (September 30, 2015)
- Blocks Copy and Paste feature (called “BackPack”) documentation is
located at
http://ai2.appinventor.mit.edu/reference/other/backpack.html
- Improvements in how spaces and other characters are handled in
Component Names. This is important for some non-English languages.
- You can now download a png image of your blocks by right-clicking on
the blocks editor background (it’s a new item added to the
right-click menu).
- Added Background Color and Image to HorizontalArrangement and
VerticalArrangement Layouts.
- You can now connect or disconnect a BlueTooth keyboard when an App
Inventor App is running
- Bugfixes and performance improvements.
Changes between nb145g and nb145i (September 11, 2015)
- Renamed collapsed blocks now appear correctly
- Add additional features to the Canvas component for the use of
Extension Writers
- Font Sizes are now reported correctly
- Another update to the French translation
- Improvements to “Fixed” mode to handle device rotation better.
- Fixed bug that caused improper sizing on some devices when the soft
keyboard was displayed
Changes between nb145f and nb145g (September 2, 2015)
- Update French Translation
Changes between nb145e and nb145f (August 27, 2015)
- Bugfixes to VideoPlayer so it displays at the correct size and
percentages can be used to size it.
- The “black bar” problem has hopefully been solved. This was a
problem that could happen when a device was rotated.
Changes between nb145d and nb145e (August 24, 2015)
- Made sure permission to use the sdcard is present on components that
need it.
- Fix to a problem that prevented App Inventor from running under
Chrome 46.
Changes between nb145b and nb145d (August 23, 2015)
- IMPORTANT BUGFIX: Fix an issue that causes packaged apps (and
the Companion) to crash on devices with a screen density of 1.0
- IMPORTANT BUGFIX: Fix an issue that causes packaged apps (and
the Companion) to crash on devices running Gingerbread or older
(including the emulator).
- You should be running at least Companion version 2.31
Changes between nb145a and nb145b (August 22, 2015)
- Update how images are sized and scaled. This should fix crashes
where applications were running out of memory.
- Fix a Null Pointer Fault in the Player when used to play MIDI files.
- Make sure Web Component has appropriate permissions. This fixes
issues introduced in nb145.
- Add a “Send Error Report” menu item to the Companion. This can be
used to send the MIT Development team debugging information when
requested.
- Note: There is an updated Companion (version 2.29) with this
release, but you do not need to update to it unless you are
experiencing problems or wish to use the error reporting feature.
Note: It is being distributed via Google Play and if you have
auto-update enabled you should automatically receive it.
Changes between nb145 and nb145a (August 18, 2015)
- Bugfix: Fix issue which prevented screens other then Screen1 from
going into “Responsive” mode.
Changes between nb144e and nb145 (August 17, 2015)
- Responsive App Inventor: MIT App Inventor now supports multiple
screen densities and sizes. This is a significant change. More
information on how to use it can be found at Responsive Design in
App
Inventor.
- Documentation Fixes and Updates.
- Fix inconsistent vertical alignment problem. Buttons with multiple
lines will now align properly.
- Fix Slider to work on a wider range Android versions and phone
models.
- You can now “Export all Projects” from the “My Projects View.”
- Added an “Extras” property to the ActivityStarter. This provides
more flexibility when starting other applications from an App
Inventor application.
- Minor bugfix to the Player component. App will no longer crash on
exit if no sound was given to the Player.
- Change threshold for recognizing a drag of a Sprite. Sprites can now
be dragged smaller distances.
- Updated the algorithm for rotating ImageSprites.
- Allow an “Instant” to be used with the Date and Time Pickers.
- Bugfixes to the Spinner component to handle certain situations
better.
- The File Component now has a “AfterFileSaved” event that is
triggered after a file is written out.
- Add a “Default” choice for TextToSpeech to cause it to use the
system setting for the default country and language.
- Camera component update: Scan newly added picture into a default
media contents provider in a device. Add a method scanFileToAdd to
allows the default media contents provider(e.g. Gallery, Google
Photos) to display the newly added pictures.
- Add ContactUri and ViewContact to ContactPicker.
- Android Version 1.5 (Cupcake) is no longer supported. The minimum
version is now 1.6 (Donut).
- You can view our Known
Issues
document.
Changes between nb144d and nb144e (August 3, 2015)
- Documentation updates
- Fix for malformed comment bubbles (and “Do It” results) with the
latest Chrome.
Changes between nb144b and nb144d (July 26, 2015)
- Add French Translation
- Update Russian Translation
- Minor bugfixes
Changes between nb144a and nb144b (July 17, 2015)
- Added Russian Translation
Changes between nb144 and nb144a (July 12, 2015)
- Add Item to Help Menu to re-display the Splash Screen
- Minor Bugfixes in App Inventor Designer UI
- New Project Names are validated while being typed in
- Backend changes to conform with Google’s App Engine changes
Changes between nb143i and nb144 (June 30, 2015)
- When a component is renamed in the designer, any related collapsed
blocks will be properly renamed now.
- Screen1 now has properties that permit you to hide both the top
“Status” and “Title” Bars
- The selected item in a ListView is now highlighted
- Activity Starter component now has a “Activity Canceled” event
- Fix to the Player Component so it doesn’t spontaneously start
playing after a phone call or other interruption
- Bugfix to Image Sprite rotation which had left screen artifacts on
some devices
- Add Math blocks to convert between decimal, Hexidecimal and Binary
representation
- Clock Component now permits you to format a date or time
arbitrarily. You provide a “format string”
- You can now have both a Background Image and a Background Color and
the “right thing” happens
- TextToSpeech: The designer now uses dropdown menus to select Country
and Language. Added blocks to fetch the supports countries and
languages on a given device
Changes between nb143e and nb143i (June 28, 2015)
- Fix issue with pinch zooming on Chrome (workaround a Chrome bug)
- Internal Changes to how projects are stored to adapt to changes in
Google’s hosting environment
- Projects should more reliably load from the Gallery
- Splash Screen at Startup can now be dismissed (“Do Not Show Again”
checkbox)
- Minor documentation changes and bugfixes
Changes between nb143d and nb143e (May 10, 2015)
- MIT App Inventor Gallery now sorts popular apps by Likes instead of
Download count.
- Various documentation Updates.
Changes between nb143 and nb143d (May 1, 2015)
- Bugfixes related to GWT update
- Minor UI Improvements to the Gallery
- Gallery Apps now are required to have an Image and description
- Project List Page has updated UI. You can sort projects by whether
or not they are published in the Gallery
- Add documentation on how to use the Genymotion emulator with App
Inventor
Changes beteen nb142 and nb143 (April 26, 2015)
- MIT App Inventor Gallery Enabled
- Minor User Interface fixes
- Minor documentation updates
- Update from Google Web Toolkit (GWT) Version 2.5.1 to Version 2.7
Changes between nb141 and nb142 (March 29, 2015)
- Set printing of decimals so that period is the decimal separator,
regardless of the locale. Make integer values print without “.0” at
the end.
- Fix to typeblocks when using the Safari Browser.
Changes between nb140b and nb141 (March 27, 2015)
- Improved error reporting from Fusion Tables.
- Deprecated the “DoQuery” method in Fusion Tables. It has been
obsolete since 2012. It will no longer be available from the blocks
draw and any projects loaded which have a “DoQuery” method block
will find that block disabled upon load, and highlighted with a red
border to indicate that is a deprecated (and now not working) block.
- Added a “Thumb Enabled” property to the Slider Component. This
permits the slider to also be used as a “Progress Bar.”.
- Improve reporting of Runtime errors (arguments to the failed
function are now in square brackets to make them easier to read).
- A Progress Dialog method has been added to the Notifier component.
- EmailPickers and PasswordText boxes can now request keyboard focus.
- Added properites to the TextToSpeech component to retrieve the list
of supported languages and countries at runtime..
- Added Italian translation to App Inventor, altered the language menu
so instead of a “Ball” icon, it is now the name of the current
language with a down “caret”. When selected this menu provides a
list of supported languages.
- Bugfix to “lookup in pairs” so that lookup keys treat numbers and
their text representations in the same fashion.
- Rational numbers are now always supplied as fractions. Prior to this
change they may have been displayed as actual fractions (i.e., we
will now display 0.11764 instead of 2/17).
- Unicode can now be provided in an App Name.
- Documentation updates and fixes.
- Improvements to the build system used to build App Inventor from its
sources.
Changes between nb140b and nb140c (March 24, 2015)
- BUGFIX: fix an issue that can sometimes lead to project corruption
when a component is renamed.
Changes between nb140a and nb140b (February 22, 2015)
- Added some more documentation pages to Google Docs so they can be
commented on.
- Arranged for documentation pages to not require logging in.
Changes between nb140 and nb140a (February 20, 2015)
This is primarily a bugfix release. No new Companion App is needed.
However this release deprecates the 2.23ai2zx1 Companion in the
Emulator. People running version 2.23ai2zx1 and earlier will be prompted
to auto-update their Companion. Although this step can be skipped, we
strongly recommend performing the update. The current Companion is
version 2.24.
- Bugfix to “Typeblocks” (where you type in blocks instead of pulling
them from drawers). The “make a list” block will now contain two
empty sockets when typed, the same as when it is pulled from the
drawer. This same fix applies to several other blocks that have
mutators, for example, the “+” block which used to appear with no
empty slots.
- We have updated how MIT App Inventor is cached and served. This
should result in slightly quicker startup over slow network
connections. It should also make for a more rational experience for
people who are actively logged in when we perform a release. (Note:
The more graceful transition may not be in effect for this release,
but should be for future releases).
- We are migrating some of our documentation to Google Docs. In
particular this is so that people can make comments and suggestions
directly onto our source documents. Pages that have been updated
will have a link near the top that says: “Click here for a version
of this page on which you can comment.” So far, only a few pages
have been migrated, but we plan to do more.
- We have resolved the issue where some versions of Chrome on Windows
did not properly display Project Names as well as some menu items
and buttons.
Changes between nb139 and nb140 (February 11, 2015)
Companion Version to use: 2.24.
- Added the “IgnoreSslError” property to the WebViewer Component. This
permits you to fetch SSL protected content from sites that have self
signed certificates. Note: This introduces a security concern when
used, as invalid certificates may be accepted as well.
- Added the “Deobsfucate Text” block. This block lets you put a text
string into a packaged App that is obscured from casual observation.
This may be useful for putting API keys and other quasi-secret
information into an App. Note: This is not a fail safe approach, as
a determined interloper can still extract the text, but it does
require some effort.
- Cancelling a text input notifier will now automatically hide the
soft keyboard
- Added the Proximity Sensor component.
- Padding was added around text labels (the “HasMargins” property was
added to the label component). By default new labels will have
padding. Existing labels in existing projects will not automatically
get this extra padding.
- The BarcodeScanner component has had the ZXing scanning code added
to it. The new property “UseExternalScanner” was added. If true, the
default, an external scanning program is still used. However if
false, the internal scanner will be used and an external program is
no longer required. Note: The internal scanner is not as flexible as
many external scanning programs, be sure it works in your situation
before relying upon it.
- Error handling in the FusionTablesControl component was improved.
You can now catch Fusion Tables errors and handle them in your own
code.
- The “AppName” property was added to Screen1. This property is used
as the Application Name for packaged Apps in the Launcher. This
means that the name displayed on someone’s phone is no longer tied
to the project name and can have spaces in it.
- Text written onto a Canvas can now be left, center or right aligned.
- Fix a bug in the Spinner component that would result in an extra
“AfterPicking” event being fired during incremental development.
- The ListPicker component can now have its background and text color
set.
- The ListView component has a new “TextSize” property which lets you
adjust the size of displayed text.
- Added the “RequestFocus” method to TextBoxes. When invoked the
target textbox will become the default location for keyboard input.
- The “ClearCaches” method was added to the WebViewer component. When
invoked any cached content in the WebViewer is discarded, ensuring
that contact from the server is fetched and loaded.
- The Companion should now load changes made in the designer faster.
Changing screens during development should be faster as well.
- Bugfixes and documentation improvements as well as server
improvements that make it easier for us to operate the MIT App
Inventor service.
Changes between nb138 and nb139 (November 20, 2014)
Companion Version to use: 2.23ai2zx1.
- Updates to the Companion to better support different companions for
different versions of MIT App Inventor (not user visible).
- Minor bugfix to fix a race condition in the “templates” code (the
code that permits you to load a “prototype” project from builtin or
user supplied templates).
- Project Page now sorts project names in a case insensitive manner.
- The “Language” menu is now a globe icon on the upper left hand side
of the screen
- Minor bugfix to the Yandex Translate component to better handle
Latin and Asian characters.
- XML Decoding support has been added to the Web Component, with
extended documentation in the Reference -> Other section
- Source code License had been changed from the MIT License to the
Apache License
- The App Inventor Gallery has been merged into the code, but is
currently disabled at runtime.
- The “lookup in pairs” block now has a default value provided for the
“not found” socket.
- Minor fix to typeblocks to properly handle procedure calls.
- Component names can now contain unicode characters, supporting Latin
and Asian character sets.
- New users will now see a Terms of Service confirmation page. Note:
Initially *all* users will see this page, but once it is
acknowledged it won’t appear again. (pending code review completion)
- Improved Chinese Translations
- Add Text Colors and Background Colors for the ListView Component.
- Minor bugfixes and Documentation updates/fixes.
Changes between nb137 and nb138 (October 21, 2014)
- Added Spanish Language Translation.
Changes between nb136 and nb137 (September 14, 2014)
Companion Version to use: 2.22ai2zx1.
- Reverted the change to minSdk. The minSdk is now 3 again. This
change had caused some unexpected behavior to Balls, Canvas and
Sprites. We are working on resolving these problems and will
re-introduce this change when it is finished and completely tested.
Changes between nb135 and nb136 (September 12, 2014)
Companion Version to use: 2.21ai2zx1.
- Updates and bugfixes to Date and Time Picker. You can now set the
time/date to be displayed when the Picker is opened.
- Require an open project before permitting a Companion connection.
This avoids a confusion when new users, who have no projects,
attempts to start their session by connecting to the Companion when
they have no project.
- The “About this Application” can now have line breaks in the
displayed message.
- Screens are now not scrollable by default. You can still set the
scrollable property in the Designer.
- Fixes to the Twitter Component: The Camera can now be used to take
pictures to be tweeted. We now send images directly to Twitter
instead of Twitpic, which is shutting down on September 25, 2014.
- The Companion now has a “settings” page where you can set the
location of the “rendezvous” server. The rendezvous server is used
by App Inventor to help the Companion and the Browser find each
other. By default the server at MIT is used. This option permits
local site operators to run their own server if the network path to
MIT is poor.
- Add ability to configure the Companion connect QR Code to specify
the rendezvous server to use.
- You can now export the current project as a “.aia” file while
working on the project. You no longer have to explicitly go the “My
Projects” page and select it.
- Added Internationalization support to the App Inventor service. App
Inventor can now be translated into other languages. We have
deployed Chinese with this release.
- The Fusion Tables component has been upgraded so you can provide
“service” credentials. Previously end-users had to authenticate to
Google in order to access certain tables. Now your App can
authenticate to Google so end-users don’t have to authenticate (or
even have a Google Account). The old behavior is still supported as
well.
- When you discard more then 3 blocks at a time into the trash can you
will be requested to confirm the deletion. This is to prevent
accidental deletion of blocks when you drag them over the trashcan
(and you didn’t intend to delete them).
- Make sure the Runtime Error dialog box isn’t so large that it covers
the blocks area. This could happen if the error message to be
displayed was exceedingly long.
- Provide a dialog box via (Help->Companion Information) where the
most recent Companion can be downloaded via a link and QR Code.
- ListPicker will now close an open keyboard when an item is picked.
The keyboard might otherwise have been left open if the ListPicker
filter bar feature was used.
- Update minSdk to 4. This deprecates the use of Android 1.5 (aka
Cupcake) and permits different screen sizes to be supported. This is
particularly useful for writing applications for tablets.
- Bugfixes both to the code and documentation.
Changes between nb134b and nb135 (July 5, 2014)
- Updated aimerger tool for AI2. This is a tool that lets people merge
screens from different projects to form a single project.
Documentation is at
http://appinventor.mit.edu/explore/resources/ai2-project-merger.html.
- Add “Templates”: A feature where projects can be imported from a
“repository” of projects. The initial version supports a currently
small built in template (more projects to be added in the future) as
well as importing your own templates. See the link to “App Inventor
Templates” at http://appinventor.mit.edu/explore/library.html.
- Twitter Component should now work properly again.
- Permit Companion to pass values between screens during live
development.
- Changed clock component category from “User Interface” to “Sensors”.
- Created a helper script to create new components (useful for AI
developers).
- Fixed TimePicker to show the current time by default when picker is
opened.
- Fixed DatePicker to show the current date by default when picker is
opened.
- Changes the Player component so playing is stopped when a phone call
is incoming or other audio event occurs.
- Added new events to PhoneCall Component for reacting to incoming and
outgoing phone calls.
- Made updates to ContactPicker, EmailAddressPicker and
PhoneNumberPicker to work on newer versions of Android, particularly
on Samsung devices.
- Change the button order in the Notifier components to be
yes|no|cancel.
- Minor Bugfixes and Documentation Improvements.
Changes between nb134 and nb134a (June 4, 2014)
- Update blocks editor, should improve performance and reliability
Changes between nb133 and nb134 (May 26, 2014)
- Modify the (new) DatePicker component to returns months in the range
1-12 instead of 0-11
- Documentation updates
Changes between nb132 and nb133 (May 18, 2014)
Note: This release adds new components. There is a new Companion
(Version 2.18ai2zx1) which is necessary to do incremental development
with the new components.
The new Companion is in the Google Play Store and will auto-update if
you have that feature turned on.
We are not triggering an auto-update for the emulator. To update the
emulator, do a “Hard Reset”. Once you do this the next time you start
the emulator it will update its internal copy of the Companion to the
latest version.
- WebViewer: You can now communicate with the Javascript environment
in the WebViewer by providing a string it can read
- Spinner: We added the “Spinner” component that lets you use an
Android
Spinner
- ListView: Added the ListView Component similar to the ListPicker,
but runs in the current screen
- TextToSpeech: Added a pitch and rate control.
- Sharing: Added error handling
- Added the “TimePicker” and “DatePicker” components to choose dates
and times
- Added a “File” component to permit reading and writing of files on
the device
- Added the “YandexTranslator” component that permits translation of
text strings using the Yandex service
- Button Enhancements: You can now setup events for Touch Down and
Touch Up as well as Click
- Bugfixes and Stability improvements
Changes between nb131 and nb132 (April 11, 2014)
- Add Checkbox to Camera Component to select front facing camera on
supported devices.
- In most cases the soft keyboard will no longer obscure the text box
where you are typing
- Add a volume control to the Video Player
- Fixed more links to documentation that were broken
- Added checksums to loading project files to detect changes made by
filter and proxy servers
- Added a “Sharing” Component that makes it easy to share content with
other applications
- Note: A New Companion (version 2.17ai2zx1) is required for
incremental development involving new features. This Companion is
now in the Google Play Store and people with auto-update selected
will automatically receive it. The Companion links on our setup
pages also point to the new version. We are not triggering an
auto-update to this version if you are using the Emulator, but we
will likely soon
Changes between nb130 and nb131 (March 29, 2014)
- Bugfix to the counting of block warnings (on the Blocks frame).
- Long file names are now truncated differently when displayed in the
designer.
- You can now use one account on multiple browsers (again), but a
warning is generated about the risk of damaging your projects.
Changes between nb129 and nb130 (March 24, 2014)
- Restore missing Sound Component Documentation
- Old Sessions now receive a dialog explaining they are out of date,
instead of the “red bar” they received in the last release
- Prevent or delay switching screens and projects while a project
auto-save is in process. This is part of our efforts to keep blocks
from mysteriously disappearing.
Changes between nb128 and nb129 (March 19, 2014)
- Generate a warning when more then three blocks would be deleted by
hitting backspace or delete.
Changes between nb127 and nb128 (March 16, 2014)
- Fix Help menu items in the blocks editor
- Only one browser (the most recent login) can update blocks. This is
to avoid project corruption.
Changes between nb126 and nb127 (March 11, 2014)
- Performance/Efficiency Improvement when loading projects
- Provide better error handling for rpc version mismatch (only an
issue during some MIT App Inventor updates)
- Improvements in how we start the Emulator, should permit the
Emulator to run on slower computers
Changes between nb125 and nb126 (March 10, 2014)
- Add a timeout to Emulator Companion startup
- Add scrollbars to documentation popups
- Add “Hard Reset” Connection Menu Item to reset Setup tools to
“factory default”
Changes between nb124 and nb125 (March 4, 2014)
- This release is mostly bugfixes and performance improvements in the
backend server.
Changes between nb123 and nb124 (February 26, 2014)
- Modify Auto-Update to work in locations behind a proxy. Remove
dependency on separate download server. If you can reach
ai2.appinventor.mit.edu, you should be able to take the update.
- Remove the “Dismiss” button from the Build Progress bar. People
thought it would cancel the build, but it doesn’t. The Progress bar
will now dismiss itself when the build is finished. If there is an
error in the build, then it will not auto-dismiss and the “Dismiss”
button will be shown.
- Bugfixes
Changes between nb122 and nb123 (February 12, 2014)
- Provide for Auto-Update of Companion both on Devices and in the
Emulator
- Bugfixes
Changes between nb122 and nb121 (February 8, 2014)
- Remove Support for IE (likely temporary, Windows Users should
install Chrome)
- Modified the text chooser to close the keyboard after use
- “Reset Connection” Menu now always active even if you are not
connected, useful to reset the Emulator
- Add an “About Screen” Property to Screen. Adds an “About” menu item
- Changes so the Companion is offered to Tablets from Google Play
- Make the “code” display larger in the Connect Companion Dialog
(easier to read)
- Companion can now scan QR Code of Build output and install packaged
app. Eases installation of packaged apps. Make sure you have version
2.15ai2zx1 or newer.
- Bugfixes
Changes between nb120 and nb121 (January 21, 2014)
- Fix to the Twitter Component to deal with API changes made by
Twitter
- Backend Bugfixes and Performance Improvements
- Backend now stores large files in the Google Cloud Store (should be
more reliable)
- Performance Improvements in block moving on larger projects (still
more work to do here)
- Bugfixes
- Fix to make packaged applications larger then 8Mb work (nb121a on
2/2/2014)
Changes between nb120 and nb119 (January 17, 2014)
- Significant performance and stability improvements
- Warning Message when attempting to use an old Companion App or old
Setup Tools (but you can still use them). People should upgrade
their Companion and Setup Tools if they see the warning, as the
upgrade will soon be mandatory.
Changes between nb119 and nb118 (January 9, 2014)
- Duplicate component event handlers will now be flagged as an error
(red triangle)
- Added internal caching in the buildserver, builds should run much
faster now
- Added a Property to the List Picker component to set the Title
displayed when the picker is active
- Build Failures now return a displayable error
- Added BLUETOOTH_ADMIN permission to the Bluetooth components,
needed in some phones
- Renamed the labels in the Projects and Build menus
- When you Package an App and display a QR Code, the resulting code
can be used by anyone, not just the account that did the build.
However the code expires in two hours
- Packaged Apps with unicode characters will now display them properly
- Bugfixes
Changes between nb118 and nb117 (December 17, 2013)
- Added Support for the Test Page as a simple way to determine if
correct setup software is installed
- Better handling of “reset” menu, shutdown emulator and make sure
internal state is reset.
- Improvements to better support the emulator on slower computers
- Generation QR Codes in the build menu ourselves instead of using the
deprecated Google Chart API
- Support for auto-updating the Companion including the Companion
embedded in the setup tools so they do not need to be updated as
often
- Bugfixes, particularly for the Twitter Component
Changes between nb117 and nb116 (December 3, 2013)
- Limit file name length display in the Media Upload Box
- Bugfix to permit both a phone and emulator to be used in the same
- session
- MIT AI2 Companion now available in the Google Play Store
- Change semantics for the “for-each” block to execute 0 times on a
bad
- range of values instead of causing a runtime error
- Bugfixes and documentation fixes
Changes between nb116 and nb115 (November 20, 2013)
- The aiDaemon has been renamed “aiStarter”
- Bugfixes
Changes between nb115 and nb114 (November 14, 2013)
- Officially go from “Alpha” to “Beta” release.
- Added a “Report an Issue” link to make it easy to provide feedback.
- Reflect runtime errors to the blocks editor during debugging.
- Support unicode characters in the companion.
- Code to upgrade projects when new releases come out.
- Modified internal format of project storage (added code to upgrade
projects on load).
- Global variables now have their names prefixed with the word
“global”
- Hovering over a variable name in its declaration gives a box where
you can pull down the appropriate getter and setter block for the
variable
- Updating documentation as we prepare for formal launch of AI2
- BugReporter page which appears when an internal error is detected
- UI Layout Changes
- Bugfixes
Changes between nb114 and nb113 (September 12, 2013)
Note: New Companion and Setup Tools are required. The old Companion may
work, but new features (see below) will not.
- Added support for “Do It” on blocks. If connected to the Companion
(or Emulator) you will be able to select “Do It” from the right
click menu on most blocks. The results of the “Do It” will appear in
the comment bubble.\
Note: Performing “Do It” on event defining (or procedure defining)
blocks just re-defines the event (or procedure) which isn’t
particularly interesting…
- Added support for the Companion to permit applications to switch
screens. If you have a block that switches to another screen, the
Companion can now do the switch. When the block runs, your blocks
editor will also switch.\
Currently passing and returning arguments to other screens is not
yet supported.
- Added support for Connection via USB. Note: You will need to have
the latest Setup Tools (Version 1.6) installed and the “aiDaemon”
process running. This is currently only supported for the
Macintosh, but we expect to have support for Windows and Linux
shortly.
Changes between nb112 and nb113 (August 21, 2013)
All changes in this release are bugfixes. No new Companion is required.
- Corrected a fault that can occur when a component is deleted with
the designer.
- Fix a bug that causes Screen1.Initialize to run twice in the
Companion.
- Fix a bug in the networking code that could cause blocks to be
loaded to the Companion in the wrong order to slow networks.
Changes between nb111 and nb112 (August 2, 2013)
- Spaces are removed from variable names (they only caused errors).
- More cleanup to communication with the Companion: The Companion now
updates faster and even when the blocks editor is in the “Designer.”
- Various bugfixes and interface tweaks.
Changes between nb110 and nb111 (July 24, 2013)
- The Components Panel has been moved to the right of “Viewer” when in
the designer panel. This makes it easier to add items from the UI
Palette to the Viewer mockup of the phone.
- When connected to the Companion App for incremental development,
changes now take effect even when in the Designer panel. Previously
you had to change to the Blocks panel for changes to be seen on the
connected phone or emulator.