
Dzmitry
03.05.2017
15:17:29
поэтому иногда их больше чем нужно получается
Proguard поможет выпилить такую шнягу
правда не всегда

Quantum Harmonizer
03.05.2017
15:19:26

Google

Pavel Shackih
03.05.2017
15:24:16

Dzmitry
03.05.2017
15:25:00
но он там не все может вычистить, но спасает все таки

Quantum Harmonizer
03.05.2017
15:25:10
Прям всё? Там же по идее много очевидных оптимизаций.

Pavel Shackih
03.05.2017
15:27:06
было
Bundle var3 = new Bundle();
Bundle $receiver$iv = (Bundle)var3;
Bundle $receiver = (Bundle)$receiver$iv;
$receiver.putSerializable("error", (Serializable)error);
Bundle var10 = (Bundle)var3;
стало
Bundle localBundle1 = new Bundle();
Bundle localBundle2 = localBundle1;
Bundle localBundle3 = localBundle2;
localBundle3.putSerializable("error", (Serializable)paramThrowable);
Bundle localBundle4 = localBundle1;
мне кажется прогард не настолько умный, чтобы такое свернуть

Quantum Harmonizer
03.05.2017
15:31:05
джава нерепрезентативна, байт-код нада
по идее ProGuard умеет оптимизировать граф управления


Pavel Shackih
03.05.2017
15:48:56
ох, в байткоде всё вроде ок
public final org.aim.wallpaper.ui.a.f a(java.lang.Throwable);
Code:
0: aload_1
1: ldc #2 // String error
3: invokestatic #18 // Method d/d/b/g.b:(Ljava/lang/Object;Ljava/lang/String;)V
6: new #10 // class org/aim/wallpaper/ui/a/f
9: dup
10: invokespecial #20 // Method org/aim/wallpaper/ui/a/f."<init>":()V
13: astore_2
14: aload_2
15: astore 9
17: new #6 // class android/os/Bundle
20: dup
21: invokespecial #16 // Method android/os/Bundle."<init>":()V
24: astore_3
25: aload_3
26: astore 4
28: aload 4
30: astore 5
32: aload 5
34: ldc #2 // String error
36: aload_1
37: checkcast #8 // class java/io/Serializable
40: invokevirtual #17 // Method android/os/Bundle.putSerializable:(Ljava/lang/String;Ljava/io/Serializable;)V
43: aload_3
44: astore 10
46: aload 9
48: aload 10
50: invokevirtual #21 // Method org/aim/wallpaper/ui/a/f.setArguments:(Landroid/os/Bundle;)V
53: aload_2
54: areturn
хотя предыдущий кусок был из jad gui, он же эти присваивания не сам придумал после обфускации


Roman
03.05.2017
16:51:38
хочу сделать enum внутри класса и как параметр передать туда экземпляр inner класса. получаю ошибку "constructor of inner class can be called only with receiver of containing type"
как можно вызвать конструктор с "receiver of containing type"? есть какой-то синтаксис для этого?

Михаил
03.05.2017
16:54:09
разве конструктор енама можно вызвать вне енама?

Roman
03.05.2017
16:58:16
разве конструктор енама можно вызвать вне енама?
вроде как нельзя. в этом и проблема. а класс enum статический как бы, не inner. что в этом случае можно сделать? вижу два варианта: sealed классы вместо enum и установка свойства не через конструктор, а через сетер. есть варианты лучше?
причем sealed класс же тоже нельзя inner сделать

Google

Roman
03.05.2017
17:08:49
и сделать не абстрактный проперти в енуме тоже нельзя

Quantum Harmonizer
03.05.2017
17:36:29

Roman
03.05.2017
17:38:29
но громоздко

Митко Соловец?
03.05.2017
19:57:17
пацаны, креатив зацените

?FLERRY?
03.05.2017
19:58:07
Шок-контент

Quantum Harmonizer
04.05.2017
09:26:26
Есть способы найти использование destructuring?
Как, например, Ctrl + клик на конструкторе покажет, где создаются экземпляры, и т. д.

Pavel ?
04.05.2017
10:11:45
парни
куда делся kotlin-maven-plugin?
кто в курсе?

Pavel Shackih
04.05.2017
10:17:40

Pavel ?
04.05.2017
10:20:10
https://search.maven.org/#search%7Cga%7C1%7Ckotlin

Pavel Shackih
04.05.2017
10:22:07
вот же он http://central.maven.org/maven2/org/jetbrains/kotlin/kotlin-maven-plugin/1.1.2-2/

Pavel ?
04.05.2017
10:24:59
а все...это у нас проблемы
спасибо

Руслан
04.05.2017
10:28:16
May the force be with you! ?

Михаил
04.05.2017
11:18:17
ништяк
опять обновление котлин плагина мне андроид студию сломало

Google

Quantum Harmonizer
04.05.2017
11:19:22
каким образом?

Михаил
04.05.2017
11:20:19
студия не запускалась

Igor
04.05.2017
13:43:47
Есть тут бойцы которые с KotlinJS + ReactJS / ReactNative игрались?
Поделитесь опытом (ни как не могу решить TypeScript или KotlinJS).

Badya
04.05.2017
13:50:10
Если время позволяет залезай в котлован)

pplcf
04.05.2017
14:15:00
у меня недавно такой же выбор стоял
выбрал все таки TS
если есть время и пишете все своё , то KotlinJS думаю вполне себе выбор
"все своё" - в рамках реакта, конечно
мне вот antd нужен был

Igor
04.05.2017
14:18:45
Если время позволяет залезай в котлован)
Что-то не убедительно (опыта я так понял нет).
У Kotlin единственные плюсы это язык (кейс классы и when почти как в scala, в TS с этим хуже)
У TS НЕТ лока на IDE, можно писать хоть VSCode, быстрая компиляция (транспайлинг), JSX шаблоны.

pplcf
04.05.2017
14:25:51
F# - fable?

Igor
04.05.2017
14:27:01
F# - fable?
Я и сказал что “все плохо”, а не “нет вариантов” ?

Quantum Harmonizer
04.05.2017
14:27:24

pplcf
04.05.2017
14:27:33
там же знак вопроса

Igor
04.05.2017
14:28:42
btw, пробовл elm?
Вот кстати все советую (и в F# чате тоже), реально стоит покопать.
Я просто боюсь что там “Бизнес Логику” будет сложно описывать, ведь он вроде для UI.

Quantum Harmonizer
04.05.2017
14:29:40

Sergey
04.05.2017
14:42:07
в сжатом виде?

Quantum Harmonizer
04.05.2017
14:47:09

Dzmitry
04.05.2017
15:19:55
>но stdlib ktjs — мегабайт, что печально
Я в джава скрипте конечно не шарю, от слова совсем, но помню мне рассказывали, что всякие веббаки там все перепаковывают и вырезают лишнее на отлично (типо прогуарда в жаве). Не помогает?

Google

Quantum Harmonizer
04.05.2017
15:21:37
Я тоже не силён. Использую Uglify, но не знаю, как он работает.)

Igor
04.05.2017
15:24:40

Максим
04.05.2017
15:26:12

Admin
ERROR: S client not available

Igor
04.05.2017
15:37:54

Quantum Harmonizer
04.05.2017
15:39:24

Igor
04.05.2017
15:48:59
JB вроде пишут.)
Единственное их мобильное приложение это Youtrack Mobile
97% JavaScript https://github.com/JetBrains/youtrack-mobile это даже не TypeScript - :absolutely disgusting:)

? animufag ?
04.05.2017
15:49:41

Quantum Harmonizer
04.05.2017
15:52:16

Igor
04.05.2017
15:55:15


? animufag ?
04.05.2017
15:59:15
Ну и первый вопрос тоже можно назвать вбросом. Но всё равно интересно как ты себе представляешь ui язык

Igor
04.05.2017
16:27:49

? animufag ?
04.05.2017
16:38:12
Может reasonml?

Sergey
04.05.2017
16:51:46

Igor
04.05.2017
16:52:11

Sergey
04.05.2017
16:53:39
ссылку плиз
https://blog.jetbrains.com/kotlin/2017/04/use-kotlin-with-npm-webpack-and-react/
мой домашний проект на реализации от androwoma, даже пару коммитов сделал. Но сейчас в плана перейти на реализацию от jb.

Google

Igor
04.05.2017
16:55:24

Sergey
05.05.2017
11:09:22
Как избавиться от cast?
val handlers = HashMap<Class<*>, (Any) -> Unit>()
fun <T> setHandler(clazz: Class<T>, handler: (T) -> Unit) {
handlers.put(clazz, handler as (Any) -> Unit)
}

? animufag ?
05.05.2017
11:13:27
fun <T: Any>

Quantum Harmonizer
05.05.2017
11:13:34

Badya
05.05.2017
11:13:56
class Some<T> {
val handlers = HashMap<Class<T>, (T) -> Unit>()
fun setHandler(clazz: Class<T>, handler: (T) -> Unit) {
handlers.put(clazz, handler)
}
}

Quantum Harmonizer
05.05.2017
11:14:22

? animufag ?
05.05.2017
11:14:46
будет круто если мой совет решит не разрешимую задачу

Sergey
05.05.2017
11:14:54

Quantum Harmonizer
05.05.2017
11:15:48

Badya
05.05.2017
11:15:52
дай им общий интерфейс Handable и пиши class<T : Handable> ?

? animufag ?
05.05.2017
11:17:06
хотя нет, не помогло.

Quantum Harmonizer
05.05.2017
11:17:53

Sergey
05.05.2017
11:18:43