Part 2 - Architecture | xamarin
The page explains that cross-platform apps should maximize code sharing through encapsulation, separation of responsibilities, and polymorphism, then maps those ideas to common application layers and mobile software patterns.