Не так давно, а щоб бути точнішим 2 місяці назад почалося моє знайомство з Xamarin.Forms. Мені як людині, що прийшла з Веб .NET, і з мобільних платформ використовувала лише Windows Phone і то на рівні користувача, було трохи незвично і важкувато вникати в деталі розробки під мобільні платформи типу Android та iOS.
Так склалося, що розпочали в компанії невеликий мобільний проект, вирішили вибрати Xamarin.Forms, щоб вбити двох зайців(Android and iOS) одним пострілом. Розбиратись у цій технології випало мені. Добре, що раніше мав справу з Silverlight та WPF, тож синтаксис XAML не був новинкою. Підхід розробки був вибраний MVVM, Event-based відкинув зразу, хоча повністю уникнути event-підходу не вдалося, але це нормально.
Вбити зразу двох зайців не вийшло, спочатку писав та тестував на Андроїді(телефон та таблетка), потім днів три тюнив UI для iPhone. Одне добре, функціонал працює на двох системах майже ідеально, тобто все, що написав під андроїд практично зразу запрацювало під iOS. Так, прийшлося писати різні класи(для кожної платформи) для роботи з файлами, pdf-документами, зате порадував SQLiteNet для роботи з БД, робота з WCF сервісами та підтримка async/await в PCL. Також тішить, що хоч Xamarin.Forms ще досить сира, уже є багато хороших open-source проектів, один з них XLabs. Використав його як MVVM-контейнер + багато хороших контролів та екстеншенів.
Звичайно, Forms не підходить для розробки крутих-швидких-анімаційних програм, але для бізнес-аплікацій саме то, особливо для людей, які хочуть(читай треба) швидко переключитися з web .net на mobile development.
Окремо про workflow розробки: Android простіше і швидше. Підключив девайс, чи поставив Android Player і voila, прямо з Xamarin Studio кодиш-запускаєш-правиш. Для iOS прийшлось ставити віртуальну машину з Маком, виділяти під нього 4Гб оперативної памяті, кодити в Visual Studio, а результат перевіряти на емуляторі у віртуальній машині, чи девайсі, підключеному до віртуальної машини. Нажаль. час на компіляцію і запуск великий. Дуже шкода, що немає UI Designer'a, бо фіксати UI ну дуже вже вимучує... Наразі все. Далі буде... буде більше конкретики і технічного матеріалу.
P.S: iOS набагато розумніше формує UI з XAML ніж Android. Був приємно здивований, що на підтягування затратив лише 3 дні, бо UI для Android вимучував біля 2-х тижнів.