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