Multiple people programming on 1 program

This is my first time using this software, and I'm still not the best at programming. At our school, we are looking to build an app for the students to use to help guide them during enrichment/intervention time. As we all are doing the remote learning business, I was wondering if there is a way with settings on a project that an application can be shared with multiple programmers. If Student A starts a project, can Student B work on it at a different time? If this is possible, how is it done? Thank you for your time.

This is a difficult question to answer Eric. MIT has evaluated ways to do something like this but has not yet implemented them. There are some simple ways to 'share' the code and collaborate.

Here is a recent discussion Make apps with more people

  • If the code.appinventor server (instead of the main AI server) is used to build THEProject, multiple students can access the same Project if they share the Project Entry code. This server can be used without an eMail log in; it requires a pass code. If the students share the pass code, all can access the Project but NOT AT THE SAME TIME. Do you know what the code server is?

  • A student can create a Project aia and share the aia with the other student. When he/she is finished modifying the Project, he/she in turn shares it with 'other'.

Doing this like this could work but could result in 'code wars' ... one student changing another's coding intentionally or unintendedly and causing discord that would need to be resolved.

  • Each student work on part of the Project and later merge the parts. For example, a Project with multiple Screens, each work on a different screen. Coordinating and getting all team buy in will be difficult and require students to know how to create the aia, possibly how to use the backpack tool, use the Project Merger tool (that is complex)

Others may have more ideas (watch this space for others comments and opinions). If any of this is appealing, let us know and someone could tell you how to structure the work flow. I suspect none of these options is without warts. All require more than a basic understanding of how App Inventor works.

Regards,
Steve

The github.com web site is a great site for collaboratively sharing code and organizing it into releases.

Believe it or not, both Design features (arrangements, their components, and their blocks) can be copied (Ctrl-C) and pasted into text documents for later pasting into Screens.

Likewise, the Blocks Editor lets you download procedures, event blocks, and global variables (did I miss something?) into .png files that can be assigned file names for storage in a github shared project. (Do NOT screen scrape or edit the blocks. That loses the paste ability into the Blocks Editor.)

For IOT projects, a github project is a good place to share the Arduino code with the AI2 coders, to reconcile message formats and delimiter usage.

Artists could save their products in the github project, for integration into the project, after vetting for size and fit to Image component and Sprite component capacities.

Exported project .aia files could be saved by version, a vital backup and recovery concern,
and could be published by the project lead to the team as the basis for their branch development.

Separate screens are expensive in terms of side effects (loss of BlueTooth connections, need to pass data through TinyDB across screens, duplication of code).

Appoint a project integrator for each team to accept updated procedures, art, events, and design elements from the team members and to release the next .aia export version to their team. Pick some one who sleeps with his laptop under his pillow.

Sample github project:

Each github project also has a weblog section, valuable for a place to share design ideas, discussions, release announcements, and documentation.

The easiest way is with a work schedule and one shared Google account for several people.

(added to FAQ)