вида:
1) Xamarin.Forms
2) Xamarin.iOS, Xamarin.Android (некотрые называют их вместе Xamarin.Native или Xamarin.Classic)
Xamarin.Forms может иметь просадки в производительности, обычно на списках, обычно на Android, но это бывает не часто
В основном приложения на Xamarin.Forms быстрые
Запуск может быть долгим на старых Android
Многопоточность не играет никакой роли тут, потому что визуальная часть всегда рисуется в главном (UI) потоке
Xamarin.Forms использует стандартные для системы контролы, Flutter использует полностью перерисованные контролы (могут выглядеть неестественно на iOS)
Большинство, говоря Xamarin, подразумевают Xamarin.Forms - и у многих от него не самые приятные впечатления, потому что либо пытались сделать приложение со сложным UI, и, хотя это возможно в Xamarin.Forms, но сделать проблематично; либо столкнулись с теми самыми лагами с "тяжёлыми" списками; либо какие-то сторонние ошибки при сборке
Если не перегружать UI свистоперделками, то никто даже и не узнает, что приложение на Xamarin.Forms написано, так как я уже выше написал там используются стандартные (нативные) контролы и это выглядит естественно
С Flutter же UI будет единым, но оно не будет отличаться каким-то естественными для платформы контролами
Если нужен полностью одинаковый UI, то Flutter лучше, хотя в Xamarin.Forms тоже можно этого добиться, но сложнее
С Xamarin.iOS и Xamarin.Android всё гораздо проще: производительность такая же, как и у нативных приложений, потому что работаете напрямую с SDK каждой платформы
+ плюс: бизнес-логику можно написать платформонезависимую со всеми прелестями асинхронности C#
- минус: UI и другой платформенный код надо писать отдельно для каждой платформы
Резюмируя:
Xamarin.Forms может быть и производительным и не очень, в зависимости от задач приложения и кривизны рук, писать код просто
Flutter будет в UI производительный (вроде ещё были статьи, что он при этом жрёт баратею сильно), хотя не знаю как там по приятности писать приложения вообще
Xamarin.iOS и Xamarin.Android производительный, но непростой
Неплохо описал. А можешь сделать заголовок и форматирование и закреплю
так может добавить в док?
Вау, очень полезные знания, спасибо за сообщение. А если использовать для проекта формы и использовать кастомные рендеры для сложного UI?
+, было бы очень полезно, я спустя первый год разработки только понял, что Xamarin.Android это не андроидовский проект в Xamarin.Forms 😂
вариант ещё можно наоборот: встраивать Xamarin.Forms странички в Xamarin.Android или Xamarin.iOS
А какой смысл? Типо в формах сложный интерфейс не построить тут я понимаю зачем рендеры использовать. Но зачем страничку из форм тянуть?
что бы делать слойжный ui совсем необязательно лезть в рендереры
как вариант: она была сделана ранее, и её пересли туда
Ага, тогда подходит, буду знать что можно и такое вытворять)
Да можно и средствами Xamarin.Forms сделать либо сторонние Nuget установить где нужную штуку уже сделали до тебя
@Jasper7 закрепи плиз
Пасиб, но оказывается у меня нет прав закреплять 😁
Делаю MVP проект на xamarin.forms. Дизайн довольно капризный и я бы сказал сложный. Так вот, я ни написал ни одного рендерера, использую всё готовое из уже написанных библиотек.
Даже не знаю, что ответить) С одной стороны круто, так как всё есть и можно не парится, с другой стороны если захотят дальше клепать поверх МВП функционал как бы не было конфликтов между пакетами или вообще кто-то из разработчиков перестанет поддерживать пакет либо скажет, что теперь плати бабулес))) Я с таким на практике не сталкивался, но вероятность есть.
Мы договорились заранее с заказчиком, что поверх mvp мы не будет продолжать, а начнём заново, но всё таки думаю копипаст будет. А в целом согласен. Но я всё же старался использовать только популярные библиотеки
Предусмотрительно, да я так же делаю либо беру библиотеки от ребят из чата. Например в крупном проекте где я работаю видел библиотеку от @kirill_l93 😂😂😂
хочу еще дополнить про флаттер на ios, там сейчас с анимациями и поддержкой metal полная беда. прям ну очень сильно лагает
Я вообще не видел проектов без нее 😄
Не смотрел, когда работал с кодом видел, что могу подключить в xaml`e пространство rotorgames как то так называется)))
возможно он недостаточно сложный
точно такая же ситуация, в итоге все обмазано рендерами и своими биндингами под библиотеки андроид/айос
кстати, правильная мысль зависимости надо минимизировать
Я работал на одном проекте, там тим.лид дядька опытный. Говорит надо бороться за каждый мегабайт приложения, когда я сказал за либу которая подходила под решение задачи он так посмотрел на меня и говорит "Она весит столько сколько и наше приложение"
думаю, тут должна быть золотая середина в любом случае
Да, так и получилось, потом появились новые требования которые решала эта же либа))))
XF огонь Что реально дискомфорт вызывает - долгий запуск на слабых андроидах
Значит не сложный) самая боль формс - анимации
О да. Топовая библиотека получилась)
Rg.Plugin.Popup
так что всё таки производительнее в Андроиде? флюттер или ксамарин.натив?
Там же всё написано Натив будет такой же по производительности, как нативные прилы Флаттер тоже довольно производительный, но вроде как жрёт батарею Резюмируя: разницу между ними ты, как пользователь, вряд ли заметишь
Пользователю плевать)
В англоязычном интернете есть тесты и там сравнивают все кросспл. инструменты, можно нагуглить. Тлдр: все работает быстро кроме вебвью. И кажется RN
В закрепе
Обсуждают сегодня