Когда использовать Xamarin.Forms vs Xamarin Native?

Мне нужно сделать выбор между приложениями Xamarin.Forms vs Xamarin.

Я хочу пойти с Xamarin.Forms, так как код пользовательского интерфейса также будет использоваться.

Итак, каковы недостатки Xamarin.Forms по сравнению с Native.

Помимо пунктов, показанных на веб-сайте Xamarin, вы также должны учитывать:

История вашей команды

Кто-нибудь из вашей команды имеет предыдущий опыт кодирования изначально для Android или iOS (с использованием Java или Obj-C / Swift)? Этот опыт повторно используется в родном Xamarin, но им придется изучить другую платформу для кодирования в Forms.

То же самое верно, если они ничего не знают о iOS / Android, но знают некоторые xaml. Конечно, Xamarin.Forms отличается от WPF / Silverlight, но знание xaml помогло мне использовать Forms.

Представление

У Xamarin Forms все еще есть некоторые проблемы, такие как время инициализации. Вы должны подумать, будет ли это проблемой для вашего конечного пользователя. Я бы не стал ждать некоторое время для приложения панели инструментов, которое я использую время от времени, чтобы открыть, но я был бы зол, если бы это случилось с приложением для обмена сообщениями.

Время до доставки

Поскольку совместное использование кода больше при использовании форм, вы можете ожидать более быстрое время доставки.

Сложность вашего приложения

Учитывая предыдущий момент, используя Forms, вы можете наткнуться на некоторую ошибку пробной остановки (это совсем новая технология), которая приведет к нулевому увеличению времени. Прежде чем выбирать, рассмотрите сложность вашего приложения.

Xamarin.Forms

Pros

  • Создайте один пользовательский интерфейс для всех платформ
  • Используйте базовые компоненты, доступные на всех платформах (например, кнопки, текстовые поля, спиннеры и т. Д.).
  • Не нужно изучать все собственные интерфейсы пользовательского интерфейса.
  • Быстрый кросс-платформенный процесс разработки
  • Пользовательские собственные рендереры дают вам возможность настраивать внешний вид и ощущение контроля

Cons

  • Это все еще новая структура и все еще содержит ошибки
  • В частности, Windows RT еще не стабилен
  • Это иногда медленнее, чем прямой доступ к собственным элементам управления
  • Пользовательские собственные средства визуализации имеют границы и плохо документированы

Xamarin.Android, Xamarin.iOS, Windows Phone, Windows RT

Pros

  • Создайте один пользовательский интерфейс на платформу
  • Легкая возможность настройки специфичных для платформы функций и компонентов пользовательского интерфейса
  • Получите максимум от своего пользовательского интерфейса

Cons

  • Процесс разработки кросс-платформы намного медленнее
  • Вам необходимо изучить все собственные интерфейсы пользовательского интерфейса
  • Вы можете привести к дублированию кода (поскольку вы описываете почти тот же пользовательский интерфейс тремя различными способами)

В дополнение к этому Xamarin говорит на https://xamarin.com/forms :

Какой подход Xamarin лучше всего подходит для вашего приложения?

Xamarin.Forms лучше всего подходит для:

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

Xamarin.iOS и Xamarin.Android лучше всего подходят для:

  • Приложения, требующие специализированных взаимодействий
  • Приложения с полированным дизайном
  • Приложения, которые используют многие API-интерфейсы платформы
  • Приложения, в которых пользовательский интерфейс более важен, чем совместное использование кода.

С веб-сайта Xamarin

Xamarin.Forms лучше всего подходит для:

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

Xamarin.iOS и Xamarin.Android лучше всего подходят для:

  • Приложения, требующие специализированных взаимодействий

  • Приложения с полированным дизайном

  • Приложения, которые используют многие API-интерфейсы платформы

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

Давайте будем гением компьютера.