Hi, I’m currently working in a new app using the amazing MVVMCross framework and Xamarin. The objective is to share the largest quantity of code amongst all platform specific projects. I’m currently aiming Windows Phone 7.5, Windows 8, Android and iOS.
You have some different ways to organize your solution in order to share code. For instance, you can use file linking or Portable Class Libraries (if you want to dive deeper please visit this link.
MvvmCross encourages users to use PCL (Portable Class Library) although its main dev, Stuart Lodge, does not force anyone to follow this path if they don’t want to.
In my humble opinion, PCL feels like the most natural way of sharing code as it’s pretty clear that the main purpose for the PCL creation was precisely that.
Unfortunately, there has been some issues when trying to reference PCLs from android and iOS projects for a while and some workarounds have been moving around us to cope with it. Finally, it seems that Xamarin has make Android and iOS projects fully compatible with PCLs so that’s not a problem anymore.
This is really great because you can finally embrace the whole power of the PCL and use it in your solutions. On top of that, if you want to use Async/Await or HttpClient you can download some Nuget Packages that will give you support for that in your PCLs and in your Windows phone 7.5 libraries.