
Vladislav
21.02.2017
17:52:46
Подскажите плз, как в master detail page после выбора пункта меню закрыть панель? Я попробовал так: Detail.Focus(), но это не сработало
Все, нашел св-во IsPresented у страницы...

Александр
22.02.2017
13:07:36
Всем привет! Решил попробовать себя в замарине. В поставил xamarin, sdk, adv. Сделал пробную кнопку. В avd приложение запускается нормально. закидываю оба apk на телефон, устанавливаю. Но приложение после запуска сразу вылетает. На телефоне 5.1.1 в настройках приложения везде выставил API 22. подскажите, пожалуйтса, почему может вылетать?

Дмитрий
22.02.2017
13:13:01
привет
1. проверить манифест (например дать доступ в интернет, если используется)
2. если приложение ставилось через дебаг, убедиться в том что оно точно удалено (смотреть в списке ВСЕХ приложений)

Google

Дмитрий
22.02.2017
13:13:19
3. попробуйте по шнурку с дебага его установить

Александр
22.02.2017
13:27:19
доступов никуда не делал. Там пустая форма с кнопкой и все. Ставил отдельно apk перекидывая на телефон

Kirill
22.02.2017
16:05:11

Sergey
22.02.2017
17:46:27

Vadim
22.02.2017
19:07:33
Coming 2/28... React Native Developers Webinar - Register now: http://spr.ly/60158VRv9
Возможно, кому-то будет интересно.

Dima
22.02.2017
20:39:34
Кто нибудь находил в сети курпные проекты на xamarin + mvvmcross, интересно было бы поизучать?

Alexey
22.02.2017
20:45:29

Dima
22.02.2017
20:49:32
меня 2 вопроса мучают,1) организация кода: как завязывается связка с кором и апи проектом, делается ли дополнительные слои, связи со слоями проходят по патерну фасад, или он является узким местом по производительности. 2) второй момент вопрос производительности и как правильно распаралеливать работу мобильных приложений, нет четкого понимания что и где можно убирать в другой поток, понятное дело кроме очевидных вещей типо запросов и легко-заметных тяжелых операций.


Alexey
22.02.2017
20:58:33
ну, это довольно общие вопросы , mvvmcross тут не сильно замешан.
1. в коре лежат вью модели, контракты данных, слой доступа к базе данных и апи сервису. для апи использовал связку Refit + Polly, оказалось очень удобно.
2. ощутипо оптимизировать mvvmcross сильно не получится. единственное что могу посоветовать: максимально облегчить логику в MvxAppStart и построении ViewModel'ей, иначе при переходе по экранам будут заметные фризы. вообще разработчики и так стараются распараллелить какие-то вещи, например, не так давно влили pull request с построением биндингов в отдельном потоке
на самом деле в работе с mvvmcross в плане скорости смущает только первый запуск приложения. все остальное (биндинги, IoC) работает приемлимо по скорости даже на слабеньких девайсах


Dima
22.02.2017
21:07:11
тоже сейчас смотрю на refit+polly, собираюсь встраивать в проекты.
по производительности и потокам, предметно: смущает строка skipped frame * в отрисовки в главном потоке.
интересно кстате по верстке узнать, если какое нибудь внегласное правило по количеству вложенных элементов, и при какой вложенности тегов начинается заметное просидание пересовки всего этого добра ?

Alexey
22.02.2017
21:15:33
если опять же говорить про это в контексте mvvmcross, то там на отрисовку влияет скорее не столько вложенность элементов, сколько сложность дата-биндинга
если вьюмодель сложная и требует много времени на инициализацию, то можно какую-то часть ее построить в Init() или Start(), а все остальное унести в другой поток и вызвать биндинг чуть позже

Google

Dima
22.02.2017
23:51:18
@shqun возникали ли проблемы с refit в процессе разработки ? немного все же вызывает опасение автогенирируемость )

Kirill
23.02.2017
06:10:20
Чем меньше вложенности тем лучше

Alexey
23.02.2017
07:38:25
@Konzas нет, все хорошо с ним )

Kirill
23.02.2017
09:48:12

IM2STRNG4DTWRLD
23.02.2017
11:47:31
Добрый день. Тут такой вопрос. Как оптимальнее реализовать глобальный класс. Допустим у меня есть активити, где он создается и другой, где используется. А то костыли мои мне не нравятся.
P.S. Xamarin.Android

Andrey
23.02.2017
12:20:59
Singleton? Объект нужен если

IM2STRNG4DTWRLD
23.02.2017
14:22:02
Да, объект. Но, разве Singleton не является неизменяемым?

Andrey
23.02.2017
14:30:44
Почему, изменяется. Просто объект ровно один, но можно обернуть и коллекцию. Если ещё проще безо всяких инджектов, которые могут посоветовать, то любой статический объект или коллекцию сделать. Хотя это не круто нынче. Но я себе разрешаю :)

Akhmed
23.02.2017
14:35:00
если тесты не пишете и не планируете вообще писать в будущем и при этом проект небольшой то вполне можно жить и с синглтоном

Andrey
23.02.2017
15:15:49

Roman
23.02.2017
19:30:53
https://github.com/jonghough/bluetooth-jx

Александр
23.02.2017
20:03:25
Всем привет! Подскажите пожалуйста годную литературу или сайт для изучения замарина с 0

Алексеев
23.02.2017
20:05:23
Если полный 0 то сначала нужно подучить С#
https://geekbrains.ru/courses/132

Александр
23.02.2017
20:06:20
Шарп, малюху знаю. Ну, я так думаю.

Akhmed
23.02.2017
20:06:49
https://developer.xamarin.com/guides/xamarin-forms/creating-mobile-apps-xamarin-forms/
Книга хоть и на английском, язык достаточно простой английский что бы понять о чем речь

Александр
23.02.2017
20:07:36
Спасибо!

Akhmed
23.02.2017
20:08:44
если Java или Object-c знаете то необходимый минимум для написания кода на C# знаете
остальное узнаете со временем

Google

Александр
23.02.2017
20:10:54
java немного пробовал, лет 7 назад, к object-c даже не приближался. Если почитать книги по программированию под андроид, вреда не будет?

Akhmed
23.02.2017
20:11:12
наоборот - будет очень полезно
главное Xamarin главное это понимание что есть два основных способа написания кода
Xamarin Android, iOS
или Xamarin Forms
Xamarin Forms очень простые приложения можно написать не зная Android, iOS
но ничего серьезного к сожалению без знания платформо-специфичных фич не напишешь

Александр
23.02.2017
20:19:27
На сколько простые программы без глубоких знаний можно написать? у меня в задумках 3 штуки (1. таймеры\напоминалки\список дел 2. учет денег 3. mind map) все это уже реализованно, но как всегда, свой велосипед круче, да и новое зодно изучить.

Akhmed
23.02.2017
20:19:45
ну такие можно и на XF написать
mind map возможно сложнее будет

Алексеев
23.02.2017
20:20:15
На сколько хорошо надо знать шарп?
Основных конструкции из урока для старта хватит если где то будут затруднения или нехватка знаний в процессе разработки найдёшь решение если загуглишь

Александр
23.02.2017
20:21:37
Отлично, уже четкая подсказка в каком направлении двигаться.
Еще вопрос, каким эмулятором лучше пользоваться, xamxarin player или adv android?

Alexander
23.02.2017
23:31:47

Александр
23.02.2017
23:53:25
Спасибо

Бенедикт
24.02.2017
00:03:05
Всем привет! Подскажите пожалуйста годную литературу или сайт для изучения замарина с 0
И все таки совет на будущее, когда будешь не понимать как работают те или иные вещи, то стоит немного углубиться. Даже на раннем этапе помимо изучения XF, изучать параллельно C#, а то порой будут такие моменты, что вроде все работает, но сделано на диких костылях, ибо элементарно не знаешь для чего нужны конкретные интерфейсы и другие прелести которые помогут упростить код, ошибка многих(и моя в том числе на раннем этапе, пускай тогда я изучал c# для совершено другого дела ), что изучил c# поверхностно и реализовал все на костылях, без какого либо подхода. Ещё бы советовал хотя бы поверхностно ознакомится с такой темой как "Алгоритмы и структуры данных", станешь понимать почему многие вещи работают так и как можно сделать по-другому)


Akhmed
24.02.2017
00:04:04
И все таки совет на будущее, когда будешь не понимать как работают те или иные вещи, то стоит немного углубиться. Даже на раннем этапе помимо изучения XF, изучать параллельно C#, а то порой будут такие моменты, что вроде все работает, но сделано на диких костылях, ибо элементарно не знаешь для чего нужны конкретные интерфейсы и другие прелести которые помогут упростить код, ошибка многих(и моя в том числе на раннем этапе, пускай тогда я изучал c# для совершено другого дела ), что изучил c# поверхностно и реализовал все на костылях, без какого либо подхода. Ещё бы советовал хотя бы поверхностно ознакомится с такой темой как "Алгоритмы и структуры данных", станешь понимать почему многие вещи работают так и как можно сделать по-другому)
Очень многие мои знакомые студенты когда изучают программирование делают одни и те же ошибки
пытаются писать код максимально хорошо или вообще никак
заморачиваются на улучшении качества каких то мелочей когда в самые важные части проекта даже не написаны
поэтому крайне важно, даже если с говнокодом, во время изучения сделать хоть какой нибудь работающий продукт

Google

Akhmed
24.02.2017
00:05:28
и только потом заниматься улучшением

Бенедикт
24.02.2017
00:06:25
По большой части ты прав, но тут зависит от проекта, если сроки и проект в дальнейшем поддерживаться не будет, то можно и так, если наоборот, то мне кажется крайне важно на начальном этапе продумать многие вещи, что бы проще потом было

Akhmed
24.02.2017
00:06:32
особенно плохо то что когда показывают как можно писать код пытаются повторить по качеству так же как у меня. И никак не удается объяснить что сначала надо попытаться сделать хоть какой нибудь работающий продукт а потом можно сделать получше
и постоянно стесняются показывать свой код - мол "ты будешь смеяться когда увидишь как я сделал"
ничего стыдного в том что в начале будете писать говнокод нет. Стыдно если годами так будете писать и не учиться делать лучше. Но уже потом.

Бенедикт
24.02.2017
00:09:41
Очень верно сказали

Akhmed
24.02.2017
00:15:17
на практике студенты которые говнокодят но ставят своей целью сделать работающий продукт могут написать достаточно быстро работающие приложения от "список покупок", "прогноз погоды" до игр типа "судоку", "морской бой" и т.п. С жутким говнокодом. Но главное что начали делать. А вот те же студенты страдающие перфекционизмом в лучшем случае тратили на это раз в 10 больше времени. А многие вообще так и не научились программировать вообще. Парадоксально но я это вижу постоянно.

Бенедикт
24.02.2017
00:26:39
т.е писать быстро и говнокодом или качественно и медленно, хотя тут понятие "Говнокод" очень размыто


Akhmed
24.02.2017
00:29:19
грани как такового нет. Есть задача и есть инструменты. Как бы я не фанател с TDD, SOLID и т.п. я могу по жуткому наговнокодить на хакатоне и за пару дней сделать достаточно играбельный продукт и выиграть хакатон
но сопровождать это конечно было невозможно
а если есть понимание что будет большой продукт и требования часто будут меняться и в переписывании кода надо не утопать - вот тогда и нужны эти "Best Practices"
вот кстати пример:
https://habrahabr.ru/post/158481/
я тогда был в качестве эксперта на хакатоне
и не мог принимать участие, поэтому выставил приложение вне конкурса
но тогда эта работа заинтересовала очень многих и очень много подходили и спрашивали как это сделано (собственно из за чего и написах на хабре статью)
но если посмотрите код - это собрание того как вообще нельзя писать код
зато 2,5 часа в то время как большинство участников не выставили свое решение за два дня


Бенедикт
24.02.2017
00:43:39
Вау, на самом деле это вдохновляет. У вас вообще опыта в этой сфере много?

Google

Akhmed
24.02.2017
00:45:11
в какой именно? если речь о разработке ПО то достаточно приличный опыт.

Бенедикт
24.02.2017
00:46:40
Да, именно в этом

Александр
24.02.2017
06:42:49
Из всего вышесказанного получается следующее. Углубленно изучать и практиковать основной ЯП(с#), знакомство с новыми технологиями должно быть достаточным для доведения ознакомительного проекта в рабочее состояние, желательно минимизировать говнокод.

Andrey
24.02.2017
06:56:12
Просто ЯП сложно учить. Надо прочесть какой-нибудь краткий курс, потом садиться за учебный проект и углубляться имхо. Потому что какой-нибудь async/await хоть зачитайся, пока не используешь - не все ясно. Говнокод же понятие растяжимое, для кого-то синглтон говнокод, а для кого-то решение. Чтобы не допускать откровенного отстоя в коде, надо делать его человекочитаемым. алгоритмы без лапши, использование стандартных всех фич языка. А архитектура это уже некст левел, композиции против наследований и прочие интерфейсы - просто паттерны изучить чтобы мыслить в таких понятиях. Я сторонник умеренного фанатизма :)

Slava
24.02.2017
07:04:52
+1 :)

Александр
24.02.2017
07:28:33
А что за фичи языка?

Alexander
24.02.2017
07:44:01
А что за фичи языка?
Синтаксический сахар скорее имеется ввиду. Разного рода языковые конструкции которые в c# пихают в последнее время очень активно. Я думаю к c# 11 будет такая же ситуация как с с++ последними версиями)

Andrey
24.02.2017
07:46:47
Да. Анонимные объекты например

Александр
24.02.2017
07:54:11
Это которые new {} ?

Alexander
24.02.2017
08:11:45

Кита
24.02.2017
08:13:24
да вообще анонимусы - зло

Vladislav
24.02.2017
08:15:57
кто то их использует вне linq?

Andrey
24.02.2017
08:22:08
Я использую когда надо что-то по мелочи сохранить в json

Кита
24.02.2017
08:22:15
в linq это экспрешн. У него немного другая природа

Му
24.02.2017
08:27:54

Dima
24.02.2017
08:46:52
Ребят столкнулся с проблемой, не хватает компетенции в этом вопросе. Выкладываю приложение в appstore, мне приходит ответ о том, что мое приложение не поддерживает соединение через ipv6, а должно. подскажите как можно быстро это исправить, может какие конфиги в httpclient ? Спасибо)

Akhmed
24.02.2017
08:55:25
а ты работаешь с каким нибудь http сервером?

Dima
24.02.2017
09:03:07
да, я так понимаю необзодимо настроить права на работу с запросами с ipv6 на сервере, не понимаю как еще)
верно же?