Wish Source control management (SCM)


Active Member
Licensed User
I'm not sure if someone has already wished this, but can't hurt to wish it again.

B4A really needs integrated Git for source control management. It's basically one of those major things that B4A and B4J still lacks.

In B4A way, simple as possible. Few options to create new Git repository and basic commands such as commit, push, pull, branch, etc.
It doesn't need to be versatile as it is in AndroidStudio, just a basics and it would be great addition to the B4A and B4J.


Well-Known Member
Licensed User
i think windows integration for git or svn is enough. it have gui tools or its in windows explorer context menu. also it show icons for the state in explorer window.


Well-Known Member
Licensed User
With the exception of the layout files, the project is made of text files.
You have a json tool that can convert the layout files between B4A and B4i, so it seems their content can be expressed as json also.

Have you considered to change B4X to natively use json for the layouts instead of a binary format?

(From a version control perspective, I'd love to be able to understand the layout diffs.)


Staff member
Licensed User
Have you considered to change B4X to natively use json for the layouts instead of a binary format?
Yes, it was considered and it can still happen at some point. If a json format will be added then it will need to be converted to a binary file during compilation as the binary file is more efficient. This adds more complexity to the compilation process. I'm not sure that it is worth it as most developers doesn't need it.

It should for be simple for developers who need it to create a small tool or batch file that converts all the layouts to json files and back.


Well-Known Member
Licensed User
To make it easier both for Erel and we developers, I suggest, IDE open the .bal file OK, and whenever the designer is saved, it saves a json copy too.
This way IDE do not have to convert json to bal and we can use version control with the json.

This assumes that we are NOT changing the json and expecting IDE will read it.