В Android 11 ART научили в обновления layout'а классов на лету, чтобы как минимум использовать с Apply Changes в Android Studio. Обозвали это дело Structural Class Redefinition. В статье разбирают, как всё это пилили и с какими сложностями пришлось бороться.
#art #studio #ide
#art #studio #ide
Medium
Structural Class Redefinition
Allowing tools, such as Apply Changes, to modify the class structure itself, adding new fields to existing classes.
И ещё разок: 5 октября начнётся двухнедельная Podlodka Android Crew. Про какие-то технические штуки я уже писал выше, давайте теперь засветим бездельников:
- Доклады про стартап с нуля и про личный бренд
- Круглый стол по релизным процессам
- Психология в команде и доклад про зарплаты и рынок труда
Сессии проходят утром и вечером, поработать днём всё ещё удастся. Стоит это счастье 3900, загляните!
#event
- Доклады про стартап с нуля и про личный бренд
- Круглый стол по релизным процессам
- Психология в команде и доклад про зарплаты и рынок труда
Сессии проходят утром и вечером, поработать днём всё ещё удастся. Стоит это счастье 3900, загляните!
#event
podlodka.io
Онлайн-конференция Podlodka Android Crew, сезон #11
Недельное мероприятие от команды Podlodka: ежедневные интерактивные сессии в Zoom по актуальным проблемам Android-разработки, нон-стоп общение с экспертами и звёздами индустрии, закрытое профессиональное сообщество в Telegram.
Android-разработчики и не подозревали, что память утекает, если
#leak #memory #packagemanager
PackageManager... #leak #memory #packagemanager
DEV Community
Beware PackageManager leaks!
While I was investigating an Android memory leak, I took these notes as I learnt about the lifecycle...
Вот здесь рассказывают, как можно немного остудить ваши полыхающие жопки, измученные тяжёлой борьбой с
#recycler #async #channel
RecyclerView и UI thread, накостыляв асинхронное создание ViewHolder поверх Kotlin Channel.#recycler #async #channel
Medium
Recycler view, power of asynchronous view holders creation
The easy way to optimize your lists
Не щадя живота своего мы с товарищами работаем над AppsLive 2020. Это как AppsConf, только совсем-совсем бесплатно и очень-очень онлайн.
Случится это всё 21-22 октября.
Расскажу про доклады ребят, с которыми мне повезло поработать:
- Саша Агейченко расскажет про все тонкости работы в фоне. Все вот эти
- Артур Бадретдинов обрисует свой опыт жонглирования MVI, Compose и Ribs. И, что важно, научит жонглировать вас!
- Дима Пермяков покажет, как написать Gradle плагин, который нагенерит вам весь нужный код, чтобы каждый билд мог неподражаемо блистать своим набором feature toggles.
Заходите!
#appsconf #conference #event
Случится это всё 21-22 октября.
Расскажу про доклады ребят, с которыми мне повезло поработать:
- Саша Агейченко расскажет про все тонкости работы в фоне. Все вот эти
WorkManager, Doze mode и foreground Service - это всё к нему.- Артур Бадретдинов обрисует свой опыт жонглирования MVI, Compose и Ribs. И, что важно, научит жонглировать вас!
- Дима Пермяков покажет, как написать Gradle плагин, который нагенерит вам весь нужный код, чтобы каждый билд мог неподражаемо блистать своим набором feature toggles.
Заходите!
#appsconf #conference #event
appsconf.ru
Профессиональная конференция для разработчиков мобильных приложений 2020
Профессиональная конференция разработчиков мобильных приложений
Бывает, несёшь себе кофеёк к компу. Путь пролегает не самый близкий - покинуть кухню, преодолеть коридор, крадучись занести кружку в комнату, не обосрав тот любимый белый ковёр, и водрузить, наконец, дрожащими руками заветный напиток на рабочий стол.
А тут, на тебе, в коридоре, прямо под ногами, песок какой-то. Ясное дело, подставил кто-то. Гады. Ну ты-то не мог, ты-то ногами об коврик пошаркал, когда с прогулки возвращался. Сволочи. А кофе-то запахом манит. Да и пролить не хочется, они от нас только этого и ждут, Бубба.
Тут ты и принимаешь стратегическое решение аккуратненько ножкой так ать, и смести песок куда-то в сторону. Пусть это будет проблема выходного тебя.
Вот так и с сайд-эффектами, всё время их диверсанты какие-то в наш чудесный код добавляют. Но хочется же их аккуратненько куда-то под коврик замести, и чтобы только там они где-то и водились, и не отсвечивали, пока не позовут. И чтобы нельзя было ими наши замечательные чистые функции попортить.
Вот в этом посте смотрят на использование
#kotlin #coroutine #fp
А тут, на тебе, в коридоре, прямо под ногами, песок какой-то. Ясное дело, подставил кто-то. Гады. Ну ты-то не мог, ты-то ногами об коврик пошаркал, когда с прогулки возвращался. Сволочи. А кофе-то запахом манит. Да и пролить не хочется, они от нас только этого и ждут, Бубба.
Тут ты и принимаешь стратегическое решение аккуратненько ножкой так ать, и смести песок куда-то в сторону. Пусть это будет проблема выходного тебя.
Вот так и с сайд-эффектами, всё время их диверсанты какие-то в наш чудесный код добавляют. Но хочется же их аккуратненько куда-то под коврик замести, и чтобы только там они где-то и водились, и не отсвечивали, пока не позовут. И чтобы нельзя было ими наши замечательные чистые функции попортить.
Вот в этом посте смотрят на использование
suspend модификатора для этих целей. Интересная идея, пометить всё, у чего есть сайд-эффекты, тогда компилятор не даст нам чистые куски запятнать. Особенно интересно в контексте Redux-like подходов на эту идею посмотреть.#kotlin #coroutine #fp
👨💻 Jorge Castillo
Tracking side effects at compile time with suspend
Thinking of suspend as a Kotlin stdlib mechanism for flagging and tracking effects at compile time. Going declarative Functional Programming puts a lot of emphasis on achieving concern separation between the pure logics of a program (algebras) and the runtime…
Работа с датами и таймзонами - почти всегда больнючая заноза в заднице. Причём заноза старая. Такая, которую не хочется лишний раз трогать. Страшно же. Эта боль уже знакомая, все вроде как к ней привыкли, а новая - хрен её знает, какой окажется. И SQLite ещё, собака, подливает масла в огонь, отдельного типа данных для дат-то не водится.
Но не всё так плохо. Отдельного типа данных нам не положено, но если очень-очень нужно, то есть всякие вспомогательные функции. Вот в этом посте показали, какие инструменты у нас всё-таки есть, и как ими можно пользоваться.
P.S. Вот тут есть очень забавное видео про проблемы со временем и таймзонами в целом.
#sqlite #db #date
Но не всё так плохо. Отдельного типа данных нам не положено, но если очень-очень нужно, то есть всякие вспомогательные функции. Вот в этом посте показали, какие инструменты у нас всё-таки есть, и как ими можно пользоваться.
P.S. Вот тут есть очень забавное видео про проблемы со временем и таймзонами в целом.
#sqlite #db #date
Handling Dates & Times in SQLite
Handling Dates & Times in SQLite :: Ryan Harter
SQLite may not have dedicated datetime data types, but that doesn't mean we have to restort to queries filled with meaningless numbers and post-processing datasets in application code. Here we'll take a look at a real world use case for SQLite's [datetime…
Кстати, не забывайте, что у этого канала есть ещё вот такая движуха: Shitty Android PeerLab.
Последнюю пятницу каждого месяца мы собираемся в каком-нибудь из пабов Москвы (а в текущих запрись-и-забаррикадируйся реалиях - в Zoom) с другими разработчиками, и совершенно беспардонным образом общаемся.
Ближайший пирлаб случится уже завтра, заходите!
#peerlab #event
Последнюю пятницу каждого месяца мы собираемся в каком-нибудь из пабов Москвы (а в текущих запрись-и-забаррикадируйся реалиях - в Zoom) с другими разработчиками, и совершенно беспардонным образом общаемся.
Ближайший пирлаб случится уже завтра, заходите!
#peerlab #event
Близится ещё одна мобильная конференция - MobileOptimized.
Пройдёт она, ясное дело, онлайн. Будут потоки по Android, iOS и кроссплатформе. Все доклады там на английском и от разработчиков из самых разных стран.
Из Android трэка моё внимание сразу привлекли:
- Android App Start Explained от Lucas Nelaupe - разбор того, что происходит от нажатия на иконку аппа и до отрисовки первого экрана, как замерить и впоследствии оптимизировать каждый из этапов
- Absolute Modularization for Android от Степана нашего Гончарова - тут вроде бы и добавить нечего, название говорит само за себя
- А historical account of memory leaks in Android от Amanda Hinchman - историю того, как и что происходило с Android фреймворком за столько лет, всегда интересно послушать, а в контексте утечек памяти - вдвойне
Цена билета сейчас $30, а с промокодом
#event #conference
Пройдёт она, ясное дело, онлайн. Будут потоки по Android, iOS и кроссплатформе. Все доклады там на английском и от разработчиков из самых разных стран.
Из Android трэка моё внимание сразу привлекли:
- Android App Start Explained от Lucas Nelaupe - разбор того, что происходит от нажатия на иконку аппа и до отрисовки первого экрана, как замерить и впоследствии оптимизировать каждый из этапов
- Absolute Modularization for Android от Степана нашего Гончарова - тут вроде бы и добавить нечего, название говорит само за себя
- А historical account of memory leaks in Android от Amanda Hinchman - историю того, как и что происходило с Android фреймворком за столько лет, всегда интересно послушать, а в контексте утечек памяти - вдвойне
Цена билета сейчас $30, а с промокодом
shitty10android ещё и скидка в 10% положена. Заходите!#event #conference
Let’s Encypt (разрешённая в РФ некоммерческая организация) решила ласково так, по-отечески, приложить лицом о стол пользователей Android с версией ниже 7.1.1 (API 25). На таких устройствах нет корневого сертификата Let’s Encrypt. И если сейчас они могут ходить на ряд ресурсов благодаря перекрёстной подписи с другим удостоверяющим центром, то с некоторого момента X больше не смогут.
Хочется, конечно, сказать, что туда им и дорога, но устройств таких очень уж много - 33.8%.
За новость спасибо @istima.
#network #https #certificate
Хочется, конечно, сказать, что туда им и дорога, но устройств таких очень уж много - 33.8%.
За новость спасибо @istima.
#network #https #certificate
www.opennet.ru
Сертификаты Let's Encrypt перестанут восприниматься на 33% Android-устройств
Некоммерческий удостоверяющий центр Let's Encrypt, контролируемый сообществом и предоставляющий сертификаты безвозмездно всем желающим, анонсировал грядущий переход на формирование подписей с использованием только своего корневого сертификата, без применения…
Ребята из Podlodka Crew делают очередную конфу. На этот раз - по кроссплатформе. Грозятся потрогать своими немытыми лапками и React Native, и Flutter, и Kotlin Multiplatform Mobile. Проходить это всё будет 14-18 декабря. Welcome!
#event
#event
“Когда не выходит насухо, стоит прибегнуть к смазке”. Шило же дурного не посоветует. Хлеб похорошеет, если его смазать маслом. Место укуса комара можно смазать специальным средством, чтобы не чесалось. Ну а всякую работу с View и анимациями Chris Banes решил смазать корутинами.
Вот тут описано, что там куда можно присобачить, чтобы дожидаться следующего прохода layout или окончания анимации прямо без коллбэка и прямо в корутине.
#ui #view #coroutine
Вот тут описано, что там куда можно присобачить, чтобы дожидаться следующего прохода layout или окончания анимации прямо без коллбэка и прямо в корутине.
#ui #view #coroutine
Тут показывают, чем
Мне почему-то кажется, что если проделывать такое приходится действительно часто, то, возможно, где-то мы свернули не туда. Ну, случаи бывают разные, может быть для кого-то это и впрямь оправданно. Да и выглядят эти
#arrowkt #fp #library
Arrow-kt может помочь, если приходится делать множественные вложенные .copy на data class’ах. Мне почему-то кажется, что если проделывать такое приходится действительно часто, то, возможно, где-то мы свернули не туда. Ну, случаи бывают разные, может быть для кого-то это и впрямь оправданно. Да и выглядят эти
modify и @optics не прямо фу-фу-фу.#arrowkt #fp #library
Вот тут очень здорово рассказывают, как работает оптимизация хвостовой рекурсии (tail call optimization / TCO). Surprise-surprise, она вполне хорошо применяется и к обычным функциям с вызовом функции и
#compiler #optimize #recursion
return в конце.#compiler #optimize #recursion
eklitzke.org
How Tail Call Optimization Works
Черновик JEP’а про Primitive Objects.
Если упрощать, то это такие неизменяемые классы, с объектами которых можно работать, как с обычными примитивами. При копировании такого объекта получается объект, полностью идентичный оригинальному. И в планах даже сделать примитивными объектами
#java #jep #primitive
Если упрощать, то это такие неизменяемые классы, с объектами которых можно работать, как с обычными примитивами. При копировании такого объекта получается объект, полностью идентичный оригинальному. И в планах даже сделать примитивными объектами
int, boolean, и т.п., и обновить должным образом дженерики. Всем по List<int>!#java #jep #primitive
Когда-то давно мой отец занимался ремонтом телевизоров, видеомагнитофонов и всякой другой техники. И было у него много таких же приятелей-ремонтников. И вот как-то раз привезли им какой-то супер-навороченный и мега-современный телевизор. Не знаю, что там была за проблема, но чтобы решить её, им нужно было попасть в инженерное меню этой машины. Как в него попасть, не знал никто. Пробовали подходить по-разному, ни один способ не сработал. Кто-то из них взял телевизор домой, чтобы поковырять его вечерком. Ненароком оставив его на короткое время наедине с ребёнком, ремонтник с удивлением обнаружил, что дитятко что-то нажало на пульте, и попало в то самое инженерное меню. Повторить успех не мог никто, но задачу в итоге выполнили.
Это я всё к чему. В linuxmint/cinnamon-screensaver появился очень похожий и очень смешной issue: дети кликали и жмакали куда попало, находясь на экране блокировки, после чего скринсэйвер напрягся, крякнул и крашнулся, дав ребятишкам доступ в систему.
#linux #crash #cybersec
Это я всё к чему. В linuxmint/cinnamon-screensaver появился очень похожий и очень смешной issue: дети кликали и жмакали куда попало, находясь на экране блокировки, после чего скринсэйвер напрягся, крякнул и крашнулся, дав ребятишкам доступ в систему.
#linux #crash #cybersec
GitHub
Screensaver lock by-pass via the virtual keyboard · Issue #354 · linuxmint/cinnamon-screensaver
* Cinnamon version: Cinnamon 4.6.7 * Distribution: Fedora 32 * Graphics hardware *and* driver used: 03:00.0 VGA compatible controller: Advanced Micro Devices, Inc. [AMD/ATI] Ellesmere [Radeon RX 47...
1 февраля стартует очередная Podlodka Android Crew.
Это такая онлайн-конференция, которая проходит капельку утром, и капельку вечером. И так 2 недели. В этот раз ребята фокусируются на двух темах: UI и алгоритмы.
В UI секции, помимо прочего, нам обещают рассказать:
- Как собрать дизайн-систему из говна и палок
- Как оптимизировать
- Какие-то глубинные хитрости
Ну, а на второй неделе из нас планируют сделать алгоритмических ниндзя. Чтобы любой собес был BTYANNG!, а любая задачка - GRRRAH!
#event
Это такая онлайн-конференция, которая проходит капельку утром, и капельку вечером. И так 2 недели. В этот раз ребята фокусируются на двух темах: UI и алгоритмы.
В UI секции, помимо прочего, нам обещают рассказать:
- Как собрать дизайн-систему из говна и палок
- Как оптимизировать
RecyclerView- Какие-то глубинные хитрости
ConstraintsНу, а на второй неделе из нас планируют сделать алгоритмических ниндзя. Чтобы любой собес был BTYANNG!, а любая задачка - GRRRAH!
#event
podlodka.io
Онлайн-конференция Podlodka Android Crew, сезон #15
Недельное мероприятие от команды Podlodka: ежедневные интерактивные сессии в Zoom по актуальным проблемам Android-разработки, нон-стоп общение с экспертами и звёздами индустрии, закрытое профессиональное сообщество в Telegram.
А вот тут Тагир наш Валеев здорово рассказал про анбоксинг в последних версия Java. Не так страшен
#java #unboxing #jvm
Chort<Integer>, как его малюют!#java #unboxing #jvm
Хабр
Анбоксинг в современной Java
Сейчас новые версии Java выходят раз в полгода. В них время от времени появляются новые возможности: var в Java 10, switch-выражения в Java 14, рекорды и паттерн...
Замечательная история: мыши плакали и кололись, но продолжали не чинить туалеты и пользоваться GNOME.
#linux #gnome #humor
#linux #gnome #humor
jayfax.neocities.org
GNOME has no thumbnails in the file picker (and my toilets are blocked)
GNOME filepicker and my toilets are broken because of culture of mediocrity.
Contempt Culture
Интересно, а как у врачей? Презирают ли, скажем, онкологи отоларингологов? А отоларингологи - проктологов? И все вместе смеются над верстальщиками-терапевтами?
А если все резко станут онкологами, то кто заштопает мне задницу после очередного дня борьбы с Android SDK?
#community #culture
Интересно, а как у врачей? Презирают ли, скажем, онкологи отоларингологов? А отоларингологи - проктологов? И все вместе смеются над верстальщиками-терапевтами?
А если все резко станут онкологами, то кто заштопает мне задницу после очередного дня борьбы с Android SDK?
#community #culture
Aurynn
Contempt Culture - The Particular Finest
So when I started programming in 2001, it was du jour in the communities I participated in to be highly critical of other languages. Other languages
На последнем пирлабе @dsvoronin закинул ссылочку на доклад от Benno Rice (контрибьютор FreeBSD): The Tragedy of systemd. В тех кругах, насколько я понял, systemd принято хэйтить за сложность и ответственность за всё и вся. Benno попытался разобраться, откуда вся эта сложность, и не пора ли уже “принять и простить”.
Ну и в целом очень хороший доклад, даже хочется надёргать цитат. Положу их в комменты к посту.
P.S. наш пирлаб, кстати, проходит каждую последнюю пятницу месяца в 20:00. В мирное время - в одном из пабов Москвы. Сейчас - в Zoom. Заходите, у нас всегда весело и мы всем рады.
#linux #systemd #talk
Ну и в целом очень хороший доклад, даже хочется надёргать цитат. Положу их в комменты к посту.
P.S. наш пирлаб, кстати, проходит каждую последнюю пятницу месяца в 20:00. В мирное время - в одном из пабов Москвы. Сейчас - в Zoom. Заходите, у нас всегда весело и мы всем рады.
#linux #systemd #talk
YouTube
The Tragedy of systemd
Benno Rice
https://2019.linux.conf.au/schedule/presentation/156/
systemd is, to put it mildly, controversial. As a FreeBSD developer I decided I wanted to know why.
I delved into the history of bootstrap systems, and even the history of UNIX and other…
https://2019.linux.conf.au/schedule/presentation/156/
systemd is, to put it mildly, controversial. As a FreeBSD developer I decided I wanted to know why.
I delved into the history of bootstrap systems, and even the history of UNIX and other…