Когда использовать Xamarin.Forms против Xamarin Native? [закрыто]

160

Мне нужно принять решение между использованием Xamarin.Forms и Xamarin native для разработки приложения.

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

Итак, каковы технические плюсы и минусы использования Xamarin.Forms поверх Xamarin Native?

Аджай Кумар
источник
1
Взгляните на «Хорошие и плохие мобильные разработки Xamarin» для отличного обсуждения с января 2017 года.
Оливер
1
Итог ... Просто иди на родной! Я говорю это на основе своего собственного опыта. Я переписал приложение формы для Native.
Техасви Хегде
2
Комментарии 2015 года больше не отражают реальность форм Xamarin. Он прошел долгий путь и, похоже, взорвался после того, как .NET Core \ Standard повзрослел.
Шон Андерсон
Этот вопрос должен быть вновь открыт. Ему уже 4 года, и в рамках Xamarin.Forms произошли огромные разработки, позволяющие разрабатывать корпоративные приложения.
Джеймс

Ответы:

144

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

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

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

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

Производительность

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

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

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

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

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

Уильям Барбоза
источник
2
Я добавлю к этому, если вы ожидаете, что у вас будет
красивое
2
этот ответ и комментарий выше слишком стар. Производительность не является большой проблемой сегодня, если вы включите AOT. Относительно хорошо выглядящего приложения в комментарии тоже не соответствует действительности. Улучшены формы xamarin, и вы можете легко создавать красивые приложения.
Batmaci
Форма Xamarin не сильно улучшилась с точки зрения легкого получения привлекательного пользовательского интерфейса. Xamarin.Shell внесет существенные улучшения в этом отношении, но на данный момент Xamarin по-прежнему сложно получить что-либо привлекательное для удаленного пользователя без написания пользовательских компонентов для каждой платформы.
Александр,
176

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 для конкретной платформы
  • Приложения, где пользовательский интерфейс важнее, чем совместное использование кода
Wosi
источник
Что касается «приложений, которые требуют небольшой функциональности, специфичной для платформы», есть ли примеры, чтобы понять, о каких функциях мы говорим?
NS.X.
Небольшая функциональность платформы означает, что вы делаете привязку данных и другие бизнес-правила в основном как приложение. Не много нестандартных рисунков или попыток сделать все идеально. Если вы согласны с общим макетом, который отзывчив, то Xamarin.Forms подойдет.
Джейсон Шорт
Лучший ответ на мой взгляд. Это прояснило для меня: «Xamarin.Forms: создать один пользовательский интерфейс для всех платформ» и «Xamarin.iOS, Xamarin.Android: создать один пользовательский интерфейс для каждой платформы». Спасибо!
Тадей
1
@Dibzmania Я никогда не говорил, что он подходит только для прототипов и базовых приложений. Если вы хотите, чтобы на каждой платформе было кросс-платформенное приложение с почти идентичным пользовательским интерфейсом, тогда Xamarin.Forms отлично подходит. Если вы хотите иметь пользовательский интерфейс для каждой платформы, вы, вероятно, не воспользуетесь Xamarin.Forms и вместо этого вам следует использовать собственные библиотеки UI.
Wosi
1
Я думаю, что эта статья Натана Уильямса полезна: arctouch.com/blog/xamarin-forms-xamarin-native
Alt-WN
44

С веб-сайта Xamarin

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

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

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

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

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

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

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

Гильерме Торрес Кастро
источник
1
Этот ответ устарел / старый. Используйте формы с Призмой. Приятный опыт. Я один разработчик, создающий огромное приложение, и я очень продуктивен, и мое приложение просто работает на все. Если вам нужны потрясающе выглядящие приложения, есть различные сторонние приложения, такие как Grial UI Kit (посмотрите их бесплатный предварительный просмотр XAML). Помните, что Xamarin Forms по-прежнему использует собственные элементы управления по умолчанию.
Шон Андерсон