Since MIT took over the development and operation of App Inventor from Google, our primary public service has been provided by code running on Google’s App Engine platform (GAE). GAE is a proprietary platform; our public code required it to run. Google provides a “development” server that permits a developer to run GAE apps locally on their own computer. This is likely how most of you have been developing and testing your work with the App Inventor source.
However, for a number of reasons, we have been migrating our environment off of GAE. Our latest code changes permit us to run MIT App Inventor in a Kubernetes cluster. For the last few months we have been migrating over to such a cluster using a PostgreSQL1 back-end database instead of Google’s proprietary data store.
The code to run in Kubernetes has not been part of our open source. However, that is about to change. Pull Request #4077 on GitHub integrates the needed changes into our system. It also removes support for GAE.
To continue to develop with MIT App Inventor, you no longer will use the Google provided development server. Instead, the invocation:
ant devserver
will run a development server for you. However, you will need to provide your own PostgreSQL server. By default this server should run on localhost and have a database named appinventor with a password of appinventor. You can change this in the file name appinventor.ini.2
Settings that used to go into appengine-web.xml now go into appinventor.ini which uses the “INI” file format.
You are welcome to peruse the pull request to see how the new code works. Note: we are going to update the README.md file to include information on how to develop with this new code base, but it isn’t there yet.
You will not need to setup an S3 bucket to do development, or even to run your own production server. If no bucket is defined, assets are stored in the PostgreSQL database itself, which isn’t a problem with only a few thousand users.
Although the pull request consists of a number of commits, like all (or at least most) of our system changes, when merged into the sources, it will appear as one commit, with all the changes “squashed” down.
So a short-term hedge you can do once we merge the pull request is to use git revert to revert that commit, and you should then be able to use Google’s development server. However, we are making no commitments to keep this as a viable option. At some point in the future we may make a change that causes this approach to not work.
We have tested ant devserver on Linux and macOS. We have not tested on Windows.
You are welcome to ask questions here or provide suggestions!
-Jeff
Footnotes
1 Along with Amazon Web Services’ S3 storage system for assets
2 ant image builds a docker image which can be run in docker, with some configuration, or in a Kubernetes cluster.