
Boris
17.10.2018
07:45:04


Mikhail
17.10.2018
07:46:15

Boris
17.10.2018
07:48:24
Хмм, а ведь в теории можно сетевые развлечения в С++ либу вынести...
Но придется знать минимум 3 языка конечно.

Mikhail
17.10.2018
07:56:33

Google

E
17.10.2018
08:10:04


?? Denis
17.10.2018
08:18:28
ну... в нашей компании было так:
- надо сделать мобильное приложение, и.... исполнителем - будешь ... ТЫ!
- я ничего не знаю про мобильную разработку
- не важно! - C# знаешь? знаешь! пиши на Xamarin - какая разница то?! ))
прошёл месяц - первая версия сделана ) убого выглядит но сделана... и мне присылают новый дизайн (мы это с заказчиками согласовали) - я смотрю, ужасаюсь ... и понимаю что ну тут надо Nativ - быстрее будет и красивее
переписываю всё на на Xamarin Native с Forms, пока переписываю, понимаю что по сути шаг влево-вправо... и надо гуглить уже решения для Android на Jave и транслировать на C# + под себя... и... а в таком случае а зачем C#?! собственно, в Java некоторые конструкции проще выглядят (к примеру на лету в коде new ClassName { override void onTextChanged { ...}) и...
паралельно делаю версию на Java :)
показываю начальству что это весит намного меньше, запускается быстрее, ну и вообще это родное для андроид ))
а руководство говорит - нет! не будет ни какой Java, и так у нас зоопарк технологий и сотрудников под каждый стек фиг найдёшь! ты мне предлагаешь ещё и специалистов знающих Java искать? а потом - когда надо под IOS -знающих Swift или Objective C? нет!!
будем писать на C# ))
Xamarin!! и всё тут!!! :)
потому что завтра появятся ещо какието штуки, которые надо будет добавлять в приложение, послезавтра ещё, и выясница что каких-то вещей - хелперы, DTO и прочие штуки - становица всё больше и больше и получается приличный дубликат на двух языках
оно хорошо когда написал чтото простенькое и забыл про него навсегда. Но в реальности так не бывает
а юнит тесты на разные штуки тоже придется писать на двух языках


Kirill
17.10.2018
08:19:37

?? Denis
17.10.2018
08:19:58
ну я про это не стал, предполагая что например логики в приложении минимальное количество
поэтому и пишут на Xamarin чтобы не дублировать кодобазу

Kirill
17.10.2018
08:20:41
Ну, смотря какие приложения. В идеале для клиент-а должно быть минимум, но далеко не всегда так

Boris
17.10.2018
08:21:14

?? Denis
17.10.2018
08:21:40
так что если тимлид говорит что на Xamarin - наверное у него есть понимание стратегии развития
к тому же бывает что приложение это лишь маленькая вспомогательная и возможно даже опциональная часть всего комплекса ПО, и держать отдельного разработчика под Android/iOS - накладно и ненужно

Илья
17.10.2018
08:23:28


Kirill
17.10.2018
08:23:41

Google

?? Denis
17.10.2018
08:24:20
я и не говорил что для всех. Я привёл пример который встречается весьма часто.
и возможно это как раз описанный случай.

Кита
17.10.2018
09:04:27


Mikhail
17.10.2018
09:07:27

Max
17.10.2018
09:09:40
так что если тимлид говорит что на Xamarin - наверное у него есть понимание стратегии развития
Как-то сильно радужно. Xamarin обычно там, где либо никто не смотрит (корп. приложения, аля посмотреть сколько людей в очереди на обед стоит), либо нет денег.
Потому что если деньги есть, то люди пойдут к двум нативщикам и они быстрее и качественнее запилят все что надо. Xamarin - это специфик кейс. Люди, которые на нем прогают, похожи на укротителей акул. Вроде ходят ходят байки, что они есть, но никто их не видел.б

?? Denis
17.10.2018
09:10:41
ну вот видишь, уже есть две точки зрения. Радужная с уклоном в Xamarin, и противоположная - с уклоном в Native. Истина как обычно - гдето посередине.
везде есть компромисс между скоростью разработки/функционалом и ценой

Paul
17.10.2018
09:14:56
Просто на дворе 2018, kotlin и swift вытесняют убогие java и Obj-C, а все хорошие концепции и библиотеки из C# перетекли в натив сделав натив тортом не только по скорости, но и архитектурно. Это все понижает ценность Xamarin в наши дни существенно.

Max
17.10.2018
09:16:08
И никогда не будет нормальным

Boris
17.10.2018
09:16:36
Просто вброшу одну из моих любимейших статей
https://habr.com/company/mailru/blog/314014/

Paul
17.10.2018
09:16:53
Почему это? Есть же и MVVM и реактивщина, и даже свои варианты Clean Architecture

Boris
17.10.2018
09:16:59
Кажется, что она не про плюсы Xamarin? А вот и нет, как раз таки про них

Max
17.10.2018
09:17:57

Boris
17.10.2018
09:18:03

Paul
17.10.2018
09:18:44
ну, здрасьте) голый Xamarin тоже самое, MVC. Надо тоже из нугета все принести. А там из кокоаподс и мавен
вот чего нет, так это гайдов и бест прэктис. Тут МС еще долго будет уделывать всех, видимо

Boris
17.10.2018
09:21:10

Paul
17.10.2018
09:21:40
формс тоже нугет зависимость. А у андроида есть архитэкче компонентс

Google

Boris
17.10.2018
09:22:07
Если считать это зависимостями, то так то и андроид сдк - можно начать считать зависимостью

Paul
17.10.2018
09:22:50
ну ок, подождем когда апнут заготовки в андроид студио. Хотя саппорт либс уже подключены на старте

Кита
17.10.2018
09:23:20

Max
17.10.2018
09:26:21
Я до сих пор не могу точно осознать как там можно было забить гвоздями
Просто железными нитками связать и логику и модель и вью
И назвать это клиан арчитект

Paul
17.10.2018
09:27:52
да есть у них mvvm, он входит а архитектурные компоненты.
он просто уродлив слегка

Max
17.10.2018
09:28:14

Paul
17.10.2018
09:28:37
ну хорошо) Но есть еще сторонние либы, реактивщина всякая

Boris
17.10.2018
09:30:48

Paul
17.10.2018
09:31:38

Boris
17.10.2018
09:32:25
Сегодня уже второй час воюю с TabLayout в ведре в Xamarin+Native. Табы не отображают текст ровно на одной модели устройства
Что бы изменилось если бы я делал чисто на Native?

Paul
17.10.2018
09:33:11
это железячники виноваты. наверное

Boris
17.10.2018
09:33:19
Ничего. Уродский axml по прежнему бы рендерился глючным ведерочным движком

Google

Boris
17.10.2018
09:33:43
В который каждый из производителей сунул свои кривые руки и каждый по своему
Конкретно Samsung причем зачем-то еще и на каждом устройстве сделал это по разному)

Paul
17.10.2018
09:35:26
ну сочувствую, это одни из самых муторных багов. Тоже имел дело с самсунг специфичными багами. Помогли удаленные доступы до девайсов, можно на сайте самсунга найти

Boris
17.10.2018
09:37:19
Я их еще со времен j2me ненавижу. Там у них была "задокументированная особенность", что один из апи загрузки изображений, мог сам автоматом изображение отресайзить под размер экрана
В итоге моя 2д игра со spritesheet'ами у всех выглядела как игра, а у владельцев Samsung - несложно представить как

Paul
17.10.2018
09:38:38
вот это вы ветеран)

Кита
17.10.2018
09:41:04

Boris
17.10.2018
09:42:17
И уж тем более тот движок который это всё отрисовывает (с которым мы к сожалению, сталкиваем и в формсе, пусть часть багов за нас уже и решили)

Кита
17.10.2018
09:43:25
Сделали ещё хуже. Создали вложенностей кучу

Boris
17.10.2018
09:45:02
Да, я видел то дерево, которое форм создает)
Жутко конечно

Paul
17.10.2018
09:45:27
видимо не axml имеется в виду, а xaml. Если да, то смотрите видео от Кита К выше, это реальный ад
опередили

Boris
17.10.2018
09:45:49
Он конечно визуально похож на XAML. Но отличий тоже дофига

Paul
17.10.2018
09:46:54
в андроид xml ты сам верстаешь, и я всегда парюсь, чтобы вложенность контейнеров была минимальная. А в xaml Xamarin.Forms ад из вложенных контейнеров сам происходит

Кита
17.10.2018
09:47:01
Ни одному здоровому человеку axml не кажется нормальным
Да это не самый классный вариант разметки. Те примитивы UIные могут тормозить и ни о каких 30fps нельзя и мечтать, не говоря о 60fps. Кто-то использует Lito чтобы точечно соптимизировать лэйауты. Вот когда формы будут строить свой UI на андроиде с помощью Lito тогда и поговорим)

Google

Paul
17.10.2018
09:49:46
интересная либа для тех, у кого фобия на дизайнеры в IDE. Видел похожее раньше только для iOS

Boris
17.10.2018
09:49:55

Кита
17.10.2018
09:51:27
https://github.com/facebook/litho

Boris
17.10.2018
09:52:30
Спасибо, надо глянуть

Кита
17.10.2018
09:53:03
Была ещё реализация с asyncViews когда интерфейс билдится не в UI треде а в бэкграунде

Valery
17.10.2018
09:59:24

Max
17.10.2018
09:59:44
Нет конечно

Valery
17.10.2018
09:59:50
Сейчас просто нет уведомлений, поэтому нет и числа рядом с ним

Max
17.10.2018
09:59:53
Чаще всего это картинка

Valery
17.10.2018
10:00:07
Свой контрол делали?

Max
17.10.2018
10:00:25
Ну, скорее, генерацию иконки из кода
Или забиваете первые 9 иконок а потом ставите 10+...

Valery
17.10.2018
10:03:59
То есть это Image по сути? Только source меняется

FinniV
17.10.2018
10:04:53
можно же label с drawable ?

Max
17.10.2018
10:05:24
Есть несколько способов это сделать, но самый простой - менять картинки
Если XF - то тут однозначно Icon у ToolbarItem

Valery
17.10.2018
10:06:57
Спасибо