Source Code Control

AVM allows writing an app for more than one platform using the same code base. Having single code base, reduces the testing and code maintenance efforts.

The common code base is written in XMADL. The business logic is generally written in the native language of the SDK which is different for each platform. Currently AVM supports following platforms

  • Android
  • iOS
You can use any source code control system to make it easy to share code between multiple team members. A general recommendation is to create 3 repositories (at a minimum) for your application
  • A repository for the Android project
  • A repostiory for the iOS project
  • A repository for the app-definition written in XMADL. This is common code base shared across supported platforms.

Working with Git

If you are using Git repositories, then you could create submodule inside the Android and iOS projects for the common code base. In this way, both Android and iOS will be using the same repository. Any changes done in Android project will be reflected in the iOS project as well or vice-versa. Please see more documentation on working with submodules. You can also see the use of submodules by downloading the Tutorial Source Code. (TODO - Diagram of structure)

Working with SVN

If you are using SVN repositories, svn:externals can be used to pull different parts of the same repository together in various ways. E.g. with a repository like

repo/android
repo/ios
repo/app-definition

You can introduce an “svn:externals” property on the android and ios dirs that says “app-definition url-to-repo/app-definition”. You’ll want to avoid any recursion loops here obviously.