@xamarin_russia

Страница 231 из 619
Sergey
27.11.2017
15:18:00
тсссс

)

сделай поддельный студ билет и в путь

Andrey
27.11.2017
15:18:29
до сих пор работает!? ?

Google
Ilia
27.11.2017
15:20:00
дримспарк вроде дает доступ только с сайту и маленькой дб

Andrey
27.11.2017
15:20:48
я хочу app service mobuile развернуть да и база возможно понадобится

Ilia
27.11.2017
15:21:02
30 мб ограничение

Да и этого сервиса там вроде нет:(

Andrey
27.11.2017
15:21:49
тот еще аттракцион неслыханной щедрости! ?

тогда точно biz

Andy
27.11.2017
16:00:06
возможно ли настроить хамарин так чтобы отлаживать или хотя бы запускать автоматически приложения в стороннем эмуляторе - в virtual box, Nox ? встроенный на работает

Andy
27.11.2017
16:03:25
этот платный да и виртуал бокс и так вктивно использую а Nox просто отличная надстройка над виртуал боксом

Andy
27.11.2017
16:11:09
та нашел уже перекодировщик раскладок Ж)

спасибо за наводку похоже и генимоушн и нох можно подключать в режиме юсб отладки причем они обе на базе виртуал бокса

Google
Кита
27.11.2017
17:24:46
ну это так. Чтобы ты понимал широту выбора

Mikhail
27.11.2017
22:00:05
Привет всем! Может глупый вопрос, но все же. У меня есть MainPage, которая описана в PCL проекте. У это MainPage есть приватное поле nativeClassObject, класс которого описан в Android проекте. Получаю я доступ к нативному объекту через nativeClassObject = DependencyService.Get<INativeClass>(); . Без проблем юзаю методы, которые описаны в INativeClass. Но вот вопрос: как я могу в NativeClass заставить работать методы типа OnResume(), OnPause(), OnDestroy() ??? Пробовал NativeClass унаследовать от Activity - но методы не срабатывают при открытии страницы/сворачивании приложения/повторном открытии/ закрытии приложения.

Mikhail
27.11.2017
22:38:07
Читай про жизненный цикл приложения
Ладно, я понимаю. Я просто понадеялся на быстрый совет. Например как мысль, так как точкой входа у андроид приложения является MainActivity, у которой отлично срабатывают методы OnResume(), OnPause(), OnDestroy(), то можно в самой MainActivity держать инстанс объекта того нативного класса и вызывать аналогичные методы из реализации их в MainActivity, но как-то это слишком костыльно.

Может есть проще вариант, например унаследовать класс от какого-нибудь другого класса и он будет автоматом подписан на OnResume(), OnPause(), OnDestroy()

???

Mikhail
27.11.2017
22:41:23
гу, если это XF, то в App есть методы OnPause, OnResume, OnStart. ну и можно просто слать сообщений через messagingCenter
Да, но мне еще и OnDestroy нужен. Интернеты говорят, что только нативно реализовывать нужно

Вот и как лучше сделать?

Kirill
27.11.2017
22:41:45
Mikhail
27.11.2017
22:45:22
Ладно. И на том спасибо. Попробую все же из MainActivity через messagingCenter рассылать

Almaz
28.11.2017
06:32:32
Всем привет! А есть какие-то альтернативы messagingCenter? Типа MvxMessenger? Только чтобы одним отдельным пакетом

Не охота велосепедить. А в формсах приходится на каждом шагу.

Kirill
28.11.2017
06:35:43
Не охота велосепедить. А в формсах приходится на каждом шагу.
А почему именно MessagingCenter а не обычные события?

Мне кажется, MessagingCenter не самое лучшее решение для MVVM архитектуры

Almaz
28.11.2017
06:53:27
Я его использую в качестве шины общих событий приложения.

OnAuthorized например

Да и для подписок на события Page во ViewModel иногда.

Google
Almaz
28.11.2017
06:56:30
Это не гуд)
Ага, но не понимаю как еще с анимацией корректно работать. Т.е. обработать окончание анимации во ViewModel, например.

Kirill
28.11.2017
06:57:12
К примеру, у тебя есть layout которые анимируется по определенному ключу, ты создаешь свой контрол, создаешь в нем BindableProperty с типом ICommand и вызываешь эту команду когда анимация завершилась. Во ViewModel делаешь публичное property Command и отлавливаешь там завершение анимации. Code behind в Page должен быть пустой, только конструктор

Almaz
28.11.2017
07:05:15
Давно хотел это в отдельный контрол вынести. Попробую так сделать, спасибо)

Kirill
28.11.2017
07:06:27
Давно хотел это в отдельный контрол вынести. Попробую так сделать, спасибо)
Когда проектируешь контрол, подумай в первую очередь о том, что если его будет использовать кто то еще и что ему для этого понадобится. Контрол должен быть по максимому унифицирован

Almaz
28.11.2017
07:12:52
Когда проектируешь контрол, подумай в первую очередь о том, что если его будет использовать кто то еще и что ему для этого понадобится. Контрол должен быть по максимому унифицирован
Ок. А насчет "code behind должен быть пустой в Page". Недавно наткнулся на проект Xamarin.Forms.Mock - с ним, как я понял, можно юнит-тесты писать используя Page вместо ViewModel. Т.е. для каких-то простых проектов такой подход прокатит - не нужно писать слой VM, NavigationService, и обрабатывать анимацию во ViewModel и т.п.

Если я все правильно понял, эта штука экономит много времени. Не знаю, есть ли у этого ощутимые недостатки для проектов без долгой поддержки.

Kirill
28.11.2017
07:14:43
Ок. А насчет "code behind должен быть пустой в Page". Недавно наткнулся на проект Xamarin.Forms.Mock - с ним, как я понял, можно юнит-тесты писать используя Page вместо ViewModel. Т.е. для каких-то простых проектов такой подход прокатит - не нужно писать слой VM, NavigationService, и обрабатывать анимацию во ViewModel и т.п.
Тогда это уже MVC. Умные люди придумали MVVM как раз для того, что бы отделить бизнес логику от представления. На маленьких проектах такой подход конечно, мало эфективен, но маленький проект со временем может стать большим, и тогда выбор в сторону MVVM станет все более очевиден

Almaz
28.11.2017
07:18:30
Но в Page нет четкого разделения между Controller и View.

Kirill
28.11.2017
07:19:35
Но в Page нет четкого разделения между Controller и View.
Code behind это контроллер, xaml это view. Можно конечно view и бизнес логику писать в коде, но я даже не знаю, что это будет. Не надо так)

Nikita
28.11.2017
07:22:53
Привет всем, кто знает как использовать сразуже 3 вида дизайн на uwp - Fluent Design, на iOS - Human Interface и на Android - Material Design в Xamarin.Forms (кросплотформеность)?

Almaz
28.11.2017
07:39:59
Ну если используется xaml, а codebehind пустой, то его можно использовать как VM.

А то что в одном файле: кому как, вон в реакте же смешали разметку и логику в jsx, говорят удобно.

Kirill
28.11.2017
07:44:26
О вкусах не спорю, но я лично садился за проекты, где было спутан в code behind, поддерживать такие проекты очень сложно. Был свидетелем, как люди уходили с проекта, потому что, в начале допустили ошибку в проектировании и со временем, проблемы накапливались, как снежный ком и решать их становилось все сложнее. Просто есть прописные истины, можешь конечно поэксперементировать, но такие эксперементы могут стоить тебе головной боли в будущем.

Almaz
28.11.2017
08:12:01
Преимущество четкого выделения VM и в том что можно на xam.native соскочить если потребуется.

Google
Kirill
28.11.2017
08:38:12
Ну а с каких пор анимации в xaml стали прописываться?
Тут разговор шел, о том, чтобы делать анимашки в code behind страницы, но это не лучший вариант

Admin
ERROR: S client not available

Kirill
28.11.2017
08:39:08
В контролах

В крайнем случае в behaivors

Но я так не пробовал

Кита
28.11.2017
08:40:32
В контролах
А если область анимации вся страница? И анимация комплексная?

Я не понимаю зачем усложнять. Codebehind не противоречит mvvm вообще никак.

Кита
28.11.2017
08:42:13
Это такая же часть View как и xaml разметка

Kirill
28.11.2017
08:43:03
Я не понимаю зачем усложнять. Codebehind не противоречит mvvm вообще никак.
Ну окей, а как ты будешь отслеживать изменения во ViewModel? Приводить BindingContext к типу и подписываться на PropertyChanged?

Kirill
28.11.2017
08:44:12
Так котлеты отдельно а мухи отдельно
Если я хочу при одном состоянии VM сделать одну анимацию а при другом состоянии другую

как ты запустишь этот механизьм в code behind?

Мне просто интересно, я не хочу снова спорить)

Кита
28.11.2017
08:45:39
Если я хочу при одном состоянии VM сделать одну анимацию а при другом состоянии другую
Ну собственно да, буду приводить биндинг контекст потому что это логика View а не domain layer

И ничего страшного тут нет

Google
Кита
28.11.2017
08:47:02
И на сопровождаемость это не влияет от слова никак. Такие условия по ТЗ. И этот класс страницы эти условия описывает

Вот что главное. Что объект занят своим делом, а не чужим и позволяет решить определенную задачу

Kirill
28.11.2017
08:48:14
И на сопровождаемость это не влияет от слова никак. Такие условия по ТЗ. И этот класс страницы эти условия описывает
Лично я, бью все на контролы, и меня это устраивает полностью, просто беру и использую потом где захочу не нарушая DRY

Кита
28.11.2017
08:49:43
Kirill
28.11.2017
08:50:18
Запросто, создаешь в контроле несколько проперти с типом View и крутишь, вертишь ими как хочешь

Кита
28.11.2017
08:50:24
Просто в какой-то момент важнее не стать самому себе злобным буратиной

Kirill
28.11.2017
08:51:07
Просто в какой-то момент важнее не стать самому себе злобным буратиной
Я, пока не стал, все крутится, вертится как я хочу, и если нужно использовать где то однотипную анимацию, я просто беру и использую свой контрол, и не копипастю не строчки кода)

Кита
28.11.2017
08:52:51
Можно конечный автомат прикрутить :)
Можно. Можно и из буханки троллейбус сделать

Slava
28.11.2017
08:53:41
https://m.habrahabr.ru/company/microsoft/blog/335418/

Не вижу сложностей с комплексными анимациями :)

Max
28.11.2017
08:56:13
Не вижу сложностей с комплексными анимациями :)
Кстати весьма часто использую это. Статейка топ

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