
Vladislav
06.12.2016
13:16:09
Спасибо

Egor
06.12.2016
13:26:07

Ⓜ️ᵃʳᵃᵗ
06.12.2016
13:26:18

Google

Egor
06.12.2016
13:26:26
Спасибо

Gundabadec
06.12.2016
14:37:44
Где рекомендуется хранить auth-токен? Не преференсах же

Anton
06.12.2016
14:37:58
шифруй да храни

Alexey
06.12.2016
14:38:23
@Gundabadec а где-же ещё

Gundabadec
06.12.2016
14:38:38
keystore есть такое?

Anton
06.12.2016
14:38:57
хуй знает я в префах храню
hawk посмотри

Глеб
06.12.2016
14:39:29
надо будет - хакнут любой стор

Gundabadec
06.12.2016
14:39:46
Какой труднее
Тот и ищу

Глеб
06.12.2016
14:40:20
ну, скрипт кидди развалятся о любое шифрование

Gundabadec
06.12.2016
14:40:26
Вот hawk пойдет, большего разрабатываемый продукт не стоит

Andre
06.12.2016
14:40:53
в префах хранит режим только в MODE_PRIVATE

Google

Глеб
06.12.2016
14:40:58
hawk ради одной пары ключ-значения?

Anton
06.12.2016
14:41:11
вместо обычных префов тоже норм

Andre
06.12.2016
14:42:19
вот только что писал шифрование для токена) что бы в префах хранить. Потому что если вирус получит рут то сможет украсть файлы

Gundabadec
06.12.2016
14:42:42
ручками запилю что нибудь

Глеб
06.12.2016
14:43:01

Gundabadec
06.12.2016
14:43:25
а ключ которым шифровал где хранить? В коде? Так его ж можно будет стырить

Nikolay
06.12.2016
14:43:47
Коллеги, разработчики. Планирую в Москве, м.Водный стадион, снять офис, работаю тихо) вожу народ в офис редко) Кто хочет сидеть со мной, пишите в личку, а то дороговато и скучно одному сидеть!)

Глеб
06.12.2016
14:43:47
и так до бесконечности :)

Ravil
06.12.2016
14:44:01
Какое минимальное апи? Всем привет.

Глеб
06.12.2016
14:44:05
Так и для hawk'а ключ выдернут

Gundabadec
06.12.2016
14:44:11

Ravil
06.12.2016
14:45:06
16
с 18 есть Android Keystore System

Quantum Harmonizer
06.12.2016
14:45:43

Max
06.12.2016
14:46:49
за предложение использовать AccountManager меня побьют?

Quantum Harmonizer
06.12.2016
14:46:52
Если девайс не рутирован и пользователь дал права, то и шифрование не поможет. Если не рутирован / нет доступа, то как прочитаешь чужие префы?

Ravil
06.12.2016
14:47:23

Alexey
06.12.2016
14:47:44

Quantum Harmonizer
06.12.2016
14:47:55
и дополнительное разрешение)

Google

Dmitry
06.12.2016
14:48:08
храните в нем все в шифрованном виде??

Ravil
06.12.2016
14:48:13
но в префах еще хуже
не вечный токен делать еще

Firelion
06.12.2016
14:50:27
а вариант зашифровать и ключ шифрования в android keystore?

Gundabadec
06.12.2016
14:50:30
Заказчик дал добро не шифровать вообще?

Quantum Harmonizer
06.12.2016
14:51:40

Alexey
06.12.2016
14:51:46

Gundabadec
06.12.2016
14:52:07

Alexey
06.12.2016
14:52:25
мне кажется если не банк, то кража токена не так страшна
вообщем всё зависит от того какие данные спрятаны
и что грозит вскрытие токена

Quantum Harmonizer
06.12.2016
14:53:20
Есть идеи как вскрывать токен?

Gundabadec
06.12.2016
14:54:14
открываешь xml преференсов и берешь)

Quantum Harmonizer
06.12.2016
15:04:00
Как ты из контекста вредоносной софтины это сделаешь, если unix-права доступа не позволяют?

Sergey
06.12.2016
15:22:50
привет, сорри за глупый вопрос, но что значит защитить модель данных тестами(branch, method) ? я писал несколько тестов, но там проверял вводимые значения, а тут что проверять ? у меня десяток полей и геттер сеттеры к ним и все, в модели ничего больше нет

Глеб
06.12.2016
15:27:23
похоже, что задача альтернативно-сформулированна

Sergey
06.12.2016
15:29:58

Глеб
06.12.2016
15:32:18
можешь рассказать как ты ее понимаешь?
Если речь о unit-тестах, то написал-бы тесты на различные вариации данных в модели с проверкой валидности модели. К примеру модель точки на карте - широта и долгота, это два Double'а, но реально модель будет невалидной, если широта будет 100 градусов, т.к. допустимые значение -90:90.
Соответственно если речь идет не о unit-тестах, то добавил-бы такие проверки в setter'ы

Google

Sergey
06.12.2016
15:33:48

Глеб
06.12.2016
15:34:59
надеюсь, что правильно. И лучше-бы это было не задание на собеседовании, потому как там либо ждут вопроса "что за дела? О чем вообще речь?", либо какие-то альтернативно-одаренные в "комиссии"

Sergey
06.12.2016
15:36:48

Глеб
06.12.2016
15:38:00
Постановка задачи не должна допускать вариативности результата её решения, это ведет к большим проблемам и характеризует постановщика как человека, не разбирающегося в предметной области поставленной задачи
если нигде ниже нема ссылки на тамошний глоссарий, то ребята стремные.

Ⓜ️ᵃʳᵃᵗ
06.12.2016
15:40:52

Глеб
06.12.2016
15:41:58

Roman
06.12.2016
15:43:25
Как рах это многие практикуют на собеседованиях. Зачем компани сотрудник, который без уточнения поставленной у заказчика задачи начнет ее делать? Зачем конторе сотрудник6 который не может у клиента уточнить нюансы поставленной задачи.
А ТЗ это тз есл ионо есть то есть. Это как раз на тот случай, когда ТЗ нет
И как правило это применяют на позиции миддл и выше

Sergey
06.12.2016
15:43:59

Ⓜ️ᵃʳᵃᵗ
06.12.2016
15:44:59
хоть правило 5 Whys применять )))

Алексей
06.12.2016
16:00:40
Подскажите, по памяти что лучше, у меня есть список имаджвью, мне надо вставить одинаковые фотки. Сделать один дровабл и заполнять им, или из ресурсов по id
Мне кажется первый вариант

Max
06.12.2016
16:02:38
ИМХО если только по производительности будет быстрее на какие то милисекунды. С памятью все будет одинаково, даже в первом случае ее израсходуется на 1 drawable больше

Artem
06.12.2016
16:04:32
Всем привет!
кто-нибдуь сталкивался с Inconsistency detected. Invalid view holder adapter positionViewHolder при обновлении адаптера через notifyItemRangeChanged()?

Sergey
06.12.2016
16:06:08

Алексей
06.12.2016
16:07:33
Так в первом варианте я могу обработать дровабл, допустим сделать его меньше. И тогда и быстрее и по памяти будет выигрывать первый вариант?)

Sergey
06.12.2016
16:07:37
например вызываешь 2 раза вподряд или notifyDatasetChanged и notifyItemRangeChanged в одно время

Artem
06.12.2016
16:08:00

Google

Quantum Harmonizer
06.12.2016
16:09:02

Sergey
06.12.2016
16:09:12

Artem
06.12.2016
16:10:02
this.listParams.clear();
this.listParams.addAll(listParams);
notifyItemRangeChanged(0, this.listParams.size() - 1);

Quantum Harmonizer
06.12.2016
16:10:57
Внёс изменения и не вызвал или вызвал не с тем диапазоном.

Sergey
06.12.2016
16:11:01

Алексей
06.12.2016
16:11:23

Quantum Harmonizer
06.12.2016
16:11:41

Sergey
06.12.2016
16:11:54

Artem
06.12.2016
16:12:16

Sergey
06.12.2016
16:12:18
когда items.addAll() делаешь в другом потоке, так тоже нельзя

Quantum Harmonizer
06.12.2016
16:12:38
мда, рискованно)

Artem
06.12.2016
16:12:38

Quantum Harmonizer
06.12.2016
16:12:55
потому что это вызовет inconsistency :)

Sergey
06.12.2016
16:13:05
вот почему вы так делаете? почему просто не notifyDataSetChanged?

Quantum Harmonizer
06.12.2016
16:14:10