Коли використовувати Xamarin.Forms проти Xamarin Native? [зачинено]


159

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

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

Отже, які технічні позитиви та негативи використання Xamarin.Forms над Xamarin Native?


1
Подивіться на «Добре та погано» мобільного розвитку Xamarin, щоб отримати відмінне обговорення станом на січень 2017 р.
Олівер,

1
Підсумок ... Просто вирушайте за Рідну! Я розповідаю про це на основі власного досвіду. Я переписав додаток форм для Native.
Tejasvi Hegde

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, безумовно, допомогло мені використовувати Forms.

Продуктивність

Форми Xamarin все ще мають деякі проблеми, такі як час ініціалізації. Ви повинні розглянути, чи це буде проблемою для вашого кінцевого користувача. Я б не намагався почекати деякий час на приладну панель програми, яку я час від часу використовую для відкриття, але я буду злий, якщо те саме трапилося з додатком для обміну повідомленнями.

Час до доставки

Оскільки обмін кодом є більшим при використанні форм, ви можете очікувати швидшого часу доставки.

Складність програми

Враховуючи попередній пункт, використовуючи Forms, ви можете натрапити на якийсь помилка пробкового руху (це все-таки зовсім нова технологія), яка приведе до нуля часу. Подумайте про складність вашої програми перед тим, як вибрати.


2
Я додам до цього, якщо ви розраховуєте на те, що у вас є гарний додаток, ви отримаєте багато користувацьких інтерфейсів з кодом Xamarin Native для кожної платформи
Роман Назаревич

2
ця відповідь та коментар вище занадто старі. Продуктивність не є великою проблемою сьогодні, якщо ви ввімкнули AOT. щодо гарного вигляду додаток у коментарі також не відповідає дійсності. xamarin вдосконалюється, і ви можете легко досягти гарних програм.
batmaci

Xamarin Forms не значно покращився з точки зору того, щоб легко отримати гарний інтерфейс користувача. Xamarin.Shell зробить великі вдосконалення в цьому плані, але, як і раніше, Xamarin все ще важко отримати щось віддалено привабливе, не записуючи спеціальні компоненти для кожної платформи.
Олександр

176

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 для платформи
  • Програми, у яких користувацький інтерфейс важливіший, ніж обмін кодом

Що стосується "додатків, які вимагають мало функціональних можливостей платформи", чи є приклади, щоб зрозуміти, про які функції ми говоримо?
NS.X.

Невелика функціональність платформи означає, що ви виконуєте прив'язку даних та інші ділові правила насамперед як додаток. Не багато власного малювання або намагання зробити все піксельне ідеальним. Якщо у вас все в порядку із загальною схемою, яка чутлива, то Xamarin.Forms добре підходить.
Jason Short

Найкраща відповідь на мій погляд. Це очистило це для мене: "Xamarin.Forms: Створити один інтерфейс для всіх платформ" та "Xamarin.iOS, Xamarin.Android: Створити один інтерфейс користувача на платформу". Дякую!
Тадей

1
@Dibzmania Я ніколи не говорив, що він підходить тільки для прототипів та основних програм. Якщо ви хочете мати крос-платформу додаток з майже однаковим інтерфейсом на кожній платформі, то Xamarin.Forms чудово. Якщо ви хочете мати користувальницький інтерфейс користувача на платформі, то, ймовірно, ви не отримаєте користі від Xamarin.Forms, а замість цього слід використовувати рідні бібліотеки інтерфейсу.
Восі

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 досі використовує нативні елементи управління за замовчуванням.
Шон Андерсон
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.