Когда использовать Xamarin.Forms vs Xamarin Native?
Мне нужно сделать выбор между Xamarin.Forms и родными приложениями Xamarin.
Я хочу пойти с Xamarin.Forms, так как код пользовательского интерфейса также будет доступен.
Итак, каковы недостатки Xamarin.Forms по сравнению с Native.
Ответы
Ответ 1
Помимо баллов, показанных на веб-сайте Xamarin, вы также должны учитывать следующее:
Ваш командный фон
Кто-нибудь в вашей команде уже имел опыт написания кода для Android или iOS (используя Java или Obj-C/Swift)? Этот опыт используется в родном Xamarin, но им придется изучить другую платформу для кодирования в Forms.
То же самое верно, если они ничего не знают об iOS/Android, но знают немного XAML. Конечно, Xamarin.Forms отличаются от WPF/Silverlight, но знание XAML наверняка помогло мне использовать формы.
Производительность
У форм Xamarin все еще есть некоторые проблемы, такие как время инициализации. Вы должны подумать, будет ли это проблемой для вашего конечного пользователя. Я не потрудился бы подождать некоторое время, чтобы открыть приложение панели инструментов, которое я использую время от времени, но я бы разозлился, если бы то же самое случилось с приложением для обмена сообщениями.
Время до доставки
Поскольку общий доступ к коду при использовании форм больше, вы можете ожидать более быстрого времени доставки.
Сложность вашего приложения
Принимая во внимание предыдущий пункт, используя формы, вы можете наткнуться на какую-то ошибку show stoppper (в конце концов, это очень новая технология), которая обнулит выигрыш времени. Рассмотрите сложность вашего приложения, прежде чем выбрать.
Ответ 2
Xamarin.Forms
Доводы
- Создайте один интерфейс для всех платформ.
- Используйте базовые компоненты, доступные на всех платформах (например, кнопки, текстовые поля, прядильники и т.д.).
- Не нужно изучать все собственные интерфейсы пользовательского интерфейса.
- Быстрый процесс разработки кросс-платформы
- Пользовательские собственные средства визуализации дают вам возможность настраивать внешний вид и ощущение элементов управления.
против
- Это еще новая структура и все еще содержит ошибки
- В частности, Windows RT еще не стабилен.
- Он иногда медленнее, чем прямой доступ к собственным элементам управления.
- Пользовательские собственные средства визуализации имеют границы и плохо документированы.
Xamarin.Android, Xamarin.iOS, Windows Phone, Windows RT
Доводы
- Создайте один пользовательский интерфейс на платформе
- Легкая возможность настройки специфичных для платформы функций и компонентов пользовательского интерфейса.
- Получите максимум от своего пользовательского интерфейса
против
- Процесс разработки кросс-платформы намного медленнее
- Вам необходимо изучить все базовые интерфейсы пользовательского интерфейса.
- Возможно, вы получите дубликат кода (поскольку вы описываете почти тот же пользовательский интерфейс тремя различными способами)
В дополнение к тому, что Xamarin говорит на https://xamarin.com/forms:
Какой подход Xamarin лучше всего подходит для вашего приложения?
Xamarin.Forms лучше всего подходит для:
- Приложения для ввода данных
- Прототипы и доказательства концепции
- Приложения, для которых требуется небольшая функциональность для платформы
- Приложения, в которых совместное использование кода важнее пользовательского интерфейса
Xamarin.iOS и Xamarin.Android лучше всего подходят для:
- Приложения, требующие специализированных взаимодействий
- Приложения с высокополированным дизайном
- Приложения, которые используют многие API-интерфейсы для платформы.
- Приложения, в которых пользовательский интерфейс более важен, чем совместное использование кода
Ответ 3
Из сайта Xamarin
Xamarin.Forms лучше всего подходит для:
- Приложения для ввода данных
- Прототипы и доказательства концепции
- Приложения, для которых требуется небольшая функциональность для платформы
- Приложения, в которых совместное использование кода важнее пользовательского интерфейса
Xamarin.iOS и Xamarin.Android лучше всего подходят для:
-
Приложения, требующие специализированных взаимодействий
-
Приложения с высокополированным дизайном
-
Приложения, которые используют многие API-интерфейсы для платформы
-
Приложения, в которых пользовательский интерфейс более важен, чем совместное использование кода