
Лёша
06.04.2017
12:03:00

Михаил
06.04.2017
12:09:50
поясните плиз. в котлине возможно обойтись без джавовского рефлекшена?
мне допустим надо статик файнал поле класса поменять
как мне это чисто на котлине без использования джавовского рефлекта сделать?

Google

Ruslan
06.04.2017
12:13:25
The currently selected Java debugger doesn't support breakpoints of type 'Kotlin Line Breakpoints'. As a result, these breakpoints will not be hit. - сталкивался кто?

Roman
06.04.2017
12:17:29

Andrey
07.04.2017
10:28:54
Всем привет! Как в tg://resolve?domain=kotlin_jobs вакансию закинуть?
Или можно сюда?

Руслан
07.04.2017
10:29:15
Можно сюда, а добавлю


Andrey
07.04.2017
10:30:32
Вакансия: #java #kotlin
З/п: до 200к.
Локация: #москва #мск
Контакты: @andreyvesnin
Ссылка на HH: https://hh.ru/vacancy/20178513
Ищем Java-программиста в международную компанию, занимающуюся спортивными ставками и разработкой соответствующего ПО.
По факту большая часть Java-разработки сейчас переводится на Kotlin.
Задачи на ближайшее время:
- Написание новой комплексной системы для букмекерских компаний
- Развитие системы для взаимодействия с CPA-сетями
Чего ждём:
- Опыт разработки на Java с текущим уровнем Senior / Middle+
- Стремление понимать то, КАК технологии работают, а не только как их использовать
Будут плюсом:
- Опыт работы с Kotlin либо простая любознательность и тяга к новым технологиям
- Опыт разработки микросервисной архитектуры
PostgreSQL, RxJava, Ratpack, Netty, Hazelcast (используются в компании)
Условия:
Интересные проекты с новыми технологиями (реактивное программирование, микросервисная архитектура, тот же Kotlin)
Адекватный уровень заработной платы
Офис в шаговой доступности от м. Волгоградский проспект / Пролетарская


Sergey
07.04.2017
10:52:00
а говорили бекенда на котлине нет

Boris
07.04.2017
10:54:13
Вот тоже подумал

Igor
07.04.2017
10:55:59

Boris
07.04.2017
10:57:01
А кто-то в этой погрешности работает ?

Quantum Harmonizer
07.04.2017
11:25:29
Что-то я 200к видел только в букмекерстве, бинарных опционах и брокерстве. Печальбеда.

Alexander
07.04.2017
11:31:43
ну вообще сейчас очень много где
даже больше

Google

Roman
07.04.2017
11:51:30
Если что, слух прошел, что бэкенда на котлине примерно столько же сколько Андройда

? animufag ?
07.04.2017
11:54:55

Nikita
07.04.2017
11:55:45
Выборка нерепрезентативна

Art
07.04.2017
12:01:19
Привет !
Можно ли в VS Code собрать андроид апп с котлин.
Есть ли IDE для сбора андроид апп кроме интеллиJ ?

Nikita
07.04.2017
12:01:56
Эклипсина есть

Sergey
07.04.2017
12:05:47

Roman
07.04.2017
12:26:54
Слух оч репрезентативен ))

Igor
07.04.2017
12:29:13

Alina
07.04.2017
12:56:44
Сделали онлайн голосовалку за фичи, кто хотел? https://goo.gl/S503K9
Думаю можно запинить числа до 17го @HeapyHop

Руслан
07.04.2017
12:58:22
Напомнишь убрать :)

Alina
07.04.2017
13:00:09

Roman
07.04.2017
13:44:31
а как от DDOS будете защищать?
=)

Igor
07.04.2017
13:57:50
Не могу найти инспекшен для Kotin на тему "`игнорирование результат функции (НЕ Unit))`".
Никто не знает, есть ли он вообще, может как-то подругому называется?

Roman
07.04.2017
15:14:44
есть ли какие-то красивые способы решения проблемы с занулением свойств, чтобы предотвратить меморилик во фрагменте?
понятно, что можно делать все такие поля var nullable, но это засоряет в итоге код, так как по своей природе такое поле lazy с возможностю удаления. мб как-то можно через делегаты реализовать это?

? animufag ?
07.04.2017
15:19:06
Вроде не имеет ничего общего с lazy.
я бы подумал что можно сделать WeakReferenceDelegate, который соответственно хранит в себе WeakReference и отдаёт опшонал

Roman
07.04.2017
15:22:19

Google

Roman
07.04.2017
15:23:53
просто странно. для андроид разработки это супер стандартный кейс - неужели никто ничего еще не придумал?

Max
07.04.2017
15:25:45
Я чето не догоняю, где у тебя потекет?

Roman
07.04.2017
15:28:35

Max
07.04.2017
15:30:44
Какое Вью?
Может пример кода лучше скинуть

Roman
07.04.2017
15:31:53
Какое Вью?
фрагмент в бэкстек положили например. фрагмент как объект жив, вью удален.

? animufag ?
07.04.2017
15:32:20

Roman
07.04.2017
15:33:18
может быть истанс делегата сохранять и потом на нем какой-то метод очищения вызывать.. хочется как-то лаконично это все сделать

Max
07.04.2017
15:34:59
Может не использовать фрагменты, в таком случае
Мне кажется там не потекет, Гц разберется

Roman
07.04.2017
15:36:23
Может не использовать фрагменты, в таком случае
из-за особенностей языка программирования и желания писать более простой код на нем? =) ну это как-то странно. тем более что приложение уже работает на фрагментах и такого варианта пока нет. по крайней мере не на этой итерации.
Мне кажется там не потекет, Гц разберется
как он разберется? есть объект - живой. он держит стронг референц на другой. тут без вариантов. тем более что это не что-то новое, а стандартная особенность фрагментов, с которой все так или иначе сталкиваются. в java просто добавляешь someField = null в нужном методе и все. остальной код при этом не заполняется дополнительной логикой

Andrew
07.04.2017
15:39:36
Мне кажется, ты пытаешься Disoposable из C# придумать

? animufag ?
07.04.2017
15:39:49

Max
07.04.2017
15:41:22
Не понимаю, чем нулабле не нравится?
!! Поставил, раз уверен, что не нул, и все

Roman
07.04.2017
15:42:31

Max
07.04.2017
15:42:32
А при необходимости занулил

Google

Roman
07.04.2017
15:43:11
то есть инициализация гарантируется разработчиком, дальше свойство обычный val. дальше разработчик гарантирует что не использует свойство после деинициализации. правда нужно еще иметь возможность проверить текущее состояние для пересоздания

? animufag ?
07.04.2017
15:45:06
> дальше разработчик гарантирует что
это равносильно !! только хуже
ты по сути говоришь своим коллегам, что в коде всё ок, но на самом деле должен на каждом ревью проходится по всем таким свойствам

Max
07.04.2017
15:46:38
Мне кажется надо пересмотреть подход

Roman
07.04.2017
15:46:59
> дальше разработчик гарантирует что
это равносильно !! только хуже
почему? в андроиде есть совершенно определенный контракт навязанный архитектурой платформы. зануление происходит ВСЕГДА в одном и всем известном месте в колбэке который обеспечивает фреймворк. Любой коллега понимает это за 5 минут. дальше ничего проверять не нужно вообще. только код пиши.

Andrew
07.04.2017
15:47:35
В теории - да

Admin
ERROR: S client not available

Andrew
07.04.2017
15:47:39
))

Roman
07.04.2017
15:47:55
а на практике при первом же запуске упадет - не проблема вообще
никаких отличий от !! тут не вижу по опасности

Andrew
07.04.2017
15:48:20
Не обязательно на первом)

Roman
07.04.2017
15:48:26
только !! писать не нужно
даже если не на первом. оно и в джаве ровно также упадет. ничего тут не ухудшается относительно java или nullable+!!
тут nullable вынужденный, он не определен бизнес логикой кода. при такой ситуации все равно его разрулить никак иначе кроме !! нельзя. а значит про безопасность говорить нечего. не было ее тут в джаве и не будет в котлине. главное чтобы хуже не стало - так вот не станет. ровно также =)

? animufag ?
07.04.2017
15:51:30
ты просто в определенный момент загнал себя в рамки !!
ты можешь ставить вопросительные знаки
всё чисто безопасно
язык предоставляет много средств чтобы можно было писать эти вопросы реже

Roman
07.04.2017
15:53:13
нет. не могу. код должен падать и только падать при такой ситуации если поле null и я его использую. вопросительные знаки имеют другую семантику и отложат ошибку и сделают ее труднообнаруживаемой. ? только для тех случаев когда это НОРМАЛЬНО если код не выполнится и это штатная ситуация

Google

Roman
07.04.2017
15:54:13

? animufag ?
07.04.2017
15:55:32
ссылки нужно только на вьюхи, верно?
реально интересно воспроизвести проблему.
я думал что все такие траблы растут от asyncTask или всякие rx.
Смотри фрагмент твой в любом случае не умрёт, если я тебя понял?
и тебе жалко памяти на его поля?

Roman
07.04.2017
15:59:15
и тебе жалко памяти на его поля?
мне не жалко памяти на поля, если эти поля не держат вью. а если они держат вью, все очень плохо. там битмапы и тп. и все это очень много может весить
у меня в приложении лента с картинками
если вью утекает то 10-20мб может утечь за раз. таких ленты 4 в разных табах. прошел по табам и привет - OOM
это просто ситуация где это очень явно видно, но понятно что утекать будет и без картинок и табов

? animufag ?
07.04.2017
16:02:24
Ну короче по красоте это можно организовать как вьюхолдер в ресайклере
ты описываешь вложенную структурку содержащую поля, которые нужно обнулять (вьюхи)
описываешь метод который инициализирует эту структурку

Roman
07.04.2017
16:05:54
так вьюхи потом доставать же все равно также как nullable придется?

? animufag ?
07.04.2017
16:06:02
ну и переопределяешь все методы фрагмента, добавляя к ним передачу этой структурки (с проверкой на нул или !!)
ну думаю ты понял идею. думаю это не так уж запарно будет, если это у тебя постоянно встречается в разработке
ну и потом в частных случаях наследуешься от получившегося фрагмента
больно короче это представлять
лучше бы нулейбл просто сделать

Boris
07.04.2017
16:10:31
вроде недавно это обсуждали, если очень хочется, то можно без проблем сделать свой делегат
просто придется и на делегат тоже ссылку сохранить рядом