Отличный материал про использование профилировщика Perfetto для анализа того, что происходит и сколько времени занимает при выполнении каких-то действий с приложением. Помимо общей инструкции по использованию, разбирается как сделать отчет более читаемым с помощью логов.
https://py.hashnode.dev/tracing-main-thread-messages
https://py.hashnode.dev/tracing-main-thread-messages
P-Y's blog
Tracing main thread messages in Perfetto
This blog shows how to see what the main thread is doing in Perfetto traces by leveraging a seldom-used Looper logger API.
Задумались о переходе на Jetpack Compose? Тогда вам обязательно нужно попасть на новый сезон Podlodka Android Crew, который начинается 14 февраля! Всего за 5 дней вместе мы составим подробный пошаговый план перехода на Compose.
Вы узнаете как перевести UI приложения с XML и AppCompat на Compose, посмотрите на практические кейсы и набитые шишки экспертов, разберетесь с навигацией, анимацией, узнаете, как правильно сохранять состояние в приложении и всем, что необходимо для комфортного перехода. И все это в формате воркшопов с множеством кейсов-примеров, которые вы сразу сможете применять.
Всего на Podlodka Android Crew выступит больше 10 спикеров, среди которых Павел Стрельченко из HeadHunter Group, Антон Шилов из Badoo, Андрей Шиков из Facebook, Алексей Гладков из Леруа Мерлен, Миша Левченко из Auto.ru.
Чтобы купить билет, заходите на наш сайт! Успейте купить пока действует специальное предложение для early-bird — только до 2 февраля! Ждем вас на борту!
Вы узнаете как перевести UI приложения с XML и AppCompat на Compose, посмотрите на практические кейсы и набитые шишки экспертов, разберетесь с навигацией, анимацией, узнаете, как правильно сохранять состояние в приложении и всем, что необходимо для комфортного перехода. И все это в формате воркшопов с множеством кейсов-примеров, которые вы сразу сможете применять.
Всего на Podlodka Android Crew выступит больше 10 спикеров, среди которых Павел Стрельченко из HeadHunter Group, Антон Шилов из Badoo, Андрей Шиков из Facebook, Алексей Гладков из Леруа Мерлен, Миша Левченко из Auto.ru.
Чтобы купить билет, заходите на наш сайт! Успейте купить пока действует специальное предложение для early-bird — только до 2 февраля! Ждем вас на борту!
podlodka.io
Онлайн-конференция Podlodka Android Crew, сезон #13
Недельное мероприятие от команды Podlodka: ежедневные интерактивные сессии в Zoom по актуальным проблемам Android-разработки, нон-стоп общение с экспертами и звёздами индустрии, закрытое профессиональное сообщество в Telegram.
С февраля вам обязательно нужно заполнять «Google Data Safety Section» при обновлении приложения, и указывать, как вы работаете с пользовательскими данными. И если про свое приложение все относительно понятно, то со сторонними SDK могут возникнуть проблемы, особенно если в их документации пока нет ни слова про персональные данные. Держите поддерживаемый сообществом реестр информации про популярные библиотеки.
https://github.com/Privado-Inc/SDK-Privacy-Report
https://github.com/Privado-Inc/SDK-Privacy-Report
GitHub
GitHub - Privado-Inc/SDK-Privacy-Report: Privacy details of SDKs for Apple Privacy Nutrition & Google Safety Section disclosure.
Privacy details of SDKs for Apple Privacy Nutrition & Google Safety Section disclosure. - Privado-Inc/SDK-Privacy-Report
Основной сценарий использования Kotlin Multiplatform – это выделение какого-то компонента бизнес-логики в общий модуль, который затем шарится между платформами. С таким подходом хорошее тестовое покрытие становится важным вдвойне. Держите очень подробный гайд по тому, как подойти к тестированию мультиплатформенного модуля – разбираются и юнит-тесты, и контракты.
https://akjaw.com/testing-on-kotlin-multiplatform-and-strategy-to-speed-up-development/
https://akjaw.com/testing-on-kotlin-multiplatform-and-strategy-to-speed-up-development/
AKJAW
Testing on Kotlin Multiplatform and a Strategy to Speed Up Development Time (2023 Update)
Automated tests are an integral part of developing software, they help catch bugs before they reach the users and save developers time by cutting down manual testing.
Если вам когда-нибудь нужно будет реализовывать полнотекстовый поиск – посмотрите на новую библиотеку lucilla.
https://github.com/haroldadmin/lucilla
https://github.com/haroldadmin/lucilla
GitHub
GitHub - haroldadmin/lucilla: Fast, efficient, in-memory Full Text Search for Kotlin
Fast, efficient, in-memory Full Text Search for Kotlin - GitHub - haroldadmin/lucilla: Fast, efficient, in-memory Full Text Search for Kotlin
Чистый код – это очень расплывчатое понятие (как и архитектура, кек). В каком бы контексте оно не использовалось, полезно пытаться выделить конкретные качества кода, о которых идет речь: читаемость, переиспользуемость, консистентность, тестируемость. Посмотрите на неплохую статью с критикой термина и пополните свой словарик для комментариев на code review.
https://www.steveonstuff.com/2022/01/27/no-such-thing-as-clean-code
https://www.steveonstuff.com/2022/01/27/no-such-thing-as-clean-code
➡️ Делаем оффер iOS- и Android-разработчикам за один день. Приглашаем в команды Мобильного банка, Тинькофф Инвестиций, Тинькофф Бизнеса и еще трех проектов.
Вы — в течение одного дня общаетесь с нашей командой. Мы — делаем оффер, если работа подойдет вам по условиям, а задачи — по скиллам.
🖇 Все будет онлайн, 19 февраля. Заявки принимаем до 15 февраля включительно. Подробности и регистрация по ссылке: https://l.tinkoff.ru/offer-mobile
Вы — в течение одного дня общаетесь с нашей командой. Мы — делаем оффер, если работа подойдет вам по условиям, а задачи — по скиллам.
🖇 Все будет онлайн, 19 февраля. Заявки принимаем до 15 февраля включительно. Подробности и регистрация по ссылке: https://l.tinkoff.ru/offer-mobile
Есть бесконечность подходов к тому, как организовать навигацию в Compose проекте. В статье рассматривается большая часть из них, в заодно и систематизируется в виде списка критериев выбора подходящего решения.
https://commonsware.com/blog/2022/01/22/navigating-compose-criteria.html
https://commonsware.com/blog/2022/01/22/navigating-compose-criteria.html
CommonsWare: Android App Development Books
Navigating in Compose: Criteria
There are lots of solutions for navigating between
В следующий четверг, 10 февраля, ребята из VK проводят Android митап с темами про работу с GraphQL, реверс-инжиниринг мобильных приложений с помощью Frida и интеграцией общего SDK сразу во много приложений.
Регистрация с доступом к чату и викторине – здесь, а трансляции можно дожидаться вот тут.
Регистрация с доступом к чату и викторине – здесь, а трансляции можно дожидаться вот тут.
vk.company
VK / VK Tech Talks · Android
10 февраля в 18:00 приходите на митап от команды VK. В этот раз поговорим про разработку на Android.
А вдогонку – разбор одного из подходов, с навигацией через стейт ViewModel.
https://medium.com/@ffvanderlaan/navigation-in-jetpack-compose-using-viewmodel-state-3b2517c24dde
https://medium.com/@ffvanderlaan/navigation-in-jetpack-compose-using-viewmodel-state-3b2517c24dde
Medium
Navigation in Jetpack Compose using ViewModel state
In this article, we will show an example of using a ViewModel to initiate navigation in Jetpack Compose. For this, we use navigation state…
В последних версиях Android довольно сильно изменилось поведение диплинков. По ссылке – обзор этих измений и план по тому, как адаптировать к ним ваш проект.
https://doordash.engineering/2022/01/25/your-deep-links-might-be-broken-web-intents-and-android-12/
https://doordash.engineering/2022/01/25/your-deep-links-might-be-broken-web-intents-and-android-12/
DoorDash
Your Deep Links Might Be Broken: Web Intents and Android 12
Get ahead of the behavior changes in the latest Android 12 update by fixing deep links with web intents in this guide
Пошаговый гайд по реализации автоматического импакт-анализа для тестов. Это техника, которая позволяет запускать только те тесты, которые тестируют затронутый изменением код. Авторы говорят, что в их случае экономится около 30% времени прогона.
https://habr.com/ru/company/citymobil/blog/647519/
https://habr.com/ru/company/citymobil/blog/647519/
Хабр
Импакт-анализ на примере Android-проекта
Одной из самых дорогих по времени операций на CI-сервере является прогон автотестов. Есть множество способов их ускорения, например, распараллеливание выполнения по нескольким CI-агентам и/или...
Если бы я вручал награды за лучшие посты прошлого месяца, то точно отдал бы этому. Одна из самых подробных статей про перфоманс Android приложений:
- почему он важен и как влияет на пользовательский опыт
- из-за каких особенностей JVM возникают часто встречающиеся проблемы
- каким тулингом можно пользоваться, чтобы мониторить перфоманс и находить проблемы
- какие языковые фичи Kotlin помогают улучшить перфоманс
Последняя часть про языковые фичи – очень хорошая, и подкинет вам идей по тому, на что еще обращать внимание на code review.
https://magdamiu.medium.com/high-performance-with-idiomatic-kotlin-d52e099d0df0
- почему он важен и как влияет на пользовательский опыт
- из-за каких особенностей JVM возникают часто встречающиеся проблемы
- каким тулингом можно пользоваться, чтобы мониторить перфоманс и находить проблемы
- какие языковые фичи Kotlin помогают улучшить перфоманс
Последняя часть про языковые фичи – очень хорошая, и подкинет вам идей по тому, на что еще обращать внимание на code review.
https://magdamiu.medium.com/high-performance-with-idiomatic-kotlin-d52e099d0df0
Medium
High performance with idiomatic Kotlin
Nothing is more likely to drive users away than a poorly performing app. So this is why we, as developers, should focus on performance.
Довольно проклятая фича Android Studio, которая, может быть, кого-то из вас порадует. Можно настроить интеграцию с Jira, получить доступ ко всем вашим задачам и быстро создавать новые ветки для них.
https://twitter.com/mateuszbrat/status/1489164332961308673?s=21
https://twitter.com/mateuszbrat/status/1489164332961308673?s=21
Twitter
Mateusz Bratkowski
Yesterday I learned that you can connect your Android Studio to your Jira board and have access to all tasks which are assigned to you. This is so useful - you can create branches corresponding to your tasks directly from your IDE, without context switching.
Неплохой доклад на вечную тему – как различные ошибки разработчиков, принятые на ранней стадии развития проекта, могут очень сильно усложнить работу с ним в будущем, или даже послужить причиной полного его переписывания.
https://youtube.com/watch?v=nD1BvJYWcSc
https://youtube.com/watch?v=nD1BvJYWcSc
YouTube
Guide to Destroying Codebases the Demise of Clever Code with Gabor Varadi
We try to write the best code possible, simplify future maintenance, optimize for code reuse, and apply best practices and principles to help us achieve this.
However, what if this can serve as a double-edged sword?
In this talk, we'll analyze different…
However, what if this can serve as a double-edged sword?
In this talk, we'll analyze different…
Вышла превью версия Kotlin 1.6.20. Самые интересные фичи в релизе:
💻Контекстные ресиверы
🏎Ускорение компиляции JVM проектов на 15% с помощью параллельной компиляции файлов в рамках одного модуля
https://blog.jetbrains.com/kotlin/2022/02/kotlin-1-6-20-m1-released/
💻Контекстные ресиверы
🏎Ускорение компиляции JVM проектов на 15% с помощью параллельной компиляции файлов в рамках одного модуля
https://blog.jetbrains.com/kotlin/2022/02/kotlin-1-6-20-m1-released/
The JetBrains Blog
Preview of Kotlin 1.6.20 With Prototype of Context Receivers, Parallel Compilation on JVM, Incremental Compilation in JS, and More…
The first preview of the 1.6.20 release is out! Introducing Kotlin 1.6.20-M1! This preview includes: Defining context-dependent declarations in Kotlin/JVM with the prototype of context receivers.Fa
Духоподъемная история про то, что при желании в Android-разработку можно ворваться и после 40 лет. От других историй входа в IT эту отличает несколько особенностей:
- Довольно печальная сюжетная ветка про то, что С++ разработчик совсем перестал программировать после перехода в менеджмент, и спустя десяток лет вообще все скиллы растерял
- Сюжетный твист с перемоткой времени в конце
Мораль? Да нет морали, кроме того, что не стоит совсем забрасывать программирование, даже когда карьера вот прямо сейчас летит куда-то вверх.
https://elye-project.medium.com/i-started-android-development-at-40-6591c1e8bc38
- Довольно печальная сюжетная ветка про то, что С++ разработчик совсем перестал программировать после перехода в менеджмент, и спустя десяток лет вообще все скиллы растерял
- Сюжетный твист с перемоткой времени в конце
Мораль? Да нет морали, кроме того, что не стоит совсем забрасывать программирование, даже когда карьера вот прямо сейчас летит куда-то вверх.
https://elye-project.medium.com/i-started-android-development-at-40-6591c1e8bc38
Medium
I Started Android Development At 40
It’s not too late to restart your software development career at 40
Недавно ребята из IDEA Plugin Marketplace проводили опрос про самые любимые пользователями плагины. Ловите топовые из них:
Nyan Progress Bar – просто лучший прогресс бар из возможных, чтобы вы не грустили из-за долгого обновления индексов
Rainbow Brackets – разноцветная подсветка открывающих и закрывающих скобок, чтобы проще было находить их пары
GitHub Copilot – та самая нейроночка, которая подставляет бойлерплейтный код за вас
IdeaVim – для фанатов Vim или тех, кто хочет его изучить
Nyan Progress Bar – просто лучший прогресс бар из возможных, чтобы вы не грустили из-за долгого обновления индексов
Rainbow Brackets – разноцветная подсветка открывающих и закрывающих скобок, чтобы проще было находить их пары
GitHub Copilot – та самая нейроночка, которая подставляет бойлерплейтный код за вас
IdeaVim – для фанатов Vim или тех, кто хочет его изучить
JetBrains Marketplace
Nyan Progress Bar - IntelliJ IDEs Plugin | Marketplace
Pretty progress bars with nyan cat for IJ based IDEs.
Размышления по поводу того, всегда ли включение
https://publicobject.com/2022/02/02/compiler-warnings-are-good-actually/
-Werror
в проекте – хорошая идея, и в каких случаях это будет только мешать команде.https://publicobject.com/2022/02/02/compiler-warnings-are-good-actually/
Public Object
Compiler Warnings Are Good, Actually
Every so often an exasperated teammate recommends enabling -Werror in all our repos. The reasoning is sound: Compiler warnings are bad.Having lots of them is demoralizing.If we had prevented them from ever occurring we wouldn’t be in this mess.This is a particularly…
Вы используете -Werror в своих проектах?
Anonymous Poll
5%
Всегда включаю
2%
Только в пет-проектах
1%
Только в рабочих проектах
3%
В каких-то редких случаях
40%
Не включаю
50%
Посмотреть результаты