Ярослав
Ярослав
некоторые иконки скрываются, остальные затемняются
Arsen
Для использования БД из сервиса в отдельном процессе нужны какие-то доп. телодвижения типа контент провайдера?
Arsen
в процессе самого приложения бд тоже юзается
やみ
LookLock
やみ
Луклок – енто когда ты запрещаешь всем снимать содержимое экрана. Например, Orfox или запись экрана при Нетфликсе. Ну иль когда ты в ТГ пароль поставил и запретил всем снимать скриншоты. То есть ни ты, ни система не сможет делать снимок экрана для карточки из recents
やみ
Ну чтоб другие приложения не снимали ничего непристойного из режима инкогнито
Александр
Ребят может кто посдкажет, как в телеге и ватсапе вот текстовое сообщение текст огибает время
Александр
может кто знает как это делается?
Nikita
Только клиентская часть
Александр
да
Artem
на вкус и цвет только
Eugene
я пытался писать на groovy под андройд
Eugene
:-)
Artem
+++
Sergey Mitrofanov
Есть у кого-нибудь исчерпывающая статейка или ссылка по поводу real-life мракобесия с Doze и сервисами? А то там есть бага на 6-м с потерей вейклоков у foreground сервиса, и потерю сети в дозе на самсунгах для «не заснувших» сервисов, и рекомендации к запуску сервиса в отдельном процессе… Как-то все это запутанно, и я уже не знаю с какой стороны подступиться, чтобы понять чего можно реализовать, а чего нельзя? =)
Ярослав
так-то ничем, но после того, как ты покодишь на котлине, на джаву возвращаться не захочешь
Sergey Mitrofanov
ниасилил java-синтаксис? 😉 На крестах еще не пробовал, видать - как оно без GC живется )
Ярослав
у котлтна 2 неудобных момента: - нельзя задать значение переменной в выражении (типа obj.method(variable = value)) - конструкции if else вместо ? :
Sergey Mitrofanov
Ну тогда странно слышать о том, что точки с запятыми и явная типизация с явными же геттерами и сеттерами доставляют боль =) А вообще, в этом ничего удивительного нету, потому что жава изначально создавалась с Си-подобным синтаксисом, в отличие от котлина, который создавался под влиянием моды на ФП =) Котлин просто другой, и у него тоже свои ограничения имеются. Тут скорее дело вкуса - кому с чем комфортнее живется ) З.Ы.: А вообще мне не очень нравится движение андроида в сторону котлина. Потому как забывая про жаву можно потерять «хватку» во всех прочих областях профессии, где жаве до сих пор нет достойной замены (котлин до них еще очень не скоро доберется)…
Ярослав
А сколько в джаве, отностильно котлина?
у котлина 2 неудобных и 100500 удобных, никто не спорит))
Igor
Тут еще проблема андроида - весной выходит Java 10 с var А когда это будет на андроид?..
Sergey Mitrofanov
Тут еще проблема андроида - весной выходит Java 10 с var А когда это будет на андроид?..
Это проблема разрабов андроида ) даже скорее это проблема фрагментации версий, когда до сих пор на руках и даже в продаже девайсы с киткатом без шансов на апдейт…
Igor
Sergey Mitrofanov
Кстати, мне пока еще не довелось погрузиться в котлин основательно, но интересен один момент: Не теряет ли котлин за своими 100500 плюсами чистоту объектно-ориентированности? Или ООП было принесено в жертву удобства написания процедурного кода? )
Sergey Mitrofanov
по-другому это как? ) В стиле 70-80-х? =) …а что, вполне по-хипстерски )))
Sergey Mitrofanov
А теперь с-масштабируй это, например, на приложение для такси 😉
Sergey Mitrofanov
хайп + чувство причастности к прогрессу, в основном =) Ну и + говнокодить на котлине легче 😉
Sergey Mitrofanov
Почему тебя вообще «new MyType()» беспокоит, когда для этого существует DI, в котором ты это пишешь только один раз, а получаешь через конструктор? )
Sergey Mitrofanov
class Conversation ( Client socketClient; ArrayList<Message> messages = new ArrayList(); ArrayList<Message> unreadMessages = new ArrayList(); Conversation(Contact contact) { socketClient = Client(contact) } ) А вот вывешывать наружу сеттеры и геттеры на каждое поле - это уже мелкое хулиганство. Какой смысл в классе, если они ничего не делает, кроме как хранит набор переменных?
Yevgen
Ребят в чем может быть проблема, нашел библиотеку ассеткопи, сделал все как написано, в манифесте есть разрешение. Но при нажатии на кнопку ничего не происходит
Sergey Mitrofanov
Ну если вы про «автовалью» в котлине, то это скорее минус, чем плюс. Ибо как я уже указал, это будет уже не объект, а какая-то структура (как struct в С++)
Danil
вот мне лично не нравится, что для создания статического метода мне нужно объявить его вне класса
Sergey Mitrofanov
Ну, в конструктор их, и под DI
Konstantin
Подскажите, как в recyclerview задать header, чтобы вывести в список названия категорий
https://github.com/google/iosched/blob/2014/android/src/main/java/com/google/samples/apps/iosched/ui/SimpleSectionedListAdapter.java например, как в старом примере от гугла
Igor
Надеюсь по тому что тебе scala ближе (иначе это уже зашквар)
Sergey Mitrofanov
ты забыл про equals/hashcode/tostring
Нет не забыл. Их определять только по надобности. Нафига они тебе, если ты их никогда не воспользуешь? )
Igor
Нет не забыл. Их определять только по надобности. Нафига они тебе, если ты их никогда не воспользуешь? )
Если я их не использую, то я не добавляю data, а если уж оно есть - значит для дела
Олександр
Да что вы доебались друг до друга
Ivan
Инжект через конструкторы онли?
Igor
Если для тебя прогресс тоже остановился на java6 - то может он тебе и не нужен А так можешь почитать/посмотреть - https://kotlinlang.org/docs/reference/comparison-to-java.html - https://youtu.be/VU_L2_XGQ9s - Андрей Бреслав — Kotlin для Android: коротко и ясно
Sergey Mitrofanov
Правильно и + юнит тесты на них же, чтобы изменение не порушило их использование. Что записано - то определено. Что нет - то хрен его знает. В идеале бы я жаве дал возможность указывать явно подчищать за собой объекты из памяти, не дожидаясь ГЦ. Но увы и ах, этого не дают. Хотя я уже сталкивался с случаями, когда ГЦ тупо не успевает запуститьтся до того как мы схватываем OOM. Зато удобно чо, и «кода меньше (с)» 😕
Ivan
Ясно, ок
Sergey Mitrofanov
Инжект через конструкторы онли?
Через сеттеры в сиключительных случаях. А инжект в в поля - это и вовсе говнокод от лени. Как минимум потому что инкапсуляцию нарушает.
Sergey Mitrofanov
Уже кончился )))
Глеб
Блиин, я опоздал по-ходу да вот.... ччерт
Konstantin
webview медленный
Igor
Теорема эскобара: - на rn придется писать на жс (все вакансии заняты фронтенд-макаками) - на flutter воообще нет работы
Глеб
Красаучик! 👍 На самом деле, в конечном счёте насрать "из чего компилился dex, завёрнутый в эту apk" - если оно работает гладко и стабильно. А самый пиздатый, удобный и читаемый код.... 🤔.....это конечно же - мой(твой/свой) собственный код. Всё остальное - "вынужденное лицемерие" 😄👍
Konstantin
лучше, но есть целый ряд заказчиков которых интересует кросплатформенная разработка, их достаточно много.
Igor
*ещё есть kotlin wrapper для react js
(так то есть и clojure-rn/f#/elm/purescript/dart/reasonml/scala-js и тд) Только вот работы на этом нет, а всем нужны жс-🐒
Михаил 🇺🇦
(так то есть и clojure-rn/f#/elm/purescript/dart/reasonml/scala-js и тд) Только вот работы на этом нет, а всем нужны жс-🐒
Можно юзать TypeScript: типизация поможет, к тому же, удобно и всё только за
Глеб
лучше, но есть целый ряд заказчиков которых интересует кросплатформенная разработка, их достаточно много.
++ Их очень много, особенно если к ним прибавить тех кто сам этого не осознаёт, но "гонит" андроид-разработчиков в сроки "как в IOS" и "дизайн как в IOS" Я с некоторого времени даже очень зажелал, чтобы кросс-платформ достиг достаточно хорошего уровня .....чтобы "всех неуверенных и сомневающихся" - отправлять туда - "в презентэйшн слой". Тем самым - отсеяв "истинно желающих и готовых" на "чистый андроид/ios, платформ-таргетированый"
Igor
Можно юзать TypeScript: типизация поможет, к тому же, удобно и всё только за
Можно и flow, только это все костыли, которые пытаются натянуть стат. тип. поверх динамических жс-hashmap’ов
Михаил 🇺🇦
Можно и flow, только это все костыли, которые пытаются натянуть стат. тип. поверх динамических жс-hashmap’ов
К сожалению, да, хотя и затраты на разработку уменьшаются с RN, конечно же, иногда вылазят баги
Pavel
Добрый вечер! При запуске юнит тестов в проекте вылетает ошибка JUnit version 3.8 or later expected, java.lang.RuntimeException: Stub! . Если убрать несколько зависимостей в build.gradle то ошибки нет. Мультидекс включен. Гуглил эту ошибку, переробывал все варианты - не помогло. Похоже это связано как-то с мультидекс, т.к. если убрать несколько зависимостей в build.grale то все ок. Может кто-нибудь сталкивался с такой проблемой ?)
François Leclercq
Привет всем. Поделитесь примером реализации IntentService + RxJava + Retrofit. Чот ничего внятного нагуглить не могу.
John
Ребят кому не сложно подскажите пожалуйста ошибку. Есть observable который устанавливает websocket соединение. Когда я вызываю метод dispose(). Хочу чтобы в Observable где устанавливаю соединение вызывался метод doOnDispose{} там я закрываю соединение. Проблема в том что когда я вызываю dispose() в doOnDispose{} я не попадаю и observer продолжает получать сообщения в onNext(t: Data). Вот гист https://gist.github.com/Nakulov/b01b2e02b83edb2f4b5799a597ad6506
Andrey
Позвольте нубовский вопрос граждане разработчики
JRoot3D
Позвольте нубовский вопрос граждане разработчики
ты его уже мог задать 2 сообщения назад
Глеб
Привет всем. Поделитесь примером реализации IntentService + RxJava + Retrofit. Чот ничего внятного нагуглить не могу.
Может, потому что IntentService + RxJava - взаимо противоречащие друг-другу вещи? 🤔
Danil
ну можно сделать обертку над BroadcastReceiver’ом с RxJava)
Danil
и как-то связать это с интент сервисом
Maryna
А это не оверинджениринг?)
Mike
Зачем вы пытаетесь интепрпетировать набор слов?
Konstantin
Может, потому что IntentService + RxJava - взаимо противоречащие друг-другу вещи? 🤔
Сервис повышает приоритет процесса в бекграунде, с меньшей вероятностью андроид его убьет. RxJava дает асинхронность, поэтому я бы делал обычный service (или foreground) + rxjava, но не intentservice
Danil
Зачем вы пытаетесь интепрпетировать набор слов?
зачем ты отвечаешь на нашу попытку интерпретировать набор слов?
Mike
И как в сервисе это дело реализовать?
class SomeService { { new Retrofit.Builder().build(); Observable.just(null); } }
Глеб
Сервис повышает приоритет процесса в бекграунде, с меньшей вероятностью андроид его убьет. RxJava дает асинхронность, поэтому я бы делал обычный service (или foreground) + rxjava, но не intentservice
"Сервис повышает приоритет процесса в бекграунде, с меньшей вероятностью андроид его убьет." - Это наверное всё будет корректно при условии: a) fg-mode и б) android:process=":service" и при таком раскладе RrxJava - останется "зажатая" внутри сервиса (ибо Observable != parcelable, да и в целом ipc- там тупо нет) И в таком случае, уже достаточно сомнительны профиты rx-а в сервисе. Более, того сервис - как правило - это тупой линейный command processor, который по завершению - должен быть остановлен (в идеале). Очень сомнительна - становится в данном контексте идея "наблюдателя" впринципе. Observable, который по факту - just или single или как он там называется one-shot, короче - ну... так себе. По многопоточности в данном случае IntentService уже имеет WorkerThread из коробки.... и как бы - берём и пишем - берём и пишем - и ничего over - не надо)) так что.... не знаю ... не знаю🤔
Глеб
И как в сервисе это дело реализовать?
В handleIntent - сходить в сеть - синхронно, получить результат - и делать с ним что и хотел делать То есть - по всем канонам IntentService (уже не помню - в доках 100% про это есть с примерами)
Konstantin
"Сервис повышает приоритет процесса в бекграунде, с меньшей вероятностью андроид его убьет." - Это наверное всё будет корректно при условии: a) fg-mode и б) android:process=":service" и при таком раскладе RrxJava - останется "зажатая" внутри сервиса (ибо Observable != parcelable, да и в целом ipc- там тупо нет) И в таком случае, уже достаточно сомнительны профиты rx-а в сервисе. Более, того сервис - как правило - это тупой линейный command processor, который по завершению - должен быть остановлен (в идеале). Очень сомнительна - становится в данном контексте идея "наблюдателя" впринципе. Observable, который по факту - just или single или как он там называется one-shot, короче - ну... так себе. По многопоточности в данном случае IntentService уже имеет WorkerThread из коробки.... и как бы - берём и пишем - берём и пишем - и ничего over - не надо)) так что.... не знаю ... не знаю🤔
нет, https://developer.android.com/guide/components/processes-and-threads.html?utm_campaign=adp_series_processes_012016&utm_source=medium&utm_medium=blog#Lifecycle
Konstantin
Не вижу на странице анкера #Lifecycle
https://developer.android.com/guide/components/activities/process-lifecycle.html вот здесь описано
Mike
https://developer.android.com/guide/components/activities/process-lifecycle.html вот здесь описано
Не, я о предыдущей ссылке. Она с фрагментом, а соответствующего анкера на странице нет.