Baseline Profiles – реальность сложнее, чем кажется
Твиттер-тред инженера из Square про то, как работают Baseline Profiles, про реальный перфоманс буст и про сложности их создания. Обязательно плолистайте и реплаи, там много ценного.
Твиттер-тред инженера из Square про то, как работают Baseline Profiles, про реальный перфоманс буст и про сложности их создания. Обязательно плолистайте и реплаи, там много ценного.
Twitter
Let's talk about Android Baseline Profiles!
Android team is pushing hard for their adoption. GMaps startup had 40% perf improvements, why isn't everybody jumping on that?!
Reality is a bit more complex...
#AndroidDev #performance
Android team is pushing hard for their adoption. GMaps startup had 40% perf improvements, why isn't everybody jumping on that?!
Reality is a bit more complex...
#AndroidDev #performance
📱Android-разработчик VK Видео (middle)
VK Видео - это один из самых крупных сервисов потокового видео в России. Ежедневно им пользуются десятки миллионов людей и перед командой стоит амбициозная задача - стать видеосервисом 1 в РФ.
Чтобы сделать сервис еще более полезным и увлекательным для зрителей и помогать авторам находить свою аудиторию, они ищут Android-разработчиков
🎯Задачи:
📌Разрабатывать приложение ВКонтакте (продукт видео) для Android;
📌Создавать новые возможности продукта, реализовывать смелые UX-эксперименты;
📌Следить за работоспособностью сервиса и устранять технический долг;
📌Взаимодействовать с командой менеджеров, дизайнеров, аналитиков и тестировщиков;
📌Принимать участие в планировании, обсуждении проектов.
🔥Требования:
💎Отличное знание Java и Kotlin;
💎Хорошие знания платформы Android;
💎Знание классических алгоритмов и структуры данных;
💎Навыки профилирования;
💎Опыт написания Unit-тестов;
💎Опыт работы с аудио или видео на мобильных устройствах (желательно);
💎Готовность активно участвовать в ревью кода.
🛠Стек:
Kotlin — весь новый функционал; Java — legacy части, постепенно переписываемые на Kotlin; RxJava; Room; Coroutines; Jetpack Compose.
🤩Почему у них круто:
ДМС для сотрудника и его детей с первого месяца работы;
100%-ная оплата больничного в течение 30 дней;
Компенсация занятий спортом;
Компенсация питания;
Конкурентный уровень заработной платы.
И многое другое, скорее пиши в рекрутеру - @bxnmx
VK Видео - это один из самых крупных сервисов потокового видео в России. Ежедневно им пользуются десятки миллионов людей и перед командой стоит амбициозная задача - стать видеосервисом 1 в РФ.
Чтобы сделать сервис еще более полезным и увлекательным для зрителей и помогать авторам находить свою аудиторию, они ищут Android-разработчиков
🎯Задачи:
📌Разрабатывать приложение ВКонтакте (продукт видео) для Android;
📌Создавать новые возможности продукта, реализовывать смелые UX-эксперименты;
📌Следить за работоспособностью сервиса и устранять технический долг;
📌Взаимодействовать с командой менеджеров, дизайнеров, аналитиков и тестировщиков;
📌Принимать участие в планировании, обсуждении проектов.
🔥Требования:
💎Отличное знание Java и Kotlin;
💎Хорошие знания платформы Android;
💎Знание классических алгоритмов и структуры данных;
💎Навыки профилирования;
💎Опыт написания Unit-тестов;
💎Опыт работы с аудио или видео на мобильных устройствах (желательно);
💎Готовность активно участвовать в ревью кода.
🛠Стек:
Kotlin — весь новый функционал; Java — legacy части, постепенно переписываемые на Kotlin; RxJava; Room; Coroutines; Jetpack Compose.
🤩Почему у них круто:
ДМС для сотрудника и его детей с первого месяца работы;
100%-ная оплата больничного в течение 30 дней;
Компенсация занятий спортом;
Компенсация питания;
Конкурентный уровень заработной платы.
И многое другое, скорее пиши в рекрутеру - @bxnmx
This media is not supported in your browser
VIEW IN TELEGRAM
Релиз Appyx 1.0.0
- Вышел первый стабильный релиз Appyx – библиотеки навигации от Bumble.
- Вместе с релизом выпустили три туториала: Basics, Navigation и Custom animation.
- Вышел первый стабильный релиз Appyx – библиотеки навигации от Bumble.
- Вместе с релизом выпустили три туториала: Basics, Navigation и Custom animation.
Как нарисовать тени в Android
- Чаще всего достаточно использовать системные тени, определяемые через параметр elevation.
- Если дизайн требует кастомной тени, можно попробовать MaterialShapeDrawable из Material.
- Автор в статье разбирает эти и другие способы создания теней и оптимизирует производительность получившегося решения.
- Чаще всего достаточно использовать системные тени, определяемые через параметр elevation.
- Если дизайн требует кастомной тени, можно попробовать MaterialShapeDrawable из Material.
- Автор в статье разбирает эти и другие способы создания теней и оптимизирует производительность получившегося решения.
Недооцененные хоткеи в IntelliJ
1️⃣⌥ “x” or Alt+“x” – закрыть все неактивные табы
2️⃣⇧⌘V or Shift+Ctrl+V – управление буфером обмена
3️⃣⌥/ or Alt+/ – специальный режим автокомплишна, который предлагает слова без учета контекста
4️⃣⌥⌘L or Ctrl+Alt+L – применение к коду настроек форматирования
5️⃣⌘F12 or Ctrl+F12 – навигация по структуре файла
6️⃣⌃G or Alt+J – выбор нескольких вхождений поисковой строки в файле для их одновременного редактирования
7️⃣⌘⇧↑/↓ or Alt +Shift+↑/↓ – реордеринг строк в файле
8️⃣⌘D or Ctrl+D – дублирование строки
1️⃣⌥ “x” or Alt+“x” – закрыть все неактивные табы
2️⃣⇧⌘V or Shift+Ctrl+V – управление буфером обмена
3️⃣⌥/ or Alt+/ – специальный режим автокомплишна, который предлагает слова без учета контекста
4️⃣⌥⌘L or Ctrl+Alt+L – применение к коду настроек форматирования
5️⃣⌘F12 or Ctrl+F12 – навигация по структуре файла
6️⃣⌃G or Alt+J – выбор нескольких вхождений поисковой строки в файле для их одновременного редактирования
7️⃣⌘⇧↑/↓ or Alt +Shift+↑/↓ – реордеринг строк в файле
8️⃣⌘D or Ctrl+D – дублирование строки
The JetBrains Blog
Top Underrated Shortcuts in IntelliJ IDEA | The IntelliJ IDEA Blog
Shortcuts are in IntelliJ IDEA’s DNA: every possible action is at your fingertips – even those you didn’t think you needed. We share helpful shortcuts with you quite frequently, so by now, you may
This media is not supported in your browser
VIEW IN TELEGRAM
Profileable сборки приложений
- В Android 10 появилась возможность собирать релизные билды со специальным тегом profiliable. По сравнению с дебажными сборками, их перфоманс приближен к релизному.
- Такую сборку можно создать как из интерфейса Android Studio, так и вручную, указав тег в AndroidManifest.xml.
- В Android 10 появилась возможность собирать релизные билды со специальным тегом profiliable. По сравнению с дебажными сборками, их перфоманс приближен к релизному.
- Такую сборку можно создать как из интерфейса Android Studio, так и вручную, указав тег в AndroidManifest.xml.
Open-Obfuscator – новый обфускатор мобильных приложений
- Автор проекта увлекался поиском уязвимостей в существующих обфускаторах, но ему не были рады. Поэтому он решил написать свой, с упором на открытость к разработчикам и рисерчерам. Даже для первого релиза большую часть времени разработки автор вложил в понятную документацию.
- Open-Obfuscator поддерживает обфускацию нативного кода с помощью специального LLVM плагина, и обфускацию Kotlin/Java кода поверх ядра Proguard.
- Нативный обфускатор называется O-MVLL, обфускатор для Kotlin – dProtect.
- Автор проекта увлекался поиском уязвимостей в существующих обфускаторах, но ему не были рады. Поэтому он решил написать свой, с упором на открытость к разработчикам и рисерчерам. Даже для первого релиза большую часть времени разработки автор вложил в понятную документацию.
- Open-Obfuscator поддерживает обфускацию нативного кода с помощью специального LLVM плагина, и обфускацию Kotlin/Java кода поверх ядра Proguard.
- Нативный обфускатор называется O-MVLL, обфускатор для Kotlin – dProtect.
Туториал по работе с жестами в Compose
🕵️Отслеживание тапов
🌟Реализация двойного тапа
👆Жест скролла
👉Жест закрытия по свайпу
🕵️Отслеживание тапов
🌟Реализация двойного тапа
👆Жест скролла
👉Жест закрытия по свайпу
kodeco.com
Gestures in Jetpack Compose: Getting Started
Learn how to implement different gestures in Jetpack Compose and provide your app an intuitive user experience.
Podlodka Android Crew – уже в понедельник
Примета: если пропустить ноябрьскую Podlodka Android Crew, то весь следующий год у вас будут проблемы с архитектурой на проекте.
Да-да, это неожиданный анонс конфы, которая стартует 14 ноября.
Зачем идти на конфу:
- узнаете, что за странные слова TEA, ELM, MVU.
- поймете, что Backend Driven UI вам не нужен.
- увидете, как на практике Anvil упрощает работу с Dagger'ом.
- научитесь дошлифовывать архитектуру проекта для получения надежных и предсказуемых тестов.
- ну, и, конечно, отлично проведете неделю в Слаке, общаясь с русскоязычными андроид-разработчиками, которые расползлись по миру.
Всем подписчикам канала – скидка на 1000р по промокоду
Айда на конфу, билеты на сайте!
Примета: если пропустить ноябрьскую Podlodka Android Crew, то весь следующий год у вас будут проблемы с архитектурой на проекте.
Да-да, это неожиданный анонс конфы, которая стартует 14 ноября.
Зачем идти на конфу:
- узнаете, что за странные слова TEA, ELM, MVU.
- поймете, что Backend Driven UI вам не нужен.
- увидете, как на практике Anvil упрощает работу с Dagger'ом.
- научитесь дошлифовывать архитектуру проекта для получения надежных и предсказуемых тестов.
- ну, и, конечно, отлично проведете неделю в Слаке, общаясь с русскоязычными андроид-разработчиками, которые расползлись по миру.
Всем подписчикам канала – скидка на 1000р по промокоду
ADVANCED
.Айда на конфу, билеты на сайте!
podlodka.io
Онлайн-конференция Podlodka Android Crew, сезон #13
Недельное мероприятие от команды Podlodka: ежедневные интерактивные сессии в Zoom по актуальным проблемам Android-разработки, нон-стоп общение с экспертами и звёздами индустрии, закрытое профессиональное сообщество в Telegram.
Обзор сессий второго дня Android Developer Summit’22
Все новые сессии посвящены необычным форм-факторам Android приложений: часам, TV и большим экранам.
Полный плейлист
Все новые сессии посвящены необычным форм-факторам Android приложений: часам, TV и большим экранам.
Полный плейлист
Android Developers Blog
Form Factors at Android Developer Summit ‘22
Discover the latest tools, APIs and guidance that make it easier to build apps that look great on large screens, wearables, and TVs.
Разбор и критика гайдов Google по работе с диалогами
Автор разбирает недочеты в рекомендациях Google по отображению и получению результатов простых и сложных диалогов, реализованных с помощью FragmentManager или Jetpack Navigation.
Автор разбирает недочеты в рекомендациях Google по отображению и получению результатов простых и сложных диалогов, реализованных с помощью FragmentManager или Jetpack Navigation.
Medium
Mastering Android Dialogs: Don’t follow official Google Guides
This article is part of a multi-series on Mastering Android Dialogs
Kotlin 1.8.0-Beta
Вышла первая EAP версия новой мажорной версии Kotlin:
- Полностью удален старый компиляторный JVM бэкенд
- Новый новый бэкенд Kotlin/JS перешел в Stable
- Совместимость с Gradle 7.3
- Новые экспериментальные фичи для java.nio.file.path и TimeMarks
- Поддержка Xcode 14 для KMM
Вышла первая EAP версия новой мажорной версии Kotlin:
- Полностью удален старый компиляторный JVM бэкенд
- Новый новый бэкенд Kotlin/JS перешел в Stable
- Совместимость с Gradle 7.3
- Новые экспериментальные фичи для java.nio.file.path и TimeMarks
- Поддержка Xcode 14 для KMM
Советы по тестированию suspend функций
Разбор нескольких практик тестирования и вспомогательных функций из kotlinx.coroutines.test, которые упрощают проверку результатов работы корутин.
Разбор нескольких практик тестирования и вспомогательных функций из kotlinx.coroutines.test, которые упрощают проверку результатов работы корутин.
Arkadiusz Chmura
How to test intermediate steps in suspending functions | Arkadiusz Chmura
Testing the final result of a suspending function is easy, but what about verifying what happens inside it during the execution?
Multiplatform Paging
- Логика пагинации – идеальный кандидат для того, чтобы шарить между платформами.
- CashApp выпустили библиотеку Multiplatform Paging, полный аналог библиотеки из AndroidX, но с поддержкой мультиплатформы.
- Логика пагинации – идеальный кандидат для того, чтобы шарить между платформами.
- CashApp выпустили библиотеку Multiplatform Paging, полный аналог библиотеки из AndroidX, но с поддержкой мультиплатформы.
Cash App Code Blog
Announcing Multiplatform Paging
Multiplatform Paging is a library that packages AndroidX Paging for Kotlin/Multiplatform. It’s built to be a drop-in-replacement for AndroidX Paging, so extracting out shared pagination logic couldn’t be easier.
Отчет с анализом 2.9 миллионов приложений из Play Store
- Ежегодный рост количества приложений уменьшился, пик был в 2019 году. То же и с ростом количества разработчиков.
- Категории-лидеры по количеству инсталлов: Tools, Communication, Productivity, Entertainment, Video Players.
- Только у 1% приложений больше миллиона инсталлов, причем только у 61% из них рейтинг выше 4.
- В среднем в 40% приложений есть реклама.
- Ежегодный рост количества приложений уменьшился, пик был в 2019 году. То же и с ростом количества разработчиков.
- Категории-лидеры по количеству инсталлов: Tools, Communication, Productivity, Entertainment, Video Players.
- Только у 1% приложений больше миллиона инсталлов, причем только у 61% из них рейтинг выше 4.
- В среднем в 40% приложений есть реклама.
Релиз Koin Android 3.3.0
koin-android и koin-android-compose обновились до версии 3.3.0. Основной фокус – обновление ViewModel API.
koin-android и koin-android-compose обновились до версии 3.3.0. Основной фокус – обновление ViewModel API.
blog.cloud-inject.io
Blog - Koin - Cloud-Inject.io
Keep yourself informed about the latest developments in the Koin framework and Cloud-Inject Observability Dev platform directly from the creators.
Различия .collect() и .launchIn() в Kotlin Flows
В статье разбираются различия между двумя основными способами сбора результатов работы Flow. Если кратко, то для большинства случаев рекомендуется .launchIn(), так как логика работы .collect() менее очевидна.
В статье разбираются различия между двумя основными способами сбора результатов работы Flow. Если кратко, то для большинства случаев рекомендуется .launchIn(), так как логика работы .collect() менее очевидна.