@android_ru

Страница 2139 из 3205
Sergey Mitrofanov
22.10.2017
16:15:56
По большому счёту, ничем. Но одно дело — инициализировать ретрофит или соединение к БД, другое — хранить данные.
Так, тут я тебя не понял. Вот ты инициализировал ретрофит, получил инстанс, куда ты его сохраняешь? Создается активити, где нужен ретрофит: откуда ты в ней берешь инстанс ретрофита?

Google
Gerc
22.10.2017
16:22:22
Sergey Mitrofanov
22.10.2017
16:24:47
Сохраняю в поле внутри Application. Активити забирает его из Application.
Ну, хранишь данные в апликейшн (экземпляр ретрофита). Ну может под данными ты имел ввиду что-то эдакое, хрен с ним. Но если смотреть по-факту: Говоришь хранить данные в апликейшн зло, а сам хранишь (ну пусть "особые" данные). Говоришь синглтон - зло, а сам этот шаблон используешь (пусть не ты его создал). Ты уж извини, но подобные противоречия в суждениях более присущи непрофессионалу, а резкие категоричные высказывания максимализму переходного возраста. Таково мое первое впечатление.

Quantum Harmonizer
22.10.2017
16:28:42
Ну, хранишь данные в апликейшн (экземпляр ретрофита). Ну может под данными ты имел ввиду что-то эдакое, хрен с ним. Но если смотреть по-факту: Говоришь хранить данные в апликейшн зло, а сам хранишь (ну пусть "особые" данные). Говоришь синглтон - зло, а сам этот шаблон используешь (пусть не ты его создал). Ты уж извини, но подобные противоречия в суждениях более присущи непрофессионалу, а резкие категоричные высказывания максимализму переходного возраста. Таково мое первое впечатление.
Если одна активити что-то положила, а вторая пытается забрать, то это хранение данных и всё может навернуться. Если я создаю ретрофит в onCreate, к моменту старта любой активити его не может не быть — есть проблема с инверсией управления, но не с надёжностью. И это не данные, это, скорее, поведение. Я вынужден использовать как сами синглтоны, так и объекты с похожей уродской семантикой (те же фрагменты, которым в конструктор ничего нельзя положить — они сами вынуждены разрешать свои зависимости). Но я сам не создаю такого рода классы и другим не рекомендую.

Перед чем?
Ни перед чем. После использования.

Gerc
22.10.2017
16:30:30
Ни перед чем. После использования.
ага, в аппликейшен классе

Lord
22.10.2017
16:31:29
Ребят , привет как сделать слушатель для актвити? не могу понять. как сохранять определенное активити перед вызодом из приложения выходом*

Quantum Harmonizer
22.10.2017
16:32:20
ага, в аппликейшен классе
вообще, когда соединение всего одно, проще забить. Но можно устроить reference counting, например.

Ребят , привет как сделать слушатель для актвити? не могу понять. как сохранять определенное активити перед вызодом из приложения выходом*
> как сделать слушатель для актвити? чё? > как сохранять определенное активити перед вызодом из приложения Записать всё в Shared Preferences в onPause.

Lord
22.10.2017
16:35:20
неет, вы не поняли. мне нужно сделать аналитику для приложения. использую Appmetrika от яндекса, вот допустим есть 3 активити. к примеру юзер закрыл приложение на 2, вот я не знаю как это перехватить. я сам пробовал так: писал on destroy в каждом активити. но тогда в метрику отправляется информация о закрытии каждого активити, а мне нужна информация о закрытии активити конечного

надеюсь смог объяснить

Sergey Mitrofanov
22.10.2017
16:36:17
Если одна активити что-то положила, а вторая пытается забрать, то это хранение данных и всё может навернуться. Если я создаю ретрофит в onCreate, к моменту старта любой активити его не может не быть — есть проблема с инверсией управления, но не с надёжностью. И это не данные, это, скорее, поведение. Я вынужден использовать как сами синглтоны, так и объекты с похожей уродской семантикой (те же фрагменты, которым в конструктор ничего нельзя положить — они сами вынуждены разрешать свои зависимости). Но я сам не создаю такого рода классы и другим не рекомендую.
Какой интересный взгляд на вещи... А что ты имеешь ввиду под "все может навернуться"? Процесс прибьется? Так вместе с ним вообще все сразу "навернется", как ничего и не было... Фрагменты, ну так есть еще 3 способа передать параметры в фрагмент: описать статический newInstance(...), setArguments или старые добрые сеттеры. И тут стало интересно, а как бы ты написал программу по-сложнее калькулятора на чистой Java без единого синглтона? Хранил бы данные в классе с main()? Или в первой ГУИ форме (в случае с AWT/Swing)?

Lord
22.10.2017
16:39:35
под конечным активити я имею следующее: вот есть приложение. там пусть будет 5 активити, юзер зашел в 1,2,3 но ему что то не понравилось и он решил покинуть приложение, вот это активити, с которого он покинул приложение нужно отправить в метрику с помощью метода reportEvent(Striing)

Google
Quantum Harmonizer
22.10.2017
16:40:00
Какой интересный взгляд на вещи... А что ты имеешь ввиду под "все может навернуться"? Процесс прибьется? Так вместе с ним вообще все сразу "навернется", как ничего и не было... Фрагменты, ну так есть еще 3 способа передать параметры в фрагмент: описать статический newInstance(...), setArguments или старые добрые сеттеры. И тут стало интересно, а как бы ты написал программу по-сложнее калькулятора на чистой Java без единого синглтона? Хранил бы данные в классе с main()? Или в первой ГУИ форме (в случае с AWT/Swing)?
> Так вместе с ним вообще все сразу "навернется" Нет. Активити пересоздастся, ей будет передан тот же Intent, а вот состояние в Application будет потеряно. > 3 способа передать параметры в фрагмент Описать статический newInstance, который вызывает внутри себя setArguments, или сеттеры, которые вызывают внутри себя setArguments :) > а как бы ты написал программу по-сложнее калькулятора на чистой Java без единого синглтон Вот пример на Котлине. Единственный статический метод — main. https://github.com/JavaneseOnline/JavaneseBackend/blob/master/src/main/kotlin/online/javanese/JavaneseServer.kt

Lord
22.10.2017
16:40:02
это для продуктовой аналитики, мне дали задание, сам до этого с таким не сталкивался, вот решил спросить

THAR
22.10.2017
16:40:29
псссс парни

Quantum Harmonizer
22.10.2017
16:41:40
Max
22.10.2017
16:41:42
псссс парни
Пшшш, на связи

THAR
22.10.2017
16:41:52
есть ли туториилы по open cv ??

Max
22.10.2017
16:41:53
Что случилось?

THAR
22.10.2017
16:42:04
как завести его на android

на офф сайте что-то непонятное

Quantum Harmonizer
22.10.2017
16:42:54
мне кажется, тут могут знать: @androidgpu

THAR
22.10.2017
16:43:03
и второй вопрос , есть ли иные способы найти макет с потока от камеры и определить его ориетацию в пространстве??

Sergey Mitrofanov
22.10.2017
16:44:34
под конечным активити я имею следующее: вот есть приложение. там пусть будет 5 активити, юзер зашел в 1,2,3 но ему что то не понравилось и он решил покинуть приложение, вот это активити, с которого он покинул приложение нужно отправить в метрику с помощью метода reportEvent(Striing)
Хм, ну выход из приложения может быть по любой причине: нажали на хоум, поступил звонок (другая активити), юзер нажал на уведомление другой апп... Если вам нужно именно нажатие на хоум, то можете поставить перехватчик на это. Остальное вроде не отлавливается. Но надо иметь ввиду, что активити во всех эти случаях не уничтожается, а останавливается. О причинах остановок/уничтожений вам андроид не расскажет. Так что на мой взгляд, вам легче собирать все маршруты пользователя - запуски и остановки активити, и слать их на север. А потом уже смотреть какая последняя по истории действий остановилась...

Плюсом будет то, что вы будете иметь карту маршрутов по апп на манер тепловой карты сайта ?

Quantum Harmonizer
22.10.2017
16:48:38
И 0 архитектуры. Хотя она тут может и не нужна ) Признайся, ты проповедуешь ФП? )
Что называть «0 архитектуры»? Это гораздо читаемее и поддерживаемее, чем MVC, например. Это тестируемо, синглтоны — нет. Я ничего не проповедую, но некоторые концепции из ФП мне нравятся.

Sergey Mitrofanov
22.10.2017
17:04:21
Так так не надо тут на ФП гнать ?
А я на ФП и не гоню ) Просто не нравятся религиозные войны по поводу ФП vs ООП. Вообще я в этом вопросе больше солидарен с дядей Бобом - ФП и ООП это взаимодополнящие концепции, а не взаимоисключающие. И любые из их инструментов (синглтоны или еще что) нужно применять с умом. А главное - это нормальная архитектура программы, и ФП так же нужна архитектура, если это не студенческий проект...

Igor
22.10.2017
17:07:50
Ну ок, главное не путать с процедурным программирование. Еще бы понять связь между фп и синглтонами.

Google
Sergey Mitrofanov
22.10.2017
17:10:49
Ну ок, главное не путать с процедурным программирование. Еще бы понять связь между фп и синглтонами.
Синглтон - хранение состояния не зависимо от жизни прочих компонентов (без которого в ни одно серьезное прикладное приложение немыслимо). Каким шаблоном это делается в рамках чистого ФП - не знаю... Кстати, а что такое монады? )

balolam
22.10.2017
17:11:55
Стримы использовал в Java?

Sergey Mitrofanov
22.10.2017
17:12:40
ага

Kuzma
22.10.2017
17:13:38
привет парни. кто хорошо разобрался в Room, скажите пожалуйста, есть ли там возможность использовать String как primary key?

balolam
22.10.2017
17:14:42
ага
Ну вот эта концепция (да пусть меня исправят если я не прав) ленивых вычислений это что-то близко

Igor
22.10.2017
17:14:59
Синглтон - хранение состояния не зависимо от жизни прочих компонентов (без которого в ни одно серьезное прикладное приложение немыслимо). Каким шаблоном это делается в рамках чистого ФП - не знаю... Кстати, а что такое монады? )
> что такое монады Моноид в категории эндофунктора, конечно ? > хранение состояния не зависимо от жизни прочих компонентов ФП вообще нет состояний, там только чистые функции (и уж конечно не про какие синглтоны там не говорится). Состояние приходит “откуда то” из внешнего мира и туда же уходит, в своем коде ты не должен на это опираться.

Sergey Mitrofanov
22.10.2017
17:23:22
> что такое монады Моноид в категории эндофунктора, конечно ? > хранение состояния не зависимо от жизни прочих компонентов ФП вообще нет состояний, там только чистые функции (и уж конечно не про какие синглтоны там не говорится). Состояние приходит “откуда то” из внешнего мира и туда же уходит, в своем коде ты не должен на это опираться.
Ну про "откдуа-то из внешнего мира" - это стандартный подход типа "черный ящик". Разрабатывая архитектуру компонетны как раз и делаешь максимально независимыми, самостоятельными автоматами, чтобы они не оприались ни на истоник входных данных, ни на приемник выходных данных. Ничего нового в этом нету... Но мне интересен один момент: Я помню одну интересную лекцию по ФП, где автор показывал гибкость ФП на примере игры "жизнь" для N-мерного пространства (и в конце даже песенку про монады спел =) Вроде как понятно, лаконично, стройно. А вот если надо описать на чистом ФП игру в шахматы для двух игроков, то где будет храниться история ходов и текущее расположение фигур? )

getIntExtra возвращает строку? Что-то фантастичное )

куда войти? Короче тут все просто. Экстры - это бандл. А бандл - суть тот же хешмап, только не типо-безопасный. То есть значения могут быть произвольного типа, лишбы были сериализуемы. В данном случае проверь по коду - может где-то ниже ты по такому же ключу строку запихал перезаписав нужное тебе число?

Igor
22.10.2017
17:30:55
Ну е-мое, тебе там нужен второй параметр, “дефолтное” значение для int (учит инглишь и читай доки) int getIntExtra (String name, int defaultValue)

Sergey Mitrofanov
22.10.2017
17:31:05
А, он тебе говорит, что в методе должно быть 2 аргумента: ключ и дефолтное значение

JRoot3D
22.10.2017
17:31:50
Пишет кто приложения с использованием рут прав?

Sergey Mitrofanov
22.10.2017
17:34:33
В Java не бывает необзательных параметров в методах, бывают перегруженные методы ?

Igor
22.10.2017
17:36:25
Ну про "откдуа-то из внешнего мира" - это стандартный подход типа "черный ящик". Разрабатывая архитектуру компонетны как раз и делаешь максимально независимыми, самостоятельными автоматами, чтобы они не оприались ни на истоник входных данных, ни на приемник выходных данных. Ничего нового в этом нету... Но мне интересен один момент: Я помню одну интересную лекцию по ФП, где автор показывал гибкость ФП на примере игры "жизнь" для N-мерного пространства (и в конце даже песенку про монады спел =) Вроде как понятно, лаконично, стройно. А вот если надо описать на чистом ФП игру в шахматы для двух игроков, то где будет храниться история ходов и текущее расположение фигур? )
Историю хранить в персистентной коллекции, каком-нибудь immutable-linked-list, текущие положение просто в “рекорде”. В фп ты можешь сохранять данные в любые структуры, ты просто не можешь их изменять (а только создавать новые и копировать). (ну и конечно хранить можно в writer-монаде, но это обычно перебор вне хаскеля).

Sergey Mitrofanov
22.10.2017
17:39:49
Историю хранить в персистентной коллекции, каком-нибудь immutable-linked-list, текущие положение просто в “рекорде”. В фп ты можешь сохранять данные в любые структуры, ты просто не можешь их изменять (а только создавать новые и копировать). (ну и конечно хранить можно в writer-монаде, но это обычно перебор вне хаскеля).
Хм, то есть тут нужен будет тот компонент, который передает эти данные на вход функциям, а потом забирает их на выходе и записывает обратно (дописывает). То есть тот, который как раз опирается и на данные, и на фукнции. И это и есть монада, верно? )

Admin
ERROR: S client not available

Google
Sergey Mitrofanov
22.10.2017
17:50:26
Языках программирования, независимо от среды. Хоть в блокноте пиши, в Java нет дефолтных значений.
Ты о чем? Integer - по дефлоту null int - по дефлоту 0 String - по дефлоту null и т.д. Не об этом случайно?

Igor
22.10.2017
17:50:31
Хм, то есть тут нужен будет тот компонент, который передает эти данные на вход функциям, а потом забирает их на выходе и записывает обратно (дописывает). То есть тот, который как раз опирается и на данные, и на фукнции. И это и есть монада, верно? )
Не совсем понял и не хочу тут объяснять (чат не в тему). В интернете полно литературы/докладов, которые готовы взять это на себя. Имхо для правильного понимания нужно объяснить почему она “моноид в кат…” и как это мапится на программирования.

Quantum Harmonizer
22.10.2017
17:50:47
Ты о чем? Integer - по дефлоту null int - по дефлоту 0 String - по дефлоту null и т.д. Не об этом случайно?
> В Java не бывает необзательных параметров в методах Вот об этом.

Sergey Mitrofanov
22.10.2017
17:51:00
ок

Emirinay
22.10.2017
18:01:03
Слайдов нет?
Нет. И по ощущениям - лучше слушать.

Igor
22.10.2017
18:26:16
окей, а кто хранит ссылку на текущую структуру? Ведь эту ссылку тоже нельзя мутировать.
Ты ее и не хранишь, она приходит в параметрах (неизменяемую можно в “замыкание”). Хотя бессмысленно иметь 100% чистые программы. Обычно вокруг чистого домена есть системный фреймворк, который занимается “сайд-эффектами” и инфраструктурой.

Sergey Mitrofanov
22.10.2017
18:54:33
чувак однозначно не onDestroy() - этот метод не постоянно вызывается
Вернее сказать "не гаратнировано". Гарантируется только своевременный onPause. Хотя на практике, если не было прибития апп, я и не припомню случая, чтобы он не вызвался. Да, если быстро мотать назад, то onStop и onDestroy всех проходных активити выполняются не сразу, а спустя некоторое время после остановки и сразу пачкой, но чтобы совсем не вызывались - не припомню...

Sergey8827
22.10.2017
18:55:11
+

Igor
22.10.2017
19:02:29
Кто знает как легко отобразить круглый лоадер в кнопке ? Есть готовый компонент ? Или придется придется ставить Button и ProgressBar в FrameLayout ?

Sergey Mitrofanov
22.10.2017
19:21:17
Кто знает как легко отобразить круглый лоадер в кнопке ? Есть готовый компонент ? Или придется придется ставить Button и ProgressBar в FrameLayout ?
Среди стандартных такого готового нету. Можешь либо подменять кнопку на прогресс (setVisibility), либо, задизейблив, повесить на нее анимированный дравабл прогресса (если ImageButton)

Iwan
22.10.2017
19:26:40
Почему framelayout?

Quantum Harmonizer
22.10.2017
19:33:08
Почему framelayout?
Потому что отлично решает поставленную задачу.

Iwan
22.10.2017
19:39:55
Нужен пример решения

Александр
22.10.2017
20:01:08
Кому тут интересно, как сжать АПК?)

​​Играем в APK-гольф. Уменьшение размера файлов Android APK на 99,9% Вышла интересная статья на хабре, в которой автор пытается создать приложение минимального размера. Есть интересные методики, советуем почитать! Читать: https://habrahabr.ru/post/339938/

Google
Александр
22.10.2017
20:22:07
Если бы речь была не о дефолтном приложении студии, а реальном, то может быть это даже было бы интересно
ProGuard хорошее решение + почитай комментарии, там ещё способы есть с продакт апк сжатие.

Konstantine
22.10.2017
20:22:46
Так в том и суть, что полезного в статье только 3 строки о прогварде, которые и так каждый второй знает и использует.

Страница 2139 из 3205