Когда использовать 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-интерфейсы для платформы

  • Приложения, в которых пользовательский интерфейс более важен, чем совместное использование кода