Xamarin Source Code Management

The mobile application development environment of today presents quite a challenge with multiple platforms like iOS, Android and Windows Phone all competing for our attention. Continue reading to determine how to simplify your cross-platform mobile application development needs.

A little Mobile History

at the beginning of the 2000's, a mobile application developer could choose Java for Nokia Symbian devices, or the .NET compact framework for Windows Mobile devices. If you were doing line of business applications, you could depend on the Microsoft operating system; it was the standard in mobile line-of-business application development at the time.

If you wanted to be more consumer-oriented, you could go with Nokia, because Nokia had the first store for mobile applications in the world, the Nokia OVI store. Consumers had a place to go where they could buy applications. You only needed to learn Java and J2EE, develop your app and go to the OVI store to market your app.

All this changed in 2007 with the introduction of the original iPhone, a metal and glass device, with a full-body touch screen and no stylus. You only needed your fingers to interact with an engaging, fast and fluid user interface, using apps not seen before. Apple had reinvented the mobile experience and the iPhone became the model that others would aspire to.

But the IPhone's dominance would not remain unchallenged. Google started to work on an alternative to the iPhone, a new device that was Linux based and open, allowing for greater customization, whereas Apple continued to limit access by keeping their system “closed”. Android was presented to the public on September, 2008.

As Apple and Google jockeyed for market share, Microsoft debuted its own new Windows Mobile v7 device, a device with the same interface as Windows mobile 6.X and that still required a stylus. It seemed as if Microsoft took no notice of Apple or Google; that is, until 2010, when Microsoft introduced the new Windows Phone series to the world. The new Windows Phone sported a revamped interface with “Live tiles”, a few on-screen widgets capable of showing information about an app without actually opening one. It was based on a minimalist design philosophy inspired by the Bauhaus school of architecture. Microsoft's design would usher in a new way of thinking about mobile user interfaces.

Mobile Application Development Today

There are at least three mobile platforms worth considering:

  • iOS: for apple devices like iPhone and iPad.
  • Android: powering a huge range of devices from many manufacturers, from little watches to tablets through to many different phones.
  • Windows Phone: powering phones from 3 to 6 inches and Windows RT powering ARM tablets.

As a consumer, you may be delighted at the options available. There are many different devices and many different price points. As a developer, you may feel overwhelmed. There is so much to learn yet so little time.

Each platform has its own unique set of requirements:

  • iOS: develop on Mac; using the XCode IDE and Objective-C or the new Swift language.
  • Android: develop on Mac/Windows/Linux; using various IDEs including (Google's) Android Studio, Eclipse, IntelliJ and / or Netbeans; and Java or C as a programming language.
  • Windows/Windows Phone: develop only on Windows; using the Visual Studio IDE and the Visual Basic.NET, C# or C++ languages.

If you're considering developing a mobile app and want to target as wide an audience as possible, consider this IDC report (Q2 2014 IDC) that takes a look at the mobile market's fragmentation: you can access 84.7% of the market through Android; 11.7% with iOS; and 2.5% via Windows Phone.

If you decide to only target Android, you will be miss out on all the potential iOS and Windows Phone customers.

If you do decide to go cross-platform, you will need to learn three different platforms; and develop three different apps! Considering the complexity of a typical app, this is a daunting task.


Miguel de Icaza had the same impression: the existing state of cross-platform application development was very difficult. Miguel de Icaza and Nat Friedman are the founders of Xamarin. Using the C# and .NET framework specification as a basis, they developed a virtual machine for Android and a cross compiler for iOS; in this way developers could leverage their existing .NET skills to develop apps for the three main mobile platforms: Android, iOS and Windows Phone.

Xamarin also developed their own IDE: Xamarin Studio; available for Mac OSX and Windows. In both platforms you can use Xamarin Studio to develop iOS and Android apps. If you want to develop Windows Phone apps, you will need to use the Xamarin for Visual Studio version.

Plastic SCM

An important consideration when developing software is source code management (SCM). In the-cross platform world, there will be people developing with Mac and Xamarin Studio; Windows and Visual Studio; and Windows with Xamarin Studio. You will need an easy to use, yet powerful solution that spans all platforms. There are a number of SCMs capable for doing this; Plastic SCM being one of those best suited for cross-platform development.

Plastic SCM was developed using Mono; the same cross-platform technology Xamarin is based on (Mono was also developed by Miguel de Icaza). Because Plastic SCM is cross-platform, you will always have access to the same technology; regardless of which development platform you are actually working on.

Part of this technology is Transparent SCM. Transparent SCM works quietly in the background; taking care of all your code management needs so you can focus on software development and not worry about code management.

To start using Plastic SCM (and Transparent SCM), install the Plastic SCM client on your machine and configure a new workspace: go to the Repositories & Workspaces section and select the Workspaces option. In the tab that is opened, click the Create new workspace button; this will display the New workspace window:


Provide a workspace name, the path on disk and select the default repository or create a new one. Clicking OK returns you to the Plastic SCM Workspaces tab, with the new workspace created.

Xamarin And Plastic SCM

Launch Xamarin Studio and create a new Xamarin. Forms project in the same file path we used earlier for our Workspace:


Click OK and wait for Xamarin Studio to finish creating the solution. (Depending on the version of Xamarin Studio you are using, you may only have native support for Android projects; one can use Visual Studio at a later time to add other projects). Return to Plastic SCM and notice that all the new files are now in the Workspace folder. These new files are not yet included in the SCM though; to do so, right-click in the main folder and select the checkin option from the popup menu.


All files from the new solution are now listed under the Added and private branch; we only need to check them, write a descriptive comment and press the Checkin button in the upper left side of the window to add our project to the SCM repository.

Similarly, we can add in any needed iOS and Windows Phone project components.

Once we do a checkin of the main folder, we will see all the added and changed files in the project workspace:


That's all there is to it; we can now continue working on our projects; without worrying about source code management. Transparent SCM will manage our code changes; track the movement of files and folders; and diff merges on files using Plastic SCM's similarity detection algorithm.

All this was accomplished without having to install plugins, or being restricted to only one specific IDE.

If you would like to learn more about Plastic SCM, you can do so here.