Что такое Xamarin — следует почитать отдельно. Вкратце, это платформа с идеологией .NET, позволяет писать код сразу для разных платформ — iOS, Android, Win. Меня интересовала возможность на знакомом языке (C#), написать что либо под Android.
Я сформулировал для себя учебную задачу, которая требовала решения нескольких практических вопросов. Мне надо было понять как реализовать следующие вещи, используя Xamarin (т.н. know-how):
- Понять как получить доступ или создать компонент canvas, чтобы иметь возможность произвольно рисовать;
- Научиться манипулировать несколькими страницами приложения (переключаться между ними);
- Управлять настройками приложения (сохранять, добавлять, читать);
- Ещё одна более мелкая задача — использование компонента Timer;
- Также возникла интересная задача по C#: как прочитать список свойств structure, итерировать его элементы и значения.
Я искал в Xamarin определенный комфорт и возможность использования привычной среды разработки. Всё это я здесь нашел, но к минусам можно отнести большой объем создаваемого в итоге apk под андроид.
Меньше 30 Mb для продакшина файл у меня не получился. С Debug опциями этот размер превышал 50 Mb. Аналогичное приложение, созданное в Android студии на JAVA у меня получилось чуть более 3 Mb.
При увеличении полезной нагрузки, размер архива уже не будет увеличиваться так сильно, но чтобы достичь баланса, когда полезная нагрузка сопоставима с размером включенных в архив библиотек, нужно создавать что то весьма крупное.