Maybe I am missing something wonderful about them but every example I see from Xamarin Forms is using a Shared Project. I have never found a solid reason to use a shared project, putting compiler directives through the code for each platform just seems like it will lead to hard to maintain code.
PCL's have been really easy and great for containing code. To me shared projects have no purpose other than really quick demo code but even still PCL's work with a little bit of DI doesn't make things particularly complex, especially with XF's inbuilt Dependency Service.
The question is, why does anyone use these project types, why does Xamarin keep building examples in them, which means all newcomers to XF start to use them? I honestly have never seen a reason in XF to use a shared project.
But I am ready to have my eyes opened in case I missed something with Shared Projects.