Forum General

Collaboration in Xamarin

MyNameIsMikeMyNameIsMike GBMember

I am a newcomer to the Xamarin world, after having some experience working with Android Studio. What I want to know right from the start, is what are the options and/or best practices for collaboration working on a mobile app? I would like one person to focus on the layout (or the design) of the application, while the other one would focus on the logic. But from what I've learned so far, is that those two worlds are not always easily distinguishable in the real world.

Is it possible for two or more people to develop the same app at a time and how is this accomplished, does Xamarin offer something out-of-the-box, or is that done by organizing the team outside of the scope of what Xamarin does? I would appreciate any tips and tricks on this subject and where to start, keeping in mind I am asking as a sort of a newcomer to mobile app development.



  • SKallSKall USMember ✭✭✭✭

    Separation of concerns is a good place to start.

  • MyNameIsMikeMyNameIsMike GBMember

    Well I didn't mean I'm that much of a newcomer, just a newcomer to developing mobile applications specifically, and thus Xamarin as well.

    So let me be more specific with my question. Is there a way (and if so, what is the easiest way) for one person to become in charge of all the layout stuff (.xaml files, images etc), and for the other one to only do the business logic (e.g. the .cs files). Does it work to kind of split them up on two separate computers where one person would only tweak the design of the app, and then merge the folders back for compiling?

    Or is there a way for me to install a device emulator that would read the application from the other person's computer? That way all participants could edit files on the same person's computer, where one would only edit the layout files, and the other would write the business logic, and also all device emulators across different computers would run the same application.

    I'm sorry if my terminology is messed up, but I hope my question is more clear now.

  • KrystianKrystian USMember
    edited June 2015

    Hmm I would say that you can try out to create solution with PCL/Shared code project there's standard template in XS and XVS (in xamarin visual studio it will result in 4 projects PCL , ios, android, wp in one solution) , and with use of libraries like SQLite-net PCL version as database engine and pclstorage for working with file system (can be found in components section) you can write all business logic in PCL and then expose those functionalities through interfaces, that way your platform specific project will mostly contain UI code and PCL functionality implementations.
    So answering your question : One person can focus on PCL some one else can create layout files, activities, fragments etc..

  • SKallSKall USMember ✭✭✭✭

    If you follow MVVM pattern and abstract things as much as possible you can easily do it. The ground work is to define service interfaces and view models as the first step. For the service interfaces create mock implementations that return dummy data and that way the UI developer can get to work. Once the interface has a real implementation it will be transparent operation to replace the dummy implementation with the real one and the UI developer doesn't even need to know about it. Dependency injection works great for that purpose.

Sign In or Register to comment.