What happens in the background of MIT app inventor compile?

I was just making an app and just compiled it. Just out of curiosity, I had this question:

What happens in the background of MIT app Inventor when we click compile? How does it change all our blocks, components etc into a working APK? (Just wanted to know the procedure, not the code as I'm still a student)

If this is a secret then fine, I have no problems, just asked because I think app inventor is open-source... :slight_smile:

Also I had some other questions (that might not fix into this topic):

With the nb187 Release , can we make apps more than the earlier 5MB Limit by default?
Because Google Play says that we can now uploads app upto 150MB in .aab format only.



1 Like

Thanks for that, I did search the community but actually did not find it out (maybe due to wrong search terms).


1 Like

Do you mean something like this? Found this after some searching on the internet. There was once an image where the process of compiling was also explained in detail but i can not find that any more. I think i saw that in the past on the Google Groups community we had then.


And you could read this


Exactly this was what I was looking for....Thanks @Peter.

Unfortunately that figure is slightly wrong. When you elect to compile your app, the web environments generates the YAIL from the design and blocks for each screen and writes that to the server. The server then packages all of the sources and assets into a zip file that is sent to the build infrastructure. The web frontend never talks directly to the build servers.

There are 15 build servers that sit behind a frontend that assigns the jobs round robin as requests come in. As the build progresses, they report progress back to the app engine server, which the front end occassionally polls for status updates. Once the build has been completed by the build server, it sends the final results (apk or aab) to the App Engine server, which then generates a URL for downloading the file (either via the button or the QR code).

There's a bunch of analysis that occurs in the build server in order to generate the app's manifest and include appropriate dependencies. Some of that logic is detailed in the written document that @Peter linked, but it also gets fairly complicated.


Thanks @ewpatton sir, I got the process on how all that works.

This topic was automatically closed 7 days after the last reply. New replies are no longer allowed.