Android Good Reads
3.89K subscribers
344 photos
13 videos
1 file
2.01K links
Самые интересные статьи, видео и новости, связанные с Android разработкой. Не больше трёх материалов в день.

Автор канала: @Lamprof

Размещение рекламы: @tanyasanovna
Download Telegram
Прошлая неделя закончилась волной релизов от команды Android, которым мы и посвятим понедельник! Во-первых, вышла Developer Preview версия Android 13. Из интересного:
- Поддержка кастомных тем в иконках приложения
- API для добавления ваших блоков в Quick Settings
- Возможность настройки языка отдельно для каждого приложения
- Новый пикер фотографий, который позволяет пользователям самим выбрать, к каким фотографиям дать доступ приложению
- Новые программируемые шейдеры

Выбирайте один из подробных постов по вкусу:
- Официальные релиз ноуты
- Разбор всех значимых для разработчиков изменений
- Максимально подробный обзор всех изменений
Вышла новая библиотека JankStats, которая позволяет получать детальную информацию о перфомансе приложения прямо с пользовательских устройств. Это должно сильно сократить время на исправление перфоманс проблем, так как гораздо проще будет найти их причину и способ воспроизведения.
https://medium.com/androiddevelopers/jankstats-goes-alpha-8aff942255d5
Менять работу не страшно, когда всё взвесишь

Skyeng ищет мобильных разработчиков уровня senior и middle+. На удалёнку или в московский офис. Сейчас в команду можно попасть за 2 дня: без нудных собеседований, долгих общений с эйчарами и тестовых заданий. Два интервью по полтора часа: техническое и с руководителем команды.

Ребята провели более 40 независимых бесед и узнали, что ценят и с какими трудностями сталкиваются мобильные разработчики, чтобы вы прошли тест и сравнили своё текущее место с работой в Skyeng. Тот самый случай, когда размах бренда и красивые строки в Линкедине — не единственное преимущество.

Кликайте, если вы Android-разработчик

Кликайте, если вы iOS-разработчик

Ещё Skyeng предлагает бонус, если вы посоветуете друзей: 100 000 рублей за друга мобильного разработчика уровня сеньор и мидл+
Если вы забыли, то еще в 2020 году Google и JetBrains задепрекейтили android-kotlin-extensions. Время идет, синтетики все еще не удалили, но это может случиться в любом следующем релизе. Команда Headhunter решила больше не ждать и мигрировала 5 тысяч обращений к View через синтетики на ViewBinding.
https://habr.com/ru/company/hh/blog/650763/
Если вам понравилось видео про математику с Kotlin, которое я постил в воскресенье, то вот вам еще один свежий доклад с Fosdem на эту же тему. С телефона совсем не работает проигрыватель, если что.
https://fosdem.org/2022/schedule/event/kotlin_plus_maths/
This media is not supported in your browser
VIEW IN TELEGRAM
Ночь в Финтехе

К нам пришли ребята из Финтеха Яндекса с новыми (почти безумными) идеями. Что на этот раз? Рассказываем.

Многие из вас наверняка хотели бы сменить работу, но что-то всё время мешает: страшно, рискованно, дискомфортно. А ведь так правда бывает — сделал тестовое, прошел все секции, принял оффер, а потом вдруг понял, что все не то: коллеги душные, задачи грустные и кофе на кухне невкусный.

Все ребята из Финтеха через это когда-то проходили и теперь придумали совершенно новый формат: приглашают мобильных разработчиков к себе на пятничную офисную вечеринку — познакомиться и понять, хочется вам работать вместе или нет. Бургеры, плейстейшен, напитки и музыка – обычный вечер пятницы в офисе, где можно проникнуться атмосферой и понять, на одной ли вы волне.

Вечеринка будет в Москве, но если вы из другого города – ребята обещают организовать поездку. Все на полном серьезе — все подробности читайте здесь.
Лонгрид с подробной критикой книги Clean Code Роберта Мартина. Автор по фактам разносит большую часть глав, утверждая, что книга не просто устарела, но и с самого начала была так себе. А как бонус – 110 комментариев с отличным срачем!
https://qntm.org/clean
Ловите серию постов про организацию архитектурной секции интервью мобильных разработчиков. Сохраните себе для подготовки к будущим собеседованиям или посмотрите, какие задачи сможете заюрать в свой процесс интервью.
1️⃣Общий фреймворк проведения
2️⃣Дополнительные штуки для разбора
3️⃣Кейс: загрузчик файлов
4️⃣Кейс: библиотека кеширования
5️⃣Кейс: загрузчик изображений
6️⃣Кейс: чат
7️⃣Типичные ошибки на интервью
В Gradle 7 появилась возможность использовать типобезопасный API на замену project(“:some:path”). Благодаря ему вы не рискуете забыть поменять все нужные пути при рефакторинге зависимостей и получаете автокомплишн.

Jake Wharton делится консольной командой, которая позволит вам мигрировать на новый синтаксис без долгого ручного рефакторинга.
https://twitter.com/jakewharton/status/1491116447703375873?s=21
📹 Android Crew #7: Анимации в Jetpack Compose — всё то же самое, только проще?

Рассмотрим возможности инструмента на примерах различной сложности.
Поговорим об эффективности и расширении базовой функциональности.

🙌 Благодарности генеральному партнёру наших конференций — VK!
Поверх Compose for Web выпустили первый полноценный веб-фреймворк, с помощью которого можно быстро собрать личный сайт или блог. Посмотрите, и, может быть, на выходных решите с ним поэкспериментировать!
https://bitspittle.dev/blog/2022/kotlinsite
📆В месяц в нашем канале появляется около 60 различных материалов. Читать их все сразу, думаю, мало у кого получается. Чтобы помочь вам нагнать пропущенное, раз в месяц я буду публиковать дайджесты самых интересных и заплюсованных материалов из канала. Ловите первый выпуск!

🏝Kotlin: язык, стандартная библиотека, мультиплатформа
Огромный материал про перфоманс и влияние на него языковых фичей Kotlin
Как писать скрипты на Kotlin со своими типами
Разбор Duration API
Пишем мультиплатформенные тесты
Веб-визард для создания мультиплатформенных проектов

💻Архитектура и код
Обзор сильных и слабых сторон новых архитектурных рекомендаций Google
Нет такого понятия как чистый код
Критика книги "Чистый код”
Подборка статей про организацию архитектурного интервью
Обзор решений для навигации в Compose

🛠Инструменты и библиотеки
Kotlin-first библиотека для работы с контактами
Роадмап разработки Jetpack Compose
Автоматический импакт-анализ для тестов
Любимые плагины для IDEA
Пишем GitHub Actions с Kotlin DSL

🤔Кстати, у меня есть еще один канал, на который стоит подписаться тем, кто хочет расти в управление командойTechLead Good Reads. Держите несколько интересных материалов оттуда на закуску!
Доклад про то, что оценка сроков и дедлайны не нужны
Гайд по организации планирования
Decision log для решений в команде

Если дайджест вам понравился – ставьте ❤️, 👍 и 🔥. Благодаря этому я пойму, что собирал его не зря! А если у вас будут конкретные предложения по его улучшению – смело пишите в комментарии!

#digest
Команда Kotlin запустила новое ежемесячное шоу про мультиплатформу – АТОМ. В первом выпуске обсуждается:
🎨Compose Multiplatform
🃏Изменения в мультиплатформенной экосистеме в последний год
💻Кишочки новой модели памяти и других фичей
📆Планы по выходу КММ в бету
https://youtube.com/watch?v=5eVBstHUCyE
Окей, сделаем это воскресенье мультиплатформенным! Интервью с разработчиками Compose Multiplatform – Колей Иготти и Игорем Деминым.
🔄 Архитектурные решения, использованные при мультиплатформизации фреймворка
🤔 Текущие решаемые задачи и ограничения
📆 Планы развития на будущее

Видео на YouTube
Отличный пример использования появившихся в 1.6.20-М1 контекстных ресиверов для того, чтобы сделать DSL более чистыми.

А если вы хотите разобраться с контекстными ресиверами подробнее, почитайте текст соответствующего пропозала.
Стоило только вспомнить на прошлой неделе про синтетики, как пришла новость от Google – они будут удалены из Kotlin этой осенью, вместе с выходом версии 1.8. Parcelize при этом остается жить, но как отдельный плагин.

Если вы все еще не перешли на View Binding, то вот гайд по миграции.
Обновились официальные гайды по тестированию:
🤔Раздел «Что тестировать»
👨‍❤️‍👨Раздел «Test Doubles»
📝Примеры локальных и инструментальных тестов
🛠Раздел «Инструменты тестирования»
📰Статья «Advanced test setup»

Про детали и причины обновления можно прочитать в блогпосте.
Быстрая проверка на то, не включаете ли вы в релизные сборки какие-нибудь тестовые зависимости:
./gradlew :app:dependencies --configuration releaseRuntimeClasspath | grep -e test -e junit