
Стас
25.02.2017
17:30:59
А я и думаю, что за Robolectrik такой используется для теста этого клиента на его родном гитхабе...

Sergey
25.02.2017
17:31:56
P.S. я бы не советовал в учебный проект RxJava и Anko

Стас
25.02.2017
17:32:36

Google

Sergey
25.02.2017
17:33:21

Стас
25.02.2017
17:33:57
с джавой знаком, слава Богу 8)

Sergey
25.02.2017
17:34:49
а, так вы из большой джавы в мобайл? )

Стас
25.02.2017
17:35:09
совершенно верно! и хочу вкатиться сразу на котлине туда
и ещё не совсем понял экосистему андроида. Оказалось, что либы должны работать сугубо из рантайма зелёного, а если их тестить, то надо примочки всякие ставить. Верно?
типа Robolectric, Espresso

Sergey
25.02.2017
17:37:02
их должен автор тестить

Стас
25.02.2017
17:38:22
Имеется в виду Test Drive Development как парадигма разработки: нет теста - нет кода
*Driven

Sergey
25.02.2017
17:39:01

Стас
25.02.2017
17:39:07
+

Sergey
25.02.2017
17:39:40
разделяй и властвуй )

Google

Sergey
25.02.2017
17:40:18
и еще для вас станут приятным сюрпризом в будущем некоторые вещи )

Стас
25.02.2017
17:40:47

Sergey
25.02.2017
17:40:49
в "мобильном мире" не рекомендованы многие вещи из большой джавы, в виду производительности
for each, enum, hashmap
например
?
чрезмерная аллокация объектов

Стас
25.02.2017
17:42:47
ага, видел перебор стрингов с помощью множества if else, сумничал, что надо бы switch прикрутить, на что получил щелчок по лбу: нет в шестой джаве свитча стрингового

Sergey
25.02.2017
17:42:59
всё что триггерит GC

Стас
25.02.2017
17:43:07
и т.д и т.п

Sergey
25.02.2017
17:43:08

Стас
25.02.2017
17:43:47

Igor
25.02.2017
17:44:31
for each, enum, hashmap
Ну не надо преувеличивать.
2017 год уже - если это не код в onDraw() или игра то обычно это не принципиально.

Sergey
25.02.2017
17:44:39

Igor
25.02.2017
17:45:28
2017? и что
И то - сравни телефоне с 2012. И в Android уже сильно оптимизированиле GC.

Sergey
25.02.2017
17:45:36
ты какой мин апи поддерживаешь?
андроид 4.х еще не вымер
а там далвик и gc недружелюбны к этому

Igor
25.02.2017
17:51:15
ты какой мин апи поддерживаешь?
2.3 и это была игра и там реально пришлось в нескольких местах заменить foreach на for, юзать пулы и тд.
Но в обычных приложениях Кнут обычно 100% прав (преждевременная оптимизация...)

Google

Sergey
25.02.2017
17:51:30
думаешь почему появились ArrayMap, семейство SparceArray, Def’ы

The
25.02.2017
17:51:55
Пацаны, кто нибудь рекурсивное дерево парсил с GSON?

Wladižlaw ?
25.02.2017
18:25:47
Как отучиться смотреть документацию по command Q в студии на макбуке?

Quarx2k ?
25.02.2017
18:33:06
не использовать макбук

Kamoliddin
25.02.2017
18:35:07
???

Alexey
25.02.2017
18:39:58
что плохого если я буду использовать только for по индексам?

Alexander
25.02.2017
18:44:37
экономия на спичках )) for по индексу

Alexey
25.02.2017
18:46:32

Sergey
25.02.2017
18:46:40

Alexey
25.02.2017
18:46:44
Бойлерплейт не привносит особо

Alexander
25.02.2017
18:48:02
что за 16мс ?

Sergey
25.02.2017
18:48:15
как про них незнать

Quantum Harmonizer
25.02.2017
18:49:26
экономия на спичках )) for по индексу
Если всё тормозит, почему бы не оказаться от лишнего итератора, особенно в onDraw или внутри другого цикла?
У меня на Kotlin есть экстеншены для такой итерации, никакого синтаксического мусора.

Sergey
25.02.2017
18:49:34
чтобы кадры не выпадали у тебя есть на всю твою логику в ui треде только 16мс на кадр

Quantum Harmonizer
25.02.2017
18:50:09
что за 16мс ?
Время, за которое нужно отрисовывать кадр чтобы выдавать 60 кадров в секунду.

Alexander
25.02.2017
18:51:54
)) я не про onDraw, а про циклы в целом. Использовать for по индексу ради сомнительной экономии это глупо.

Quantum Harmonizer
25.02.2017
18:54:05

Google

Quantum Harmonizer
25.02.2017
18:54:40
Писать это повсеместно — сомнительно, но не сказал бы, что плохо.

Sergey
25.02.2017
18:54:41
просто в ui потоке
https://www.youtube.com/watch?v=MZOf3pOAM6A
=)

Alexander
25.02.2017
18:56:28
в ui потоке не должно быть никаких переборов в цикле ))

Sergey
25.02.2017
18:57:16

Alexander
25.02.2017
18:57:37
? опять этот лысый )) он уже про енумы говорил

Admin
ERROR: S client not available

Igor
25.02.2017
18:57:37
Можешь рассказать про пулы? Какие объекты стоит пулить, какие — нет? Есть best practices?
Ключевое слово слово (3) если все тормозит.
Когда у тебя и игра и UI реально обновляется 60 раз в секунду - это важно.
Когда у тебя код в onDraw и он тоже теор. может вызывать 60 раз в секунду - это важно.
В остальных случая - нужно профилирование.
Насчет пулов, это простейшая абстракция - взяли из пула / вернули в пул.
Базовый класс https://libgdx.badlogicgames.com/nightlies/docs/api/com/badlogic/gdx/utils/Pool.html (реализвываешь newObject или можешь взять ReflectPool)

Quantum Harmonizer
25.02.2017
18:57:55

Alexander
25.02.2017
18:57:58
теперь у всех енумофобия

Sergey
25.02.2017
18:58:33

Alexander
25.02.2017
19:00:39

Quantum Harmonizer
25.02.2017
19:01:34
(потому что эти объекты крайне дешёвые)

Igor
25.02.2017
19:02:33
А чем плохо преждевременно оптимизировать?
Тем что в интерпрайз-разработки на первом месте стоит - maintainability (и легкая замена разработчиков).
А твой "оптимизированный" код со временем превратится в то что только ты один способен понять.

Quantum Harmonizer
25.02.2017
19:03:16

Alexey
25.02.2017
19:03:26

Quantum Harmonizer
25.02.2017
19:04:10

Google

Alexey
25.02.2017
19:04:30

Alexander
25.02.2017
19:04:38
три вложенных цикла это уже говнокод

Alexey
25.02.2017
19:04:40
Обычно в 3д графике

Nikolai
25.02.2017
19:05:35
а если в функции циклов спрятать. тоже говнокод?

Alexander
25.02.2017
19:05:47
нет

Igor
25.02.2017
19:05:54

Sergey
25.02.2017
19:08:26
> Тем что в интерпрайз-разработки на первом месте стоит
андроид это далеко не энтерпрайз
есть еще Optimized for indexed loop )
зачем тогда делают все эти штуки если это спички? )

Quantum Harmonizer
25.02.2017
19:10:42

Alexander
25.02.2017
19:13:43

Sergey
25.02.2017
19:14:01

Alexander
25.02.2017
19:14:16
Сколько у тебя там элементов в цикле?

Sergey
25.02.2017
19:14:26
просто говорю о наличии таких штук

Alexander
25.02.2017
19:15:57
а все же сколько элементов в среднем у тебя в цикле ?
10,? 100? 10000000?

Sergey
25.02.2017
19:16:22

Alexander
25.02.2017
19:17:25
я думаю на 1000 элементов ты разницы не заметишь
даже на 10к не заметишь