I've been asked to create 3 differents applications even if the code is at 90% the same.
Each app will be in a different language.
The differences between those apps are : the design, sometime a page can have more entries or less, the navigation can slightly differ from an app to another.

I invite you to take a look to the PDF attached because you will understand in a second what I'm trying to achieve.

1°) Is is possible to have those files (renderers, resources) in a shared project like a SharedAndroidProject and a SharediOSProject ?
2°) If it is possible, how are managed resources : for exemple, I got an image call Menu.png which will be the same for the 3 apps. If i write the URI as follow URI="Menu.png", it will look for the Menu.png located in App2.Droid, if not find, will it look to the SharedAndroidProject/Resources/Drawable if this project is referenced by App2 ? How can I target a file that is located in SharedAndroidProject/Resources/Drawable ?
3°) What do you think of this kind of approach ?

Thank a lot to anyone who reads this. Any help would be very appreciated.
Have a good weekend !

Answers

I 've tested this solution with a custom renderer located in the SharedAndroidProject. It's working well ! The 3 apps have access to the custom renderers without neither a line of code nor a fix.
It cools because it means I won't have to dupplicate my custom renderers (as they are the same for the 3 apps)

I'll investigate on the image resource now ! If it works fine, I think my solution will be nice.

@NicolasKrier - just to answer your question about resources, if you are using Forms, you can reference an image such as logo.png.

It will look for it in these places in each project
Windows Phone - root project folder
Android - Resources/Drawable (defaults to drawable but if you put different images in the other drawable folders it uses them depending upon the resolution the project is deployed on)
iOS - Resources folder.

I like the way your thinking, noticed the same thing, I have three apps and a lot of the stuff is shared, navigation service etc. In essence we have a base framework and then you add the pages for your specific app and there's a separate project for data stuff like models, services & viewModels.

Yeah, that would work for common stuff like authentication, the apps each tend to have their own platform specific data services which wouldn't be shared , just more secure if someone starts poking about in your app for endpoints (even if encrypted).

@NicolasKrier - is it just pictures you want to share between projects? It looks like you are already sharing a lot of code between the projects anyway.

Pictures have a lot of issues in that each platform shows and handles them differently, which is why you normally need to create a large collection of images for each device. However you can share images by embedding them in a PCL.

@NicolasKrier - what exactly are you looking to share with custom renderers? The point of custom renderers is to render a control specifically for a platform. If it uses any complex logic, you can just call methods in a PCL from within the custom renderer but custom renderers are very platform specific and stay within the platform specific project.

@AdamP let me explain my situation :
I have to developp 3 app. The app will be 90% the same. But because the app must be deployed with different names and language, I need 3 different apps. The main difference is that each app have a different workflow. The 3 app may evolve in a different way.
They target different web services. I know it's possible to handle all my cases with one App (I mean one XForm core project).
It's a requirement : I was told to separate my app into 3 app. They share a lot of custom renderers (imagine a clock timer event : it will be the same in the 3 app). That's why, for maintainance reason, I need to have the shared resources, custom renderers, etc in a library.

@NicolasKrier - ok, apologies, I get you now, you have 3 separate apps but for the same platform(s).

In that case you just need to generate a separate library for each type of platform. For example on a Windows Phone app you would create a Class Library (Windows Phone) or for iOS a Class Library (iOS) project.

These projects could be shared between the platform specific project and contain your custom renderers, etc. Embedded Resource for any images etc.

Use a PCL for anything you can share between different platforms.

Now that I understand a bit better, is there any particular type of file you are having trouble sharing?

For now, I'm investigating why my android app doesn't launch but the ios works. In the meantime I have a lot of other stuff to do so I don't hae enough time to debug deeper this problem.

Maybe it isn't tied to the shared project resource. Maybe it does. I will keep you updated on this !
Let me a week or two and I should be able to provide a PoC project and screenshots. (I'm sure it will be helpfull to somebody).