@kotlin_lang

Страница 66 из 982
Igor
07.03.2017
11:27:30
никак, только аннотациями, либо именем, либо пакетом
Да пожалуй раскидаю им Serializable, это же вроде норм.

Max
07.03.2017
11:27:55
нет, там для прогуарда же есть специальная аннотация

нахера костыли делать

Google
Igor
07.03.2017
11:29:16
нет, там для прогуарда же есть специальная аннотация
В смысле, почему не норм? Я в прогуарде добавлю игнор всего что имплементит serializable.

Max
07.03.2017
11:29:35
есть android.support.annotation.Keep в андроиде

и если конфиг прогуарда настроен правильно в градле proguardFiles getDefaultProguardFile('proguard-android-optimize.txt'), 'project_custom_file.pro' то все заведется как надо. proguard-android-optimize.txt - этот файл автоматом должен подтянуться, он идет с android sdk

просто иплементить serializable, чтобы прогуард не трогал - это жесть

Igor
07.03.2017
11:32:34
есть android.support.annotation.Keep в андроиде
Но у меня кроссплатформенная игруля и весь код лежит в чистом Java SE модуле. И не понимаю почему "обвешивать весь код Android аннотациями" - меньшая жесть

Max
07.03.2017
11:33:41
ну вот аннотацию накинь тогда лучше, кастомную, выглядеть хотя бы лучше будет, а то не помнятно, нахрена у тебя синглтон имплементит serializable

почему весь? если тебе надо сохранить какой-то пакет, то юзай пакет в прогуарде

Max
07.03.2017
11:34:43
а object - это не синглтон в котлине что ли?

а, там речь шла про data, сорян

Igor
07.03.2017
11:35:14
а object - это не синглтон в котлине что ли?
И про object я тоже не писал. Я говорил только про data class.

Quantum Harmonizer
07.03.2017
11:35:49
Ну, обвешать @Keep определённо лучше, чем Serializable.

Google
Igor
07.03.2017
11:36:15
Serializable тоже не требует ничего имплеменить

Max
07.03.2017
11:36:21
тем, что аннотация явно говорит нахрена она тут нужна

Quantum Harmonizer
07.03.2017
11:37:54
Чем?
Тем, что @Keep чётко показывает, что класс не будет выпилен, а Serializable, во-первых, намекает на сохранение сохранение класса лишь косвенно, и, во-вторых, втаскивает функциональность, которая может быть не нужна.

Igor
07.03.2017
11:38:31
тем, что аннотация явно говорит нахрена она тут нужна
Очень спорно и мне скорее всего придется пилить свою аннотацию (что бы протащить на desktop/ios) А это data class я заодно смогу и между активитей гонять (в будущем).

Max
07.03.2017
11:39:08
между активитей не надо классы гонять

Igor
07.03.2017
11:39:30
между активитей не надо классы гонять
Чувак ты полон стереотипов/предубеждений

Sergey
07.03.2017
11:39:59
Igor
07.03.2017
11:40:02
хм...
А пруф что Гонять Serializable в Android между активитями не нужно.?

Quantum Harmonizer
07.03.2017
11:40:50
А пруф что Гонять Serializable в Android между активитями не нужно.?
Сериализация — долго и громоздко, об этом есть в мануалах.

Igor
07.03.2017
11:40:59
размер IPC Binder’a мал
Ну мы же говорим про простые объекты с парой-тройкой полей. Где то я видел примеры как в гугл Bitmap гоняли между активитей.

Max
07.03.2017
11:41:12
ой, да че они только не делали

Max
07.03.2017
11:41:22
parcelable тоже не надо гонять

Quantum Harmonizer
07.03.2017
11:41:31
Igor
07.03.2017
11:41:54
Так Bitmap — Parcelable.
Меньше он от этого не становится (если мы говорим про размер bundle )

Google
Max
07.03.2017
11:42:04
ну объекты с 1-2 полем еще можно простить, но лучше id в бд и на новой активити из бд дергать

Quantum Harmonizer
07.03.2017
11:42:23
Меньше он от этого не становится (если мы говорим про размер bundle )
Становится, потому что сериализация втаскивает описание класса.

Igor
07.03.2017
11:42:34
ну ты же на написал что хочешь там ганять
Ну так и не надо давать "общие советы", не знаю специфики

Quantum Harmonizer
07.03.2017
11:42:55
Sergey
07.03.2017
11:43:07
Igor
07.03.2017
11:43:08
Становится, потому что сериализация втаскивает описание класса.
Я иммел ввиду в сравнение с классами данных

Sergey
07.03.2017
11:43:09
#1

Igor
07.03.2017
11:43:15
Можно ссылку

Sergey
07.03.2017
11:43:24
Можно ссылку
https://realm.io/news/romain-guy-chet-haase-developing-for-android/

Chet Haase

Max
07.03.2017
11:43:45
чет отошли от темы

в общем я бы не стал делать serializeble только ради сохранения прогуардом

Max
07.03.2017
11:44:18
а дальше дело автора :)

Igor
07.03.2017
11:44:56
#1
Там еще много крутых советов которым никто не следует. В общем всегда надо искать компромисы.

Quantum Harmonizer
07.03.2017
11:46:12
Там еще много крутых советов которым никто не следует. В общем всегда надо искать компромисы.
Так это уже личное дело каждого, последовать советам или написать приложение типа фейсбука :)

Sergey
07.03.2017
11:46:16
Там еще много крутых советов которым никто не следует. В общем всегда надо искать компромисы.
ну, они говорят что и как лучше работает на андроид, а ты уже решаешь сам

Igor
07.03.2017
11:47:14
ну, они говорят что и как лучше работает на андроид, а ты уже решаешь сам
Ну да, как обычно - мы сделали все криво, отдувайтесь разработчики.

Igor
07.03.2017
11:48:01
Да я уже привык (правда за столько лет уже тошнит от это "архитектуры")

Google
Quantum Harmonizer
07.03.2017
11:48:26
Ну да, как обычно - мы сделали все криво, отдувайтесь разработчики.
Кривота, несомненно, присутствует, но это отнюдь не значит, что Serializable — лучший способ сохранить класс и передать объект.

Igor
07.03.2017
11:53:28
Кривота, несомненно, присутствует, но это отнюдь не значит, что Serializable — лучший способ сохранить класс и передать объект.
Лучше по старинке настрою proguard-rules.pro (все таки это чисто android проблемма), чем засорять кросплатформенный код аннотациями и интерфейсами.

Slava
07.03.2017
12:40:43
Ребят, а я пользуюсь Gson'ом для сериализации/десериализации каких-то моделей и передачи их в качестве аргумента в интент или фрагмент. На сколько это хуже, чем парсел?

Quantum Harmonizer
07.03.2017
12:51:10
Ребят, а я пользуюсь Gson'ом для сериализации/десериализации каких-то моделей и передачи их в качестве аргумента в интент или фрагмент. На сколько это хуже, чем парсел?
Это занимает больше памяти, но парсится не намного медленнее (за исключением первого раза), если использовать тот же экземпляр Gson'а.

Quantum Harmonizer
07.03.2017
12:52:57
Slava
07.03.2017
12:53:20
гуд, спасибо

Admin
ERROR: S client not available

Roman
08.03.2017
08:54:45
есть ли какой-то способ сделать чтобы объявленный в котлине метод был с точки зрения Java статическим и при этом не было дополнительного внутреннего индентификатора для доступа к нему? т.е. SomeClass.staticMethod() вместо SomeClass.INSTANCE.someMethod()

balolam
08.03.2017
08:58:06
@JvmStatic

Руслан
08.03.2017
08:58:16
class Some { companion object { @JvmStatic fun test() { } } }

Roman
08.03.2017
09:00:57
спасибо!

а тоже самое для внутреннего статического класса существует?

@JvmStatic можно только к методу применить

Руслан
08.03.2017
09:02:49
А зачем внутренний именно? Можно просто сделать класс

Roman
08.03.2017
09:06:40
А зачем внутренний именно? Можно просто сделать класс
допустим есть класс на Java SomeClass в нем есть внутренний статический SomeStaticClass. И Есть код на Java которые использует SomeClass.SomeStaticClass. Теперь при конвертации SomeClass на котлин ломается весь код который использовал SomeStaticClass. А это как-то не очень. В моем случае это внутри проекта, могу поправить, но в общем случае может же стать проблемой

Руслан
08.03.2017
09:25:41
Ну так это просто class SomeClass { class SomeStaticClass {

Roman
08.03.2017
09:31:39
Ну так это просто class SomeClass { class SomeStaticClass {
да, действительно просто =) спасибо.

Ruslan
08.03.2017
20:34:32
Привет, кто-то уже юзает корутины ?

А то я вроде включил а они не пашут

Google
Igor
08.03.2017
20:34:53
А то я вроде включил а они не пашут
Код покаж и что значит "не пашут"?

Ruslan
08.03.2017
20:36:42
Код покаж и что значит "не пашут"?
Идея говорит мол, нет таких функций

Igor
08.03.2017
20:37:44
Идея говорит мол, нет таких функций
Это устаревший синтаксис, сейчас там по другому

Ruslan
08.03.2017
20:38:04
а, понял, сейчас погуглю

Igor
08.03.2017
20:39:56
а, понял, сейчас погуглю
ты вообще что юзаешь для асинков (completablefuture / rx)?

Ruslan
08.03.2017
20:40:21
Igor
08.03.2017
20:42:09
пока ничего, я нуб еще
Выбираешь любой из https://github.com/Kotlin/kotlinx.coroutines Я к примеру написал свои для CompletableFuture из https://github.com/streamsupport/streamsupport (по шаблону из kotlinx.coroutines)

Sergey
08.03.2017
20:42:29
корутинки уже активно юзаете в проде?

Igor
08.03.2017
20:47:07
корутинки уже активно юзаете в проде?
Пока не получается. Пытаюсь скрестить с монадой Reader, но пока не получается.

Руслан
08.03.2017
20:48:13
Это устаревший синтаксис, сейчас там по другому
Ну технически так они могут работать, просто сейчас либа просит контекст явно передавать на вход async

Igor
08.03.2017
20:51:19
Ну технически так они могут работать, просто сейчас либа просит контекст явно передавать на вход async
Блин, по текущей реализации коррутин можно отдельную книгу выпускать "Async in Kotlin 1.1" (такие они стали сложнее)

Руслан
08.03.2017
20:52:08
Я вот после релиза сел посмотреть, и мне показалось все даже проще и логичнее чем было в первой реализации

Ну и гибче при этом стало

Igor
08.03.2017
20:54:11
Я вот после релиза сел посмотреть, и мне показалось все даже проще и логичнее чем было в первой реализации
Юзать или писать свои? Теперь уже в самой std lib больше 10 файлов связанных с корритинами и десятки (сотня) классов в "kotlinx.coroutines"

Ну и гибче при этом стало
Ну гибче это несомненно

Igor
08.03.2017
20:58:50
Ну я скорее про писать
Ну хз, как по мне стало менее тривильно. Сейчас не могу разобраться с CoroutineContext - какой юзать если я хочу синхронно выполнение (там больше 20 реализаций)? EmptyCoroutineContext - это заглушка или дефолтная реализация?

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