2015-09-05 2 views
2

Я пытаюсь оценить, будет ли Xamarin хорошим вариантом для моего проекта. Проект представляет собой большое комплексное приложение для Android и iOS с большим количеством клиент-серверной связи. Пользовательский интерфейс является основным фокусом и должен быть очень быстрым и плавным. Кроме того, мы планируем широко использовать графические эффекты UX (сопоставимые с приложением Spotify).Межплатформенный пользовательский интерфейс Xamarin против собственного развития

На данный момент мы планируем использовать два отдельных собственных приложения с использованием Java/Objective-C. Тем не менее, возможность совместного использования кодовой платформы очень удобна для нас, конечно.

Большинство мнений, которые я слышал до сих пор, говорят, что Xamarin - хотя и намного лучше, чем приложения HTML5 - не может соответствовать UX родного приложения. Кроме того, я проверил следующие приложения, сделанные с Xamarin (на Android):

  • Rdio
  • MarketWatch
  • Busch Gardens Discovery Guide
  • Sqor
  • Storyo

Из моего впечатления , ни один из них не мог вполне соответствовать скорости и плавности хорошего родного приложения.

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

Большое вам спасибо!

+0

Я задавал один вопрос и делал то же самое испытание, что и вы: Storyo, snap-attack и MarketWatch. Но мои впечатления были в том, что он был очень гладко и не чувствовал, что это не «реальное» родное приложение. Можете ли вы протестировать эти приложения и, возможно, дать нам свои впечатления сейчас? – Jerome2606

ответ

6

Я нахожусь в команде разработчиков мобильных решений Rdio, поэтому я могу сделать некоторые личные размышления с этой точки зрения.

Xamarin позволяет писать собственные приложения на C#. Любая медлительность, язвительность, уродство или плохое поведение обычно не имеет никакого отношения к самому слою Xamarin.

Вы экономите время, позволяющее разделить основную бизнес-логику между вашими разными клиентами, но вы все еще пишете интерфейс пользователя с нуля, характерный для платформы. Вы просто пишете его на C#.

Но пока вы экономите это время, вы тратите его другими способами.Все эти SDK, которые вы хотите использовать, вероятно, несовместимы с Xamarin из коробки. Вам не будет pod install 'в том, что iOS framework, и вы можете изобретать колесо для горстки вещей. Xamarin использует NuGet repo, поэтому у вас есть библиотека компонентов, которые обрабатывают многие вещи, которые нужны большинству людей (аналитика, тестирование, SDK для ПК, разбор JSON, база данных и т. Д. И т. Д.), Но она не охватывает все. И это, безусловно, не охватывает вещи, которые в день объявления Apple или продукта Google.

Любой сторонний код, который вы хотите импортировать в свой проект, будет выполнен путем написания custom bindings. А если обычно сложно, требуется много времени. У Xamarin есть команда людей, которые специализируются на том, чтобы помочь вам в этом. Этот факт говорит о том, что процесс время от времени беспорядочен.

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

  • UI - это мойка. Вы все равно пишете это с нуля.
  • Бизнес-логика является общей. В зависимости от приложения, которое может быть выиграно, если вы создадите приложение, чтобы воспользоваться им.
  • Совместимость/способность к кровоточивости будет отсутствовать. Это может быть неважно для вас вообще, или вы можете быть тем человеком, который хочет воспользоваться этим горячим новым API в следующей версии ОС в тот день, когда он будет анонсирован.

Моя личная мысль, не зная специфики, заключается в том, что если вы хотите создать приложение, которое вы планируете на протяжении многих лет, и это позволит использовать последние и самые большие, я бы сказал вам написать для каждой платформы. Если вы действительно не сможете увидеть огромные успехи в обмене этой бизнес-логикой, авансовые выигрыши минимальны. Или, если вам действительно нравится C#.

2

Xamarin использует нативные элементы управления. Таким образом, вы разрабатываете полностью собственный пользовательский интерфейс на платформу. Пользователи не могут видеть, что ваше приложение создано с помощью Xamarin или Java/Objective-C. Иногда возникают проблемы с производительностью в сочетании с независимой от платформы UI-оберткой Xamarin.Forms. Но вы не должны использовать его. Когда у вас все еще проблемы с производительностью в вашем приложении Xamarin.Android или Xamarin.iOS, вы производите их в своем коде.

Есть результаты тестов для Android приложений, сравнивающих Xamarin.Android и Java приложения: Does anyone have benchmarks (code & results) comparing performance of Android apps written in Xamarin C# and Java?

Как вы можете видеть внутреннее исполнение Xamarin стало лучше и лучше с течением времени.

Заключение: Да, вы можете писать плавные собственные приложения, используя Xamarin.

Смежные вопросы