@xamarin_russia

Страница 447 из 619
Vitaly
29.06.2018
10:30:26
Не по советуете группы каналы по uwp xamarin разработке?

Serhii
29.06.2018
10:33:17
Не по советуете группы каналы по uwp xamarin разработке?
https://channel9.msdn.com/Series/Windows-10-development-for-absolute-beginners/UWP-039-Adaptive-Layout-with-Device-Specific-Views

Летучая
29.06.2018
12:23:01
Вкратце обозреть framework's и подытожить тем, что они не нужны
Ну вот. Ты же вроде выкатился из велосипедов и вкатился в ReactiveUI и Fody? :)

Google
Max
29.06.2018
12:27:43
Оно очень удобно, но чисто в колено себе выстрелить боюсь

Roman
29.06.2018
12:29:47
А Elmish.Xamarin кто-то уже ковырял? Он только для Forms или для Android отдельно можно сделать?

Летучая
29.06.2018
12:29:49
Fody тут не нужен. ReactiveUI сойдет, но тоже не нужен
Почему это не нужен? Лучше ручками геттеров и сеттеров понаписать?

Max
29.06.2018
12:31:16
Есть некоторая проблема с хранением этих значений в неком своем поле и сохранении на устройство, в случае необходимости

Например, чтобы восстановить состояние

Тут как бы все немного (много) сложнее, чем бахать в WPF

Ну вот. Ты же вроде выкатился из велосипедов и вкатился в ReactiveUI и Fody? :)
Как бы еще раз, я ничего против этого не имею, но Fody тут не нужен, как по мне

Летучая
29.06.2018
12:33:42
Например, чтобы восстановить состояние
А в пропертю нельзя записывать состояние, вместо поля напрямую?

Вообще я игрался с Xamarin.Forms и там с Фоди было норм. В Xamarin.Native наверно есть свои нюансы, действительно (на самом деле было бы интересно послушать доклад на эту тему)

Google
Max
29.06.2018
12:40:14
И если вдруг наберем, то возможно выступим тут http://techtrain.ru/ , в отдельном треке по Xamarin

Для Android - это +- критично, ведь твоя Shared выполняется в своем рантайме на ведре

и там начинаются проблемы с высвобождением каких-нибудь таймеров и прочего, на что фуди тоже навешает все, что ему надо

Да и есть ограничение на количество методов (хотя, это легко обходится, но все же)

Чисто из-за размера даже выходит, что лишний кодоген тебе не нужен

Летучая
29.06.2018
12:45:04
Чисто из-за размера даже выходит, что лишний кодоген тебе не нужен
Там можно ему запрещать кодгенить ненужные свойства. Будет кодгенить только там, где без Fody ты бы сам квасил backing field и OnPropertyChange. Всяко почище.

Летучая
29.06.2018
12:45:22
Или ты про кеширование PropertyChangedEventArgs?

Roman
29.06.2018
12:45:23
Только Forms.
Спасибо

Летучая
29.06.2018
12:46:49
+
Ну тут да. Но! Можно посмотреть историю коммитов и вытащить из нугета версию, где эти кеши ещё не ввели :D

А вообще, если это действительно проблема, можем попробовать законтрибутить, чтобы кеши было можно нахрен выключить.

Max
29.06.2018
12:47:42
Ну тут да. Но! Можно посмотреть историю коммитов и вытащить из нугета версию, где эти кеши ещё не ввели :D
Ну это уже не очень прикольно. Хотя весьма рабочая тема, для Xamarin в целом

А вообще, если это действительно проблема, можем попробовать законтрибутить, чтобы кеши было можно нахрен выключить.
Чисто для Xamarin было-бы не плохо написать что-то вроде обертки для хранения даже самих значений пропертей. В условной SQLite, например

Max
29.06.2018
12:49:09
и подключения к фуди

Накидаешь пример?
Но тут смотри какая тема, если мы храним эти значения, было бы не плохо их еще и получать с других страниц, по надобности

И вот ты уже получил веретено из непонятно чего

Что решается стандартной записью в Properties приложения, обернутой в OnPropertyChanged()

Google
Max
29.06.2018
12:51:56
Так что я думаю когда ты пишешь продакшон, мейби не стоит мудрить

Kirill
29.06.2018
13:11:09
Там можно ему запрещать кодгенить ненужные свойства. Будет кодгенить только там, где без Fody ты бы сам квасил backing field и OnPropertyChange. Всяко почище.
Можно и без фоди красивый код получить без ручного вызова OnPropertyChange и создания backing field. Конечно не 1 строчка {get;set}, а { get => Get<string>(); set => Set(value); } Но тоже неплохо, зато всё понятно что происходит, без тёмной магии.

И чуть дописав логику как раз можно сделать хранение пропертей, сейчас в моей реализации они все банально в ConcurrentDictionary<string, object>

Летучая
29.06.2018
13:17:55
И чуть дописав логику как раз можно сделать хранение пропертей, сейчас в моей реализации они все банально в ConcurrentDictionary<string, object>
Ну, это тоже магия. И она тормозит, в отличие от Fody. Вообще в таких вещах C# конечно сильно проигрывает Javascript-у. Там поддержка декораторов на уровне языка, а у нас с зависимостью от Fody/MrAdvice/PostSharp, которых, почему-то, все боятся (хотя причин на это я не вижу никаких).

Летучая
29.06.2018
13:20:34
Про сохранение стейта конечно интересные аргументы, надо будет поискать решение. Надо стремиться в противоположную бойлерплейту сторону, 2018 год же на дворе :)

Kirill
29.06.2018
13:21:16
Зачем использовать библиотеки с черной магией для таких простых задач, когда можно без них?)

потому что boxing/unboxing
Проверял же и тебе о результатах отпиисывался. Кучу раз писал в Dictionary<string, object> разного типа объекты и примитивы, и в кучу разных словарей в зависимости от типа - разницы никакой не заметил. то один способ быстрее, то другой. На уровне статистической погрешности работает. Так что не вижу смысла усложнять логику. И прям много Binding Property в приложении, что критичны теоретические миллисекунды на эти операции, когда есть задержка на сетевые запросы, отрисовку и тд, которые на порядки дольше выполняются?

Kirill
29.06.2018
13:25:42
Ну сам попробуй протестить - я не нашел задержек на boxing/unboxing даже на миллионах операций

Kirill
29.06.2018
13:25:50
Летучая
29.06.2018
13:28:56
Н-да, однако, на WPF/UWP проект без Fody я бы, конечно, не сел. Вьюмодели многократно раздуваются и усложняются, отнимая на себя много времени, Fody значительно упрощает код. Насчёт XF с вами спорить не буду, возможно, у него пока особый путь :)

Летучая
29.06.2018
13:30:09
А ты не создавай супер-вьюмодели
У меня обычно много не-супер-вьюмоделей. И желание бойлерплейтить от этого сильнее не становится.

Google
Kirill
29.06.2018
13:30:32
Летучая
29.06.2018
13:31:10
После бэкграунда на Ангуляре предпочитаю не видеть мусор типа INPC в своём коде.

Кита
29.06.2018
13:32:27
а ещё нужно бывает завязать одну преперти на другу. Set может возвращать bool значение изменилась проперти или нет. Если да - то какая-то логика изменения другой проперти. И у той тоже в сеттере какая-то логика

Kirill
29.06.2018
13:33:10
INPC :)
Ну, как сказал - это не проблема вообще) И логика вызова, на сколько знаю, одинакова и на винде и в формс. В текущем проекте всего в нескольких местах вызывается INPC вручную, в тех сценариях, когда от одной проперти зависит другая, да и этого можно избежать легко, используя те же конвертеры

Летучая
29.06.2018
13:34:01
а ещё нужно бывает завязать одну преперти на другу. Set может возвращать bool значение изменилась проперти или нет. Если да - то какая-то логика изменения другой проперти. И у той тоже в сеттере какая-то логика
На самом деле для таких кейсов есть божественный ReactiveUI — WhenAnyValue и мапишь связи между свойствами в fluent стиле. Ещё можно дёргать команды и запускать таски.

Admin
ERROR: S client not available

Kirill
29.06.2018
13:34:47
Вместо написания 2 строк добавлять 2 библиотеки. Ну такое себе..))

Кита
29.06.2018
13:35:26
именно

При этом во многом от бойлерплейта ты избавляешься и за собой кучу всего что тебе не нужно и может выстрелить в ногу - не тащишь.

Kirill
29.06.2018
13:37:34
А уитывая что каждая библиотека добавляет времени к времени сборки/деплоя, размеру приложению, возможным багам.. Поэтому такие простые вещи, которые легко сделать без библиотек - предпочитаю сам делать)

Летучая
29.06.2018
13:38:09
Извечный, конечно, холивар. Таскать за собой замарин размером в 20 мегабайт и зажимать 100 килобайт для библиотек, которые жизнь спасают.

Если мне будет важен размер бинарника, я возьму плюсы или котлин. :) В общем это всё скорее вопрос религии либо конкретно Замарина. В Uwp и Wpf-мирах с Fody проблем нет.

vladimir
29.06.2018
13:40:09
как-то передёргиваете на плюсах сложно будет кроссплатформу с нативными вьюшками написать

Evgeniy
29.06.2018
13:41:13
Есть предложение проголосовать за бесплатный профайлер: https://xamarin.uservoice.com/forums/144858-xamarin-platform-suggestions/suggestions/32298319-xamarin-profiler-s-huge-paywall-propagates-low-qua

Kirill
29.06.2018
13:41:34
Извечный, конечно, холивар. Таскать за собой замарин размером в 20 мегабайт и зажимать 100 килобайт для библиотек, которые жизнь спасают.
Ну блин, не тащить библиотеку (кстати с Fody и сборка дольше немного идет из-за кодо генерации), что бы написать public string Name {get; set;} вместо public string Name { get => Get<string>(); set => Set(value); } Учитывая что есть темплейты.. И это при условии, что нет кастомных сеттеров, а с ними разница еще меньше) Да еще и при первом способе добавляется backing field, а во втором - нет =)

Кита
29.06.2018
13:45:00
Если мне будет важен размер бинарника, я возьму плюсы или котлин. :) В общем это всё скорее вопрос религии либо конкретно Замарина. В Uwp и Wpf-мирах с Fody проблем нет.
Вот есть тезис: “В Uwp и Wpf-мирах с Fody проблем нет.” Самое важное что должны понять ВСЕ. Мобайл мир андроида и айос это другой мир и в него подходы из .Net тащить категорически не рекомендуется

Google
Кита
29.06.2018
13:50:27


Я не понимаю только если все dll aotятся то зачем упаковывать ещё этих dll на 10мб, но если не упаковать - ничего работать не будет. Благо они сжимаются хорошо

На флагманах просто моментальный запуск. Даже нет необходимости делать какой-то сплэш) но не на флагманах 1сек все же показывать что-то надо как мне кажется)

Летучая
29.06.2018
14:00:10
Круто. ???

Годный тутор и опенсорс для вкатывания в реактивность, кстати https://github.com/kentcb/WorkoutWotch

Кита
29.06.2018
17:17:23
Есть предложение проголосовать за бесплатный профайлер: https://xamarin.uservoice.com/forums/144858-xamarin-platform-suggestions/suggestions/32298319-xamarin-profiler-s-huge-paywall-propagates-low-qua
а ещё есть предложение голосовать за с++ проекты в Visual Studio for Mac https://visualstudio.uservoice.com/forums/563332-visual-studio-for-mac/suggestions/17141708-support-c-in-visual-studio-for-mac Вообще дохрена чего делать надо. На ios кстати можно пользоваться нативными профайлерами. На андоиде утечки памяти в принципе можно тоже внутренними инструментами поймать

Iván
29.06.2018
17:22:25
плюсы можно и в Xcode открыть так-то

Max
29.06.2018
17:22:39
плюсы можно и в Xcode открыть так-то
С++ на маке вообще откровенный шлак

Iván
29.06.2018
17:24:32
imo VS4Mac должен быть сфокусирован на .NET потому что у нас нет другого выхода а когда гуй можно открыть в нативном, плюсы в каком стороннем редакторе от IntelliJ – ну ок, потерпится

явно мощности ограничены у их команды

вот там в голосованиях просят Node.js и Python когда есть VS Code уже

Max
29.06.2018
17:26:34
вот там в голосованиях просят Node.js и Python когда есть VS Code уже
Python и JS не нужны, ни в коем случае. Для этого есть WebStorm и PythonNotebooks

Страница 447 из 619