@kotlin_lang

Страница 886 из 982
Valeriy
24.09.2018
19:18:01
Про опыт врать?
хорошо преподнести))

Igor
24.09.2018
19:18:08
Лан лан ребят, это уже в @pofftop

Coconut
24.09.2018
19:18:21
Ладно, спасибо ребят)

Daniil
24.09.2018
20:34:41
Вопросец есть, ребят. Вот есть у меня компаньен. Хочу ему фабричный метод запилить. При этом конструктор класса, в котором объявлен компаньен светить не хочу - нужен private. Если оставить private, то компилятор ругается, мол не могу из компаньена дергать приватный конструктор. Если поменять на конструктор на protected, то все работает за исключением того, что компилятор выдает варнинг, мол используется protected в final классе. class Matrix<T> protected constructor( private val rows : Int, private val cols: Int, private val array: Array<T> ) { companion object { inline fun <reified T> create(rows: Int, cols: Int, noinline producer: (pos: Int) -> T) = Matrix(rows, cols, Array(rows * cols, producer)) } } Согласно документации protected = private + child access. Получается, что это не совсем так?

Google
Иван
24.09.2018
21:18:20
open?

Daniil
24.09.2018
21:20:48
open?
Тут вопрос не в том, как варнинг убрать, а какого хера оно работает :)

Иван
24.09.2018
21:26:03
Вообще тут с private работает: https://stackoverflow.com/questions/45492952/kotlin-factory-function-for-class-with-private-constructor

Может из-за inline?

Badya
24.09.2018
21:34:32
Дело точно в инлайн

Artem
24.09.2018
21:35:12
а зачем там reified?

Badya
24.09.2018
21:37:07
а зачем там reified?
Пихают везде где не лень)

Jonas
25.09.2018
01:00:47
Hi

Stanislav (LZ2HPC)
25.09.2018
06:24:41
Hi Jonas

Alexander
25.09.2018
07:18:44
Прочитал вот статью: https://habr.com/company/jugru/blog/423921/, понял, почему все сейчас ругаются на андроид. Сам я если что на нем разрабатывал несколько приложений, но это было где-то с 2012 по 2014, поэтому мое видение платформы, как выяснилось, сильно отличается от современного.

Quantum Harmonizer
25.09.2018
07:44:07
> ...анонс Android Studio. На тот момент эта IDE была в совсем сырой стадии early access preview. С тех пор ничего не изменилось.

Google
Alexander
25.09.2018
07:46:44
Я начинал еще на эклипсе, правда к счастью не долго. Меня в свое время андроид как платформа довольно сильно впечатлила. Там было несколько дизайн идей мощных. Сейчас, конечно, все это считается само собой разумеющимся. Но вот например идея вездесущего контекста, который передается везде явным образом по-моему недооценена. Это к зятяжному спору про DI

Dmitry
25.09.2018
07:56:19
Это вроде не про котлин, но вообще видимо индустрия слишком молодая. Довольно забавно читать, что телефоны были мол тупыми, и пальцем нельзя было тыкать. Была винмобайл, была пальм, и современные айфоны с андроидами это наследники именно коммуникаторов, а не тупых звонилок. И пальцем там можно было тыкать, и функционала было навалом. Просто за 10 лет до пользователей дошло, что за те же деньги можно взять коммуникатор вместо простой звонилки.

Anton
25.09.2018
07:56:28
а я думаю этот огромный godobject Context ужасная штука

Vladimir
25.09.2018
07:57:10
Alexander
25.09.2018
07:58:38
а я думаю этот огромный godobject Context ужасная штука
Тут была войнушка на эту тему. Я думаю, что все зависит от места применения, но я не видел каких-то основательных аргументов в пользу этой позиции.

Alexander
25.09.2018
07:59:22
Возвращаясь к Котлин, первостатейная поддержка синглетонов существенно упрощает многие вещи, связанные с контекстом

akniyet
25.09.2018
07:59:27


Alexander
25.09.2018
07:59:56
Dmitry
25.09.2018
08:00:15
Ткни в ИДЕ на функцию add и глянь как реализована.

Konstantine
25.09.2018
08:01:42
Тут была войнушка на эту тему. Я думаю, что все зависит от места применения, но я не видел каких-то основательных аргументов в пользу этой позиции.
Его непостоянность, например. Контекст разный по разному может работать в разных ситуациях, на разных версиях, на разных устройствах.

Konstantin
25.09.2018
08:01:44
Хотя тогда айфон от обычного телефона мало чем отличался кроме экрана.

Alexandr
25.09.2018
08:02:52
за место clear() инициализируй заново переменную innerList

Alexander
25.09.2018
08:03:12
Почему это? Если синглетон выполняет роль сервиса, то не вижу вообще ничего плохого.

Dmitry
25.09.2018
08:03:44
Фишка в том, что Джобс "продал" айфон как обычный телефон и сломал аудиторию
Да, рассказал людям, что жигули - лучший в мире велосипед. Действительно - и педали крутить не надо, и багажник большой и т.п. Не понимаю, как разумные люди этим восхищаются. За цену айфона всегда можно было купить нормальным коммуникатор с большим функционалом. И этот маркетинговый ход не имеет вообще ничего общего с технологиями. Единственное что они сделали - дизайн с большими элементами управления. Потому что экран был говно и точность нажатий была очень низкой.

Alexandr
25.09.2018
08:04:10
Alexey
25.09.2018
08:04:20
Почему это? Если синглетон выполняет роль сервиса, то не вижу вообще ничего плохого.
Ну если он реализует что-то, и передаётся ссылкой в качестве зависимости - то ок

Google
Alexander
25.09.2018
08:04:41
Его непостоянность, например. Контекст разный по разному может работать в разных ситуациях, на разных версиях, на разных устройствах.
Ну то, что разные аднроид сервисы по разному работают на разных устройствах - это безусловный косяк андроида. Но к контексту это отношения не имеет. То, что изменяемый, так это очень дешево лечится, введением флажка на запрет изменения после создания.

Alexander
25.09.2018
08:05:44
Ну если он реализует что-то, и передаётся ссылкой в качестве зависимости - то ок
Именно так. Делать синглетон с каким-то изменяемым состоянием кроме кэша - это не есть хорошо

Konstantine
25.09.2018
08:07:11
Alexander
25.09.2018
08:07:33
А контекст какое отношение к этому имеет?

Это косяк реализации активити

Сама идея контекста тут вообще не при чем.

Я бы сказал так. Когда вы точно знаете, какие сервисы у вас будут, то классический DI - это хорошо. Но вот когда вы не знаете заранее, какие модули будут подключены, а какие нет, то подход контекста - очень хорош.

Quantum Harmonizer
25.09.2018
08:09:44
Почему же, она теперь не EAP) А gradle android plugin как был жутким, так и остался
плагин к идее как валился в неожиданных местах, так и валится) Только профайлер стал больше тормозить.

Alexander
25.09.2018
08:10:48
Ну от шаловливых ручек не спасает никакая архитектура, DI будет падать ровно так же.

eugene
25.09.2018
08:11:28
Здравствуйте, подскажите, кто-нибудь уже обновлял kotlin в проектах своих до 1.3.0-rc ?

Alexander
25.09.2018
08:11:35
да

Quantum Harmonizer
25.09.2018
08:11:43
Его непостоянность, например. Контекст разный по разному может работать в разных ситуациях, на разных версиях, на разных устройствах.
Я бы к непостоянности скорее написал, что контекст может быть от разных компонентов и вести себя по-разному.

Alexander
25.09.2018
08:11:43
вот сейчас ковыряюсь

Это зависит от того, как именно сделан контекст. Думаю, что разные типы контекста - это ошибка андроида. Должен быть строго один и тот же класс.

Anton
25.09.2018
08:12:59
>> На каких-то устройствах, делая запуск активити с обычным (не активити) контекстом - приложение упадет. это где так? без синглтаск флага и не должно запускаться вроде

Alexander
25.09.2018
08:13:10
Здравствуйте, подскажите, кто-нибудь уже обновлял kotlin в проектах своих до 1.3.0-rc ?
В продакшн не стоит, лучше подождать до релиза, а так все вроде работает.

Konstantine
25.09.2018
08:13:31
Google
eugene
25.09.2018
08:13:45
В продакшн не стоит, лучше подождать до релиза, а так все вроде работает.
понятно, а когда примерно релиз выходит, вы случайно не подскажете?

Alexander
25.09.2018
08:13:59
Все ждут на KotlinConf, через две недели

уже меньше

eugene
25.09.2018
08:14:33
ок

Alexander
25.09.2018
08:15:30
Об этом и речь, только плюс еще и разное поведение на разных устройствах
Опять же это не контекст, а те сервисы, которые он подключает. Если он себя ведет по разному, то это опять же косяк разработки. Одна из главных проблем андроида - это то, что гугл не зафиксировал жестко некоторые детали реализации с самого начала.

Sergey
25.09.2018
08:16:19
а как можно зафиксировать что-то что под апач-2.0?

Admin
ERROR: S client not available

Sergey
25.09.2018
08:16:54
если некоторые вендоры(привет самсунг) почти все переписывали под себя

Quantum Harmonizer
25.09.2018
08:16:56
а как можно зафиксировать что-то что под апач-2.0?
так, что бинарная совместимость сломается, если поменять :)

Dmitry
25.09.2018
08:17:46
а как можно зафиксировать что-то что под апач-2.0?
Лицензией на использование проприетарных гугл сервисов. Без них сейчас андроид телефон на рынок выкидывать смысла мало, так что большая часть кода под апачем от диктатуры гугла никак не защищает.

Sergey
25.09.2018
08:17:48
так, что бинарная совместимость сломается, если поменять :)
ну некоторые китайцы меняли рантайм, и оно ломало некоторые приложения )

Konstantine
25.09.2018
08:18:36
* в разных версиях ОС
И на разных устройствах тоже.

Sergey
25.09.2018
08:18:47
Alexander
25.09.2018
08:18:53
Я скорее про то, что в документации должно быть жестко прописано, как оно должно работать

Dmitry
25.09.2018
08:18:58
это у гугла единственный рычаг давления
Не единственный, есть еще программа для вендоров в рамках которой предварительные билды показывают и т.п.

Google
Quantum Harmonizer
25.09.2018
08:19:41
И на разных устройствах тоже.
На тех, где производитель что-то «правит»? Тогда это, строго говоря, не проблема андроида.

Konstantine
25.09.2018
08:20:08
Sergey
25.09.2018
08:20:18
Я скорее про то, что в документации должно быть жестко прописано, как оно должно работать
так а толку с документации, если какой-нибудь сяоми перепишет мемори менеджер к примеру? ? дока и сейчас есть и ориентируется на АОСП

Quantum Harmonizer
25.09.2018
08:20:31
Если так строго говорить, то у андроида давно проблем нет )
Почему же? Фреймворк говно — вполне себе проблема.

мы, кстати, не в @kotlin_mobile ?

Alexander
25.09.2018
08:21:17
так а толку с документации, если какой-нибудь сяоми перепишет мемори менеджер к примеру? ? дока и сейчас есть и ориентируется на АОСП
Мемори мэнеджер - это или работает или не работает. А вот кастомные поля в интентах - это вполне лечится документацией

Konstantine
25.09.2018
08:21:32
Почему же? Фреймворк говно — вполне себе проблема.
Верните мне мой 2013. Гавно он из-за фрагментации, но строго говоря это не проблема андроида )

Sergey
25.09.2018
08:21:48
все описано ровно то что есть в AOSP

Quantum Harmonizer
25.09.2018
08:22:28
Konstantine
25.09.2018
08:23:23
А что, в 2013 что-то было иначе со стороны андроида?
Суть сообщения во второй части. Это лишь шутейка про еще более дерьмовый фреймворк.

Alexander
25.09.2018
08:23:24
По моей памяти косяки были, но не то, чтобы супер радикальные.

Обмен сообщениями между активити был через задницу. Это да. И это вряд ли вылечилось

Quantum Harmonizer
25.09.2018
08:25:06
За десять лет эволюции Google успели добавить фрагменты и задепрекейтить их. ?

Konstantine
25.09.2018
08:25:56
Снова, строго говоря, не проблема андроида ?

Stepan
25.09.2018
08:26:06
За десять лет эволюции Google успели добавить фрагменты и задепрекейтить их. ?
Там вроде 2 реализации фрагментов, одна ещё актуальная)

Да и на androidx тоже что-то появилось

Quantum Harmonizer
25.09.2018
08:26:56
Снова, строго говоря, не проблема андроида ?
Почему? Во фреймворк что-то добавили, а потом сказали «не пользуйтесь», вроде как именно его и проблема.

Там вроде 2 реализации фрагментов, одна ещё актуальная)
Актуальной реализации нет во фреймворке.

Konstantine
25.09.2018
08:27:33
Почему? Во фреймворк что-то добавили, а потом сказали «не пользуйтесь», вроде как именно его и проблема.
Из-за производителей, которые не обновляют ондроед. Перенесли все в саппорт, чтобы везде и всё было актуально.

Maxim
25.09.2018
08:27:41
За десять лет эволюции Google успели добавить фрагменты и задепрекейтить их. ?
у них как бы новая система навигации заточена под single activity app, а значит все на фрагментах

Страница 886 из 982