describes the solutions which exists today for developing cross-platform mobile apps, and then goes into details about using Xamarin to develop a cross platform native application for Android, iOS and Windows Phone.
לכאורה היה אפשר לעשות פרוייקט Class Library עם הלוגיקה שיהיה משותף לכולם. למעשה, פרוייקט כזה מקומפל כנגד פרופיל דוט-נט אחד, ומכיוון שכל פלטפורמה משתמשת בפרופיל שונה, לא ניתן להשתמש באותו פרוייקט לפלפורמות שונות. מה גם שלעתים צריך לצרף ספריות ספציפיות לפלטפורמה, שלא קיימות באחרות, כמו תמיכה ב-SQLite ב-WP, שקיימת אוטומטית בזמרין. לכן השיתוף נעשה על ידי שיתוף קבצי קוד פיזיים.
במקום הידור מותנה, עדיף להשתמש בטכניקות מתקדמות יותר כמו Dependency Injection או Provider design pattern.
PCL יצא בסביבות 2011. יש אפשרות להוסיף תמיכה בו ל-VS2010, והוא נתמך מראש ב-VS2012/2013
כאשר יוצרים פרוייקט PCL, צריך לבחור באיזה פרופילים הוא יתמוך. Xamarin מכניס את עצמו לרשימת האפשרויות, ואז אפשר ליצור PCL שיתמוך גם באנדרואיד ו/או iOS
ב-iOS עובדים בשיטת MVC באופן טבעי. באנדרואיד זה די דומה ל-WinForms – מאחורי כל מסך יש מחלקת Activity המשתמשת בו ומנהלת אותו
Xamarin.Forms מאפשר לכתוב ממשק משתמש משותף לכל הפלטפורמות ב-Xaml, אבל עם פקדים של זמרין
Ninja Coder מאפשר להוסיף פרוייקט, להוסיף מסך, להוסיף פלאגאין, ועוד בלחיצת כפתור אחת.
ניתן להשתמש בספריית DI אחרת, על ידי מימוש Interface של MvvmCross שמתאם אותה עם MvvmCross
חלק מהפלאגינים של MvvmCross חופפים לדברים שמסופקים על ידי Xamarin, כמו גישה למצלמה, GPS, קבצים, SQLite.