Подтвердить что ты не робот

Должен ли я выбрать родной Xamarin или Xamarin.Forms для существующего приложения для Android?

У нас есть приложение для Android и мы хотим его воссоздать для кросс-платформы.

Каковы факты за или против родства и форм Хамарина?

Преимущество native будет, мы могли бы повторно использовать все xml-макеты, пока мы должны воссоздать iOS-представление в XAML или XIB?

Есть ли что-то, что действительно является блокировщиком?

4b9b3361

Ответ 1

Я буду комментировать на основе ответа Гиорги с некоторым фактическим пониманием и обратиться к скопированным пунктам:

Это резюме опыта, накопленного за последние 6 месяцев:

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

  • Приложения, для которых требуется небольшая функциональность для платформы
    • Неправильно. С помощью DI вы можете использовать любые функции устройства, которые вы, возможно, захотите. Посмотрите XLabs на GitHub, если вы сомневаетесь в этом.
  • Приложения, в которых совместное использование кода важнее пользовательского интерфейса
    • На самом деле это глупость. Вы можете создавать собственные средства визуализации для представления элементов управления каждой платформы так, как вы хотите. Я также написал более сложные средства визуализации для пользовательских элементов управления, таких как SideDrawer. В андроиде я было сделано через 2 дня, iOS около 2 недель (рендерер для Android был всего лишь оболочкой для собственного управления).
  • Разработчики, удобные с XAML
    • ну да и любой, кто пользуется удобным развитием пользовательского интерфейса. Имейте в виду, что есть кривая обучения с xaml (которую я уже знал в то время, когда я начал с разработки WPF). Но из того, что я видел, это не то, что отличается от андроида.

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

  • Приложения с взаимодействиями, требующими собственного поведения
    • В то время как взламывание вашего решения происходит быстрее, вы скорее можете сделать это довольно быстро, если вы приобретете хорошие элементы управления/знаете правильную собственную реализацию и зеркалируете ее на С#, поскольку API в С# очень похож на собственный.
  • Приложения, которые используют многие API-интерфейсы для платформы
    • Не знаю, почему Xamarin делает антирекламу против форм. До сих пор у меня было мало проблем.
  • Приложения, в которых пользовательский интерфейс более важен, чем Совместное использование кода
    • Возможно, это правда, но также сложнее поддерживать функциональность интерфейса пользователя, и вам понадобится больше рабочей силы.

Что нужно учитывать о формах:

  • Формы, кажется, стабилизируются на данный момент, и я уверен, что Microsoft сделает все возможное, чтобы превратить ее в надежный и надежный продукт (иногда проблемы с созданием были кошмаром, но это стало лучше времени)

  • XAML для Xamarin менее развит по сравнению с WPF XAML, хотя и очень похож. Однако последние обновления nuget обеспечивают зеркальную функциональность с впечатляющей скоростью. Подавляющее большинство функций, которые вы ожидаете и любите в XAML, присутствуют.

  • Показатель производительности плохой, если вы не проводите исследования (здесь). Производительность увеличила нагрузку в этой области.

  • Если бы мне пришлось снова сделать выбор, я бы все равно пошел на формы. Хотя иногда есть вещи, которые кажутся ошибочными/плохими, вы обычно можете найти какое-то чистое исправление, в то время как большую часть времени занимаетесь разработкой приложения. (иногда вы все равно найдете вещи, которые просто заставляют вас хмуриться, почему что-то не реализовано, например, свойство Margin реализуется только сразу после покупки Microsoft xamarin).

  • Если у вас возникнет потребность в вложенных списках, убедитесь, что вы посмотрите на встроенные средства управления, чтобы достичь максимальной производительности - это было важно для продукта, над которым я работал. См. this

Ответ 2

Согласно главной странице Xamarin.Forms:

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

Apps that require little platform-specific functionality
Apps where code sharing is more important than custom UI
Developers comfortable with XAML

Xamarin.iOS и Xamarin.Android лучше всего:

Apps with interactions that require native behavior
Apps that use many platform-specific APIs
Apps where custom UI is more important than code sharing

Ответ 3

Ответ Giorgis правильный, но поскольку вы добавили еще несколько ограничений, вот мои мысли.

Я бы проанализировал текущее приложение. Сколько кода является бизнес-логикой, которую можно использовать? Как настроен пользовательский интерфейс, должен ли он выглядеть более родным или более похожим и как он изменится в будущем? Если вы планируете многое изменить в пользовательском интерфейсе, и платформы должны выглядеть схожими, может быть проще переключиться на формы.

Также подумайте, планируете ли вы разрабатывать Windows Phone? Если да, вы можете сэкономить много времени только для этой третьей платформы.

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

Ответ 4

Лично я использую Xamarin.iOS и Xamarin.Android с MvvmCross, таким образом я могу полностью контролировать собственный пользовательский интерфейс на каждом платформу при максимальном повторном использовании кода.

Ответ 5

С сайта Xamarin (кто знает лучше, чем они?):

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

[https://developer.xamarin.com/guides/xamarin-forms/]

С Xamarin.Forms во время выполнения каждая страница и ее элементы управления сопоставляются с элементами пользовательского интерфейса, специфичными для платформы. С приложениями Native Xamarin.Android и Xamarin.iOS можно использовать аппаратное ускорение для конкретной платформы и скомпилированы для собственной производительности. Этого нельзя достичь с помощью решений, которые интерпретируют код во время выполнения.

"Xamarin.iOS - лучший способ создания родных приложений для iOS".

  • Отсортировать собственные пакеты приложений в App Store. Наш компилятор "Вперед" (AOT) компилирует приложения Xamarin.iOS непосредственно на встроенную сборку ARM кода, что означает, что ваше приложение является бинарной базой на родной платформе.
  • Доступ к любому API iOS. Мы доставляем 100% Apples iOS SDK на С#, улучшая API Objective-C с более сильными типами и именованием .NET так что вы чувствуете себя как дома.
  • Вызовите существующий код Objective-C с С#. Используйте существующий код Objective-C, фреймворки и настраиваемые элементы управления в вашем приложении Xamarin. используя наш автоматический генератор связывания.
  • Создавайте приложения WatchKit. Используйте Xamarin Studio или Visual Studio для создания новых приложений Watch, редактирования пользовательских интерфейсов Watch в iOS Designer и debug Наблюдайте за приложениями в iOS Simulator.
  • Будьте в курсе событий Apple. Мы выпустили поддержку в тот же день для iOS 5, iOS 6, iOS 7 и iOS 8, чтобы ваши приложения могли воспользоваться преимуществами новейшие функции iOS как можно скорее.

[https://www.xamarin.com/platform]

"Xamarin.Android - лучший способ создания собственных приложений для Android".

  • Загрузите собственные пакеты Android. Xamarin.Android использует компиляцию "точно в срок" для сложной оптимизации ваших приложений производительность, то есть ваше приложение является родным Android APK.
  • Доступ к любому API Android, включая новые форм-факторы. Мы привносим на С# 100% API-интерфейсов Google Googles, улучшая Java API с поддержкой async и соглашения об именах .NET, чтобы вы чувствовали себя как дома.
  • Вызовите существующий код Java с С#. Используйте свой существующий Java-код, фреймворки и настраиваемые элементы управления в своем приложении Xamarin, используя наши генератор автоматической привязки.
  • Создайте приложения Android Wear. Имея доступ к 100% поддержке API для Android Wear, создайте полнофункциональные приложения, способные работать Устройства Android Wear. Будьте в курсе событий с Android. Хамарин остается обновленный с самыми современными API-интерфейсами от Google, поэтому вы всегда можете используйте новейшие функции в своих приложениях.

[https://www.xamarin.com/platform]