Custom Package Name for Application and Activities

I recently started using MIT App Inventor and while I am not someone who is learning to program I find it a pleasure to use.

However I have need to set a custom package for my applications and have not seen many suggestions short of hacking the .apk which is nonsense imho.
As a long time Java developer I decided to add the functionality to a local copy of ai2 and this is me sharing it forward.

The changes allow you to always set a package when you:

  1. Create new Project
  2. Copy Project via "Save Project as"
  3. Import Project from computer via *.aia files
    This patch affects both client and servlet side of the code and I have tried to make it easy to maintain. Sorry but I only speak English as such I would expect others to add the required translations.

NOTE: The system expects the last octet of the package to be the Project_Name so remember to add that to what you type (I thought that a better option that appending it and giving you results you cant see). Removing the Project Name octet is just how the system works and is not part of this patch.

Example Usage: Project Name "Chat"
packageName: com.example.Chat
activity: com.example.Screen1
package: com.example

I've also added a Dark Mode theme I call StaryNight to help save our eyes :smile:, Access in Settings->Enable DarkMode

Screenshot from 2022-12-03 03-41-38
Screenshot from 2022-12-03 03-42-48


Screenshot from 2022-12-03 06-25-07
Screenshot from 2022-12-03 06-57-22

Dark Mode
Screenshot from 2022-11-28 06-43-56



6 Likes

image
These white dots is generated dynamicly?

Yes they are, it uses the light weight particles.js library demo here

Same as in AI2Offline

1 Like

I will get gcloud setup when I have a little time (maybe tonight) and get a copy online I have no where to host a build server though.

Update I had a bug in there that was making thing strange when import, I missed appending ".Screen1" to build qualifiedFormName
All fixed in repo.
This is how the properties should look
project.properties
manifest

is it possible to add a screen1 property of package name, as other properties in property panel. Not set when creating project.

Its very possible its the way AI2Offline does it, however that implementation does not make the activities and such have the package as well.
I will soon be making a branch to play with adding some more events and methods to Screen(Form) I'll probably take a look at that implementation then.

These changes are now available in AI2Offline-4.6.3.