Anonymous
и второй вопрос , есть ли иные способы найти макет с потока от камеры и определить его ориетацию в пространстве??
Anonymous
фиг знает
Sergey Mitrofanov
под конечным активити я имею следующее: вот есть приложение. там пусть будет 5 активити, юзер зашел в 1,2,3 но ему что то не понравилось и он решил покинуть приложение, вот это активити, с которого он покинул приложение нужно отправить в метрику с помощью метода reportEvent(Striing)
Хм, ну выход из приложения может быть по любой причине: нажали на хоум, поступил звонок (другая активити), юзер нажал на уведомление другой апп... Если вам нужно именно нажатие на хоум, то можете поставить перехватчик на это. Остальное вроде не отлавливается. Но надо иметь ввиду, что активити во всех эти случаях не уничтожается, а останавливается. О причинах остановок/уничтожений вам андроид не расскажет. Так что на мой взгляд, вам легче собирать все маршруты пользователя - запуски и остановки активити, и слать их на север. А потом уже смотреть какая последняя по истории действий остановилась...
Sergey Mitrofanov
Плюсом будет то, что вы будете иметь карту маршрутов по апп на манер тепловой карты сайта 😉
Sergey Mitrofanov
И 0 архитектуры. Хотя она тут может и не нужна ) Признайся, ты проповедуешь ФП? )
Sergey Mitrofanov
ок, мне тоже. Ладно, хорош трепаться...
Sergey Mitrofanov
Так так не надо тут на ФП гнать 😑
А я на ФП и не гоню ) Просто не нравятся религиозные войны по поводу ФП vs ООП. Вообще я в этом вопросе больше солидарен с дядей Бобом - ФП и ООП это взаимодополнящие концепции, а не взаимоисключающие. И любые из их инструментов (синглтоны или еще что) нужно применять с умом. А главное - это нормальная архитектура программы, и ФП так же нужна архитектура, если это не студенческий проект...
Igor
Ну ок, главное не путать с процедурным программирование. Еще бы понять связь между фп и синглтонами.
Sergey Mitrofanov
Ну ок, главное не путать с процедурным программирование. Еще бы понять связь между фп и синглтонами.
Синглтон - хранение состояния не зависимо от жизни прочих компонентов (без которого в ни одно серьезное прикладное приложение немыслимо). Каким шаблоном это делается в рамках чистого ФП - не знаю... Кстати, а что такое монады? )
Sergey Mitrofanov
ага
Kuzma
привет парни. кто хорошо разобрался в Room, скажите пожалуйста, есть ли там возможность использовать String как primary key?
Igor
Синглтон - хранение состояния не зависимо от жизни прочих компонентов (без которого в ни одно серьезное прикладное приложение немыслимо). Каким шаблоном это делается в рамках чистого ФП - не знаю... Кстати, а что такое монады? )
> что такое монады Моноид в категории эндофунктора, конечно 🤔 > хранение состояния не зависимо от жизни прочих компонентов ФП вообще нет состояний, там только чистые функции (и уж конечно не про какие синглтоны там не говорится). Состояние приходит “откуда то” из внешнего мира и туда же уходит, в своем коде ты не должен на это опираться.
Sergey Mitrofanov
> что такое монады Моноид в категории эндофунктора, конечно 🤔 > хранение состояния не зависимо от жизни прочих компонентов ФП вообще нет состояний, там только чистые функции (и уж конечно не про какие синглтоны там не говорится). Состояние приходит “откуда то” из внешнего мира и туда же уходит, в своем коде ты не должен на это опираться.
Ну про "откдуа-то из внешнего мира" - это стандартный подход типа "черный ящик". Разрабатывая архитектуру компонетны как раз и делаешь максимально независимыми, самостоятельными автоматами, чтобы они не оприались ни на истоник входных данных, ни на приемник выходных данных. Ничего нового в этом нету... Но мне интересен один момент: Я помню одну интересную лекцию по ФП, где автор показывал гибкость ФП на примере игры "жизнь" для N-мерного пространства (и в конце даже песенку про монады спел =) Вроде как понятно, лаконично, стройно. А вот если надо описать на чистом ФП игру в шахматы для двух игроков, то где будет храниться история ходов и текущее расположение фигур? )
Sergey Mitrofanov
getIntExtra возвращает строку? Что-то фантастичное )
Sergey Mitrofanov
куда войти? Короче тут все просто. Экстры - это бандл. А бандл - суть тот же хешмап, только не типо-безопасный. То есть значения могут быть произвольного типа, лишбы были сериализуемы. В данном случае проверь по коду - может где-то ниже ты по такому же ключу строку запихал перезаписав нужное тебе число?
Igor
Ну е-мое, тебе там нужен второй параметр, “дефолтное” значение для int (учит инглишь и читай доки) int getIntExtra (String name, int defaultValue)
Sergey Mitrofanov
А, он тебе говорит, что в методе должно быть 2 аргумента: ключ и дефолтное значение
JRoot3D
Пишет кто приложения с использованием рут прав?
Sergey Mitrofanov
В Java не бывает необзательных параметров в методах, бывают перегруженные методы 😉
Igor
Ну про "откдуа-то из внешнего мира" - это стандартный подход типа "черный ящик". Разрабатывая архитектуру компонетны как раз и делаешь максимально независимыми, самостоятельными автоматами, чтобы они не оприались ни на истоник входных данных, ни на приемник выходных данных. Ничего нового в этом нету... Но мне интересен один момент: Я помню одну интересную лекцию по ФП, где автор показывал гибкость ФП на примере игры "жизнь" для N-мерного пространства (и в конце даже песенку про монады спел =) Вроде как понятно, лаконично, стройно. А вот если надо описать на чистом ФП игру в шахматы для двух игроков, то где будет храниться история ходов и текущее расположение фигур? )
Историю хранить в персистентной коллекции, каком-нибудь immutable-linked-list, текущие положение просто в “рекорде”. В фп ты можешь сохранять данные в любые структуры, ты просто не можешь их изменять (а только создавать новые и копировать). (ну и конечно хранить можно в writer-монаде, но это обычно перебор вне хаскеля).
Sergey Mitrofanov
Историю хранить в персистентной коллекции, каком-нибудь immutable-linked-list, текущие положение просто в “рекорде”. В фп ты можешь сохранять данные в любые структуры, ты просто не можешь их изменять (а только создавать новые и копировать). (ну и конечно хранить можно в writer-монаде, но это обычно перебор вне хаскеля).
Хм, то есть тут нужен будет тот компонент, который передает эти данные на вход функциям, а потом забирает их на выходе и записывает обратно (дописывает). То есть тот, который как раз опирается и на данные, и на фукнции. И это и есть монада, верно? )
Sergey Mitrofanov
Ты о чем? Integer - по дефлоту null int - по дефлоту 0 String - по дефлоту null и т.д. Не об этом случайно?
Igor
Хм, то есть тут нужен будет тот компонент, который передает эти данные на вход функциям, а потом забирает их на выходе и записывает обратно (дописывает). То есть тот, который как раз опирается и на данные, и на фукнции. И это и есть монада, верно? )
Не совсем понял и не хочу тут объяснять (чат не в тему). В интернете полно литературы/докладов, которые готовы взять это на себя. Имхо для правильного понимания нужно объяснить почему она “моноид в кат…” и как это мапится на программирования.
Sergey Mitrofanov
ок
Emirinay
Слайдов нет?
Нет. И по ощущениям - лучше слушать.
Igor
Ты ее и не хранишь, она приходит в параметрах (неизменяемую можно в “замыкание”). Хотя бессмысленно иметь 100% чистые программы. Обычно вокруг чистого домена есть системный фреймворк, который занимается “сайд-эффектами” и инфраструктурой.
Serg
При настройке Фаербейз может сохранять оффлайн. Тогда вопрос получается фаербейз может заменить клиентскую базу данных на телефоне?
Sergey Mitrofanov
чувак однозначно не onDestroy() - этот метод не постоянно вызывается
Вернее сказать "не гаратнировано". Гарантируется только своевременный onPause. Хотя на практике, если не было прибития апп, я и не припомню случая, чтобы он не вызвался. Да, если быстро мотать назад, то onStop и onDestroy всех проходных активити выполняются не сразу, а спустя некоторое время после остановки и сразу пачкой, но чтобы совсем не вызывались - не припомню...
Serg
+
Igor
Кто знает как легко отобразить круглый лоадер в кнопке ? Есть готовый компонент ? Или придется придется ставить Button и ProgressBar в FrameLayout ?
Sergey Mitrofanov
Кто знает как легко отобразить круглый лоадер в кнопке ? Есть готовый компонент ? Или придется придется ставить Button и ProgressBar в FrameLayout ?
Среди стандартных такого готового нету. Можешь либо подменять кнопку на прогресс (setVisibility), либо, задизейблив, повесить на нее анимированный дравабл прогресса (если ImageButton)
Ivan
Почему framelayout?
Ivan
Нужен пример решения
Aleksander
Кому тут интересно, как сжать АПК?)
Aleksander
​​Играем в APK-гольф. Уменьшение размера файлов Android APK на 99,9% Вышла интересная статья на хабре, в которой автор пытается создать приложение минимального размера. Есть интересные методики, советуем почитать! Читать: https://habrahabr.ru/post/339938/
Aleksander
ProGuard хорошее решение + почитай комментарии, там ещё способы есть с продакт апк сжатие.
Александр
ребята а есть какой то хороший гайд по прогварду? можете скинуть пожалуйста?
Александр
Скоро будет доклад по кишкам Android за авторством меня, объявление делал в чате про ndk.
да да, я видел. Тоже жду, для меня это тоже все очень интересно. Я так понял тема будет касаться только своего кода? Просто у нас иногда прилетают крэши откуда-то из нативных глубин вебвью и как правило таки ошибки игонорим. Ибо непонятно куда копать и что делать.
Ivan
доклад будет о том, как собрать данные для крэшрепорта, а не как исправлять ошибки
Ivan
свой код, чужой - без разницы в моём случае
Olexandr
Народ, как извлечь ресурсы из короны? Я так понял они лежат в resource.car
Nikita
Народ подскажите у меня почему-то модуль не видит свою папку libs, хотя я ему в билд.градле прописал repositories { jcenter() flatDir { dirs 'libs' } }
Nikita
Всё понятно, нельзя в java либу подцепить android либу 😁
Евгений
Народ подскажите у меня почему-то модуль не видит свою папку libs, хотя я ему в билд.градле прописал repositories { jcenter() flatDir { dirs 'libs' } }
А почему ты папку подключаешь как репозиторий, а не просто зависимость? Вроде подефолту студия так делает
Bohdan
compile filetree(include '*.jar' dir 'libs')
Nikita
А почему ты папку подключаешь как репозиторий, а не просто зависимость? Вроде подефолту студия так делает
ну потом в модуле просто делаешь compile (name:'qwe', ext:'aar') и не надо никаких путей писать
Nikita
compile filetree(include '*.jar' dir 'libs')
так можно только джарник подключить, аар нельзя
Nikita
Only Jar-type local dependencies are supported.
Bohdan
Ну ты не уточнил
Anton
Вопрос, а что теперь не нужно приводить к типу в findViewById?
Алексей
ага, в 26 саппорте добавили эту фичу
Alexey
Так делали в старой версии ВК
Алексей
нет, почитайте про транзакции и бэкстек фрагментов :)
Alexey
Ну и вроде где-то в семплах такое было, главное убирать анимацию когда новую активити запускаешь
Алексей
Я делал и так и так, оба варианта возможны, но на фрагментах можно анимировать красивее.
Алексей
ещё раз, почитайте про *бэкстек фрагментов* и транзакции
Алексей
https://developer.android.com/training/implementing-navigation/temporal.html#back-fragments
Алексей
разница есть) анимашки красивее можно сделать, и не нужно дублировать layout. Сделайте на Activity, посмотрите, чем это будет чревато, потом сделайте на фрагментах, и после этого понятно будет, какой способ вам ближе.
Алексей
и это, и анимация перехода между фрагментами
Алексей
так сходу не придумаю. Но, например, много где есть ripple при нажатии на bottom bar, в яндек смузыке или ВК
Anonymous
Всем привет! Кто работал с record video Camera2? Сделал все по гугловскому семплу. На нексусе все ок, на мейзу максимальное разрешение 1440х1080, а на xiaomi файл с видео по 3 кб сохраняет. В чем может быть проблема,
Anonymous
?
Anonymous
боль(
Nikita
Подскажите за что меня градл дрючит? https://gist.github.com/kcn1-71/41937b919ecd64707af2cf66be9eaadc
Nikita
Error:Failed to resolve: :sdk-1.0
Nikita
и указывает на app gradle.build
Alexey
Error:Failed to resolve: :sdk-1.0
не находит sdk-1.0
Nikita
не находит sdk-1.0
:D "Я знаю что у вас сломалось! Машина!"
Alexey
:D "Я знаю что у вас сломалось! Машина!"
что случилось с подводной лодкой? Она утонула
Andrew
Коллеги, помогите, пожалуйста, понять причину задержек при SSL connect в спящем режиме. Использую Nexus 5x Android 8. Сразу после выключения экрана connect проходит мгновенно, а если подождать минуть 10, то висит пока не разбудишь телефон. Почему так и как решить проблему?
Andrew
А можно программно включить связь?