
Владислав
14.12.2016
23:11:57
Понятное дело

J
14.12.2016
23:13:04

Владислав
14.12.2016
23:13:46
Было бы из-за чего ;)

J
14.12.2016
23:49:47

Google

Taras
15.12.2016
01:00:43
Я с апворка проект у шведа по имени Алибаба прихватил))). Коренной видать)

Gregory
15.12.2016
01:58:30

Max
15.12.2016
07:18:12
Подскажите, совет по архитектуре. Как можно избежать конструктора с большим количеством параметров? У меня их сейчас около 10. Чтобы этот мрак отгородить, обернул это все в Builder, который сам разруливает поставку параметров, но все равно это боль. Особенно если надо еще добавить парочку параметров.
Может умные люди как то иначе это все делают?

Gregory
15.12.2016
07:19:08
Можно сделать несколько конструкторов, которые принимают меньше параметров, чем тот большой и главный, и вызывают его с какими-то значениями по умолчанию

Sergey
15.12.2016
07:20:03

Fedor
15.12.2016
07:20:10

Alexey
15.12.2016
07:20:11

Fedor
15.12.2016
07:20:56
Можно просто в бандл все запихать - тогда будет 1 параметр
+)

Max
15.12.2016
07:21:33
ок, попробую все советы ) Спасибо

Gregory
15.12.2016
07:21:49

Fedor
15.12.2016
07:23:09
Object... params

Alexey
15.12.2016
07:24:13
способов куча

Google

Alexey
15.12.2016
07:24:26

Gregory
15.12.2016
07:24:41

Alexey
15.12.2016
07:24:47
андроидовская хэшмапка, которая оптимизирована под небольшое количество объектов

Gregory
15.12.2016
07:25:04
хм, не знал

Alexey
15.12.2016
07:25:06
На большом кол-ве объектов проигрывает

Gregory
15.12.2016
07:25:21
зато про SparseArray знал, это как HashMap<Integer, whatever>, только быстрее

Alexey
15.12.2016
07:25:22
на малом она по памяти лучше чем обычная HashMap

Sergey
15.12.2016
07:26:12

Gregory
15.12.2016
07:26:33

Sergey
15.12.2016
07:26:44
я знаю

Gregory
15.12.2016
07:27:00
но да, суть в том, что оно не оборачивается в объект

Sergey
15.12.2016
07:27:45
SparseArray просто коллекция где поочередно идут ключи и значения
каждый непарный элемент ключ, парный значение

Alexander
15.12.2016
07:28:26

Gregory
15.12.2016
07:32:06
просто такая штука очень нужна, когда тебе надо парсить ответы от апи, в которых есть какие-то объекты типа постов или сообщений, а рядом — массив пользователей к ним

Alexey
15.12.2016
07:32:49
возвращает всё что надо и кастомизируется ответ

Gregory
15.12.2016
07:33:15
каких усилий мне стоило добиться консистентности

Alexey
15.12.2016
07:33:32
а если и этого мало то вот тебе execute и можешь сам исполнять код на сервере

Google

Gregory
15.12.2016
07:33:43
заставлял переименовывать поля, когда разработчик клиента для айфона втыкал костыли на клиенте =D

Alexey
15.12.2016
07:33:53

Gregory
15.12.2016
07:34:23
ну как бы у ВК, например, всё нужное для отображения ленты получается за один вызов newsfeed.get

Alexey
15.12.2016
07:34:49
чтобы меньше трафика жрало

Gregory
15.12.2016
07:34:58
правда, так было далеко не всегда, я ещё помню, как friends.get возвращал только и исключительно массив айдишников, который следовало напрямую скормить users.get
и да, execute не было

Alexey
15.12.2016
07:35:12

Gregory
15.12.2016
07:35:13
два запроса на просто получение списка друзей КАРЛ
ну это ещё при флэш-приложеньках было

Alexey
15.12.2016
07:35:28

Gregory
15.12.2016
07:35:32
я очень давно into it =)

Gregory
15.12.2016
07:35:57
собственно, я даже помню старые названия методов
getFriends, getProfiles, getPhotoAlbums, ...
getWallPhotoUploadServer чорт возьми

Alexey
15.12.2016
07:36:39
плохо когда тебе надо выполнить, например 3 запроса, и для каждого следующего нужны данные из предыдущего. И начинается ебатся с тем, что делать если какой-то из запросов отвалился

Gregory
15.12.2016
07:36:45

Admin
ERROR: S client not available

Gregory
15.12.2016
07:37:19
у того же ВК так работает аплоад

Google

Gregory
15.12.2016
07:37:34
то есть это что-то типа 4 последовательных запроса, и в одном из них большой файл

Alexey
15.12.2016
07:37:42
всё писать что не удалось загрузить файлик?

Gregory
15.12.2016
07:38:09
я для этого сделал специальный сервис, который хранит состояния всех заданий на аплоад

Alexey
15.12.2016
07:38:18
ну и наверняка у тебя там лапша из колбэков получилась
вот зачем нужен Rx !

Gregory
15.12.2016
07:38:50
если какой-то из запросов пофейлился, он запоминает, где остановились, показывает уведомление и по клику по нему продолжает с этого места

Alexey
15.12.2016
07:38:53
я наверное когда-нибудь напишу RxVkSdk

Gregory
15.12.2016
07:39:15

Alexey
15.12.2016
07:39:43
ну тоже решение

Gregory
15.12.2016
07:40:10
а там токены на загрузку не протухают?
а там нет никаких токенов, насколько я помню, там есть просто какой-то хэш, который позволяет такому-то пользователю залить такой-то тип контента на такой-то сервер, бессрочно
обычный процесс такой: whatever.getUploadServer -> залить файл на аплоад -> whatever.save
вызов whatever.save возвращает уже id залитой фотки/песни/документа
его в паре с owner_id можно использовать для однозначной идентификации этого объекта в пределах ВК

balolam
15.12.2016
08:12:55

Ⓜ️ᵃʳᵃᵗ
15.12.2016
08:13:52

Max
15.12.2016
08:15:31
Студия умеет генерировать паттерн builder
я сейчас так и делаю, неудобно только местами, потому что она сразу целиком билдер генерит, я его потом чищу, потому что основной билдер - абстрактный, у него есть конкретные реализации

Google

Alexander
15.12.2016
08:25:12

Валерий
15.12.2016
08:32:28
А кто-нибудь заморачивался с отладкой поведения приложения при плохом интернете на реальном устройстве с проксей на Windows-ПК ?

Alexey
15.12.2016
08:34:04
кто подскажет как джава доки генерить? вроде какое-то сочетание команд есть чтобы шаблон генерился для метода

Grigoriy
15.12.2016
08:34:48
вроде как

Alexey
15.12.2016
08:35:21