Альфа-Инвестиции приглашают iOS/Android-разработчиков на One Day Offer 19 марта. Все этапы интервью – за один день, оффер — за сутки. Ваш уровень – middle/senior, опыт в коммерческой разработке – от двух лет.
Подать заявку
Подать заявку
Подборка частых вопросов про то, как писать Gradle плагины, разбор разных подходов к их реализации и типичных ошибок.
А если вы взялись писать свой плагин, то вот еще один материал про то, как его протестировать с помощью фреймворка TestKit.
А если вы взялись писать свой плагин, то вот еще один материал про то, как его протестировать с помощью фреймворка TestKit.
GitHub
GitHub - jjohannes/gradle-plugins-howto: How to write Gradle plugins - answers to common questions and alternative implementation…
How to write Gradle plugins - answers to common questions and alternative implementation solutions - jjohannes/gradle-plugins-howto
Вам приходилось писать собственные Gradle плагины?
Anonymous Poll
4%
Да, часто
15%
Да, но всего пару раз
13%
Только игрался с API, ничего серьезного не делал
59%
Нет
8%
Посмотреть результаты
Работа со скроллом в Compose не совсем очевидна. В статье автор делится тем, как правильно определять текущую позицию и скроллить к определенному элементу списка при появлении клавиатуры.
Хабр
Погружаемся в работу со скроллом в Jetpack Compose
В этой статье я хочу поделиться опытом работы со скроллом в приложении, написанном на Jetpack Compose. Какое-то время назад я решил, что надо попробовать Compose в деле и начал делать pet project...
Гайд по работе с Glance – новым фреймворком для создания AppWidgets и Tiles для Wear OS, построенным поверх рантайма Compose.
Medium
Demystifying Jetpack Glance for app widgets
We recently announced the first Alpha version of Glance, initially with support for AppWidgets and now for Tiles for Wear OS. This new…
Meta добавили в Infer новый статический анализатор, который умеет находить дедлоки в Java коде без его запуска. Ключевая особенность в том, что он хорошо умеет работать с огромными кодовыми базами. Особенно рекомендую почитать подробную бумагу с деталями реализации алгоритма его работы.
Engineering at Meta
An open source compositional deadlock detector for Android Java
What the research is: We’ve developed a new static analyzer that catches deadlocks in Java code for Android without ever running the code. What distinguishes our analyzer from past research is its …
Если вы страдаете от долгого времени сборки, то вам могут помочь эти советы:
- Часть 1
- Часть 2
- Часть 3
- Часть 1
- Часть 2
- Часть 3
Medium
10 ideas to improve your Gradle build times [Part I]
Reduce your Gradle build times on android & non-android projects with these great ideas
Изменениями модификатора
graphicsLayer
в Compose можно добиваться разных кайфовых анимаций. В статье на гифках показывается, какие эффекты вызывает изменение каждого из его свойств.Medium
Have Fun With Jetpack Compose GraphicsLayer Modifier
Create interesting animation with GraphicsLayer Modifier
Barista – обертка над Espresso, упрощающая написание и поддержку UI тестов. Среди ее фичей:
🤝 Много хелперов, делающих код поиска и взаимодействия с элементами более читаемым
📝Автоматический скролл перед взаимодействиями с View тогда, когда он необходим
🐞Простая настройка стратегий поведения для flaky тестов
🤝 Много хелперов, делающих код поиска и взаимодействия с элементами более читаемым
📝Автоматический скролл перед взаимодействиями с View тогда, когда он необходим
🐞Простая настройка стратегий поведения для flaky тестов
Medium
Barista — Enjoyable Espresso Android UI Tests
Barista makes developing UI tests faster, easier, and more predictable. Built on top of Espresso, it provides a simple and discoverable…
Команда Dropbox рассказывает, как они переписывали фичу по автоматической загрузке фотографий в облако с C++ на Kotlin. Архитектура дизайнилась с учетом следующих требований:
📌Надежность работы в бэкграунде
📌Скорость загрузки фото и низкое потребление ресурсов
В статье рассказывается, как конкретно выбирался стек технологий, с какими проблемами столкнулась команда при реализации модуля, его тестировании и выкатке.
📌Надежность работы в бэкграунде
📌Скорость загрузки фото и низкое потребление ресурсов
В статье рассказывается, как конкретно выбирался стек технологий, с какими проблемами столкнулась команда при реализации модуля, его тестировании и выкатке.
dropbox.tech
Making camera uploads for Android faster and more reliable
«Лаборатория Касперского» ищет C/C++ Developer for IoT (mobile)
Работа в «Лаборатории Касперского» — это не только масштабные задачи, но и приятные бонусы: бесплатное обучение, расширенный ДМС со стоматологией, спортзалы прямо в офисе, а еще — программа релокации для кандидатов из регионов и не только.
Если вы:
— имеете опыт программирования на Dart\Flutter;
— умеете программировать на C/C++ или Java/Kotlin;
— пробовали себя в мобильной разработке (Android\iOS) или хотите сделать это направление приоритетным,
то переходите по ссылке, чтобы ознакомиться с подробной информацией о вакансии и присоединиться к команде лучших экспертов.
Работа в «Лаборатории Касперского» — это не только масштабные задачи, но и приятные бонусы: бесплатное обучение, расширенный ДМС со стоматологией, спортзалы прямо в офисе, а еще — программа релокации для кандидатов из регионов и не только.
Если вы:
— имеете опыт программирования на Dart\Flutter;
— умеете программировать на C/C++ или Java/Kotlin;
— пробовали себя в мобильной разработке (Android\iOS) или хотите сделать это направление приоритетным,
то переходите по ссылке, чтобы ознакомиться с подробной информацией о вакансии и присоединиться к команде лучших экспертов.
careers.kaspersky.ru
Карьера в ЛК
Карьера в Лаборатории Касперского
Реализация гибкой стратегии кеширования запросов при работе с GraphQL – нетривиальная задача, ведь каждый запрос может включать в себя как кешируемые публичные, так и некешируемые приватные данные. В статье приводится пример того, как можно разбивать такие запросы на несколько частей и мерджить их с помощью Kotlin Flows.
Google открыл доступ к API для получения данных Android Vitals. Из идей, как его можно использовать:
💡Поднять свой кастомный дэшборд про качество приложения, добавив туда данные из багтрекера, саппорта и аналитики
💡Настроить алерты в мессенджере по изменению нужных вам метрик
💡Залить данные в DWH, чтобы использовать их при проверке будущих продуктовых гипотез
Документация API
💡Поднять свой кастомный дэшборд про качество приложения, добавив туда данные из багтрекера, саппорта и аналитики
💡Настроить алерты в мессенджере по изменению нужных вам метрик
💡Залить данные в DWH, чтобы использовать их при проверке будущих продуктовых гипотез
Документация API
Android Developers Blog
Access Android vitals data through the new Play Developer Reporting API
Posted by Lauren Mytton, Product Manager, Google Play Quality is foundational to your game or app’s success on Google...
Вышла новая предрелизная версия Kotlin 1.6.20-RC с исправлениями багов в компиляторе и интеграции с Gradle.
Попробовать ее довольно просто, инструкция здесь.
Попробовать ее довольно просто, инструкция здесь.
GitHub
Release Kotlin 1.6.20-RC2 · JetBrains/kotlin
Changelog
Compiler
Fixes
KT-51352 "ClassCastException: class ScopeCoroutine cannot be cast to class Iterable" caused by coroutines and context receivers
KT-51271 "ArrayIndexOutOfBou...
Compiler
Fixes
KT-51352 "ClassCastException: class ScopeCoroutine cannot be cast to class Iterable" caused by coroutines and context receivers
KT-51271 "ArrayIndexOutOfBou...
Merge queue – это практика работы с Git, которая облегчает жизнь с большим количеством веток, в которых меняются одни и те же файлы.
В чем суть проблемы – у вас может в один и тот же момент времени висеть сразу несколько веток с зелеными тестами относительно текущего состояния main. Но как только одна из веток будет слита, все остальные станут красными.
Merge queue решает проблему следующим образом. Все PR попадают в единую очередь. Валидность кода в PR проверяется относительно main, в который будут слиты все предыдущие ветки из очереди. Если PR остается зеленым, то он сольется автоматически. Если нет – то либо заблокирует очередь, либо будет автоматически выкинут из нее.
В чем суть проблемы – у вас может в один и тот же момент времени висеть сразу несколько веток с зелеными тестами относительно текущего состояния main. Но как только одна из веток будет слита, все остальные станут красными.
Merge queue решает проблему следующим образом. Все PR попадают в единую очередь. Валидность кода в PR проверяется относительно main, в который будут слиты все предыдущие ветки из очереди. Если PR остается зеленым, то он сольется автоматически. Если нет – то либо заблокирует очередь, либо будет автоматически выкинут из нее.
Runway
Merge queues: An intro for mobile engineers | by Runway
As a mobile engineer, it’s quite possible you’ve never used, or even heard of, merge queues. This might be due in part to the fact that mobile teams traditionally move a bit slower than their web counterparts (merge queues are more often employed by teams…
Пример использования Kotlin DSL вместе с Kotlin Scripting для того, чтобы реализовать удобный трекер личных финансов.
scastiel.dev
Combining scripts and DSLs is Kotlin’s most underrated feature
The more I play with Kotlin, the more convinced I am that a combo of two of its features is vastly underrated: first, the ability to create domain-specific languages (DSL), thanks to some syntactic sugar; then, the ability to write scripts and create interpreters…
Android разработчик, разрабатывающий приложения на Compose, попробовал SwiftUI и написал хороший пост со сравнением двух фреймворков. Отличий не очень много, но в целом разрабатывать под SwiftUI проще, так как он заточен под одну конкретную платформу.
Medium
SwiftUI vs Jetpack Compose by an Android Engineer
If you think it is a good idea to use Jetpack Compose (or any other multi-platform UI library like Flutter or React Native) to build an…
Твиттер-тред с обзором правил для ktlint, которые помогают большой команде писать единообразный код на Compose и не стрелять себе в ногу.
Twitter
Nacho López 🥘
A big challenge to face when a big team with a large codebase starts adopting Compose is that not everybody will start at the same page. This happened to us at Twitter. Compose is 🔝, allows for amazing things, but has a bunch of footguns to be aware of. ktlint…
Новая часть цикла статей от CashApp про сравнение RxJava и корутин. В этот раз разбираются Shared Flows.
Cash App Code Blog
Rx to Coroutines Concepts, Part 5: Shared Flows
Sometimes, you need to share a Flow with multiple consumers. Read all about how this works in this post.
Команда DoorDash используют Kotlin для разработки микросервисов. Одна из причин, по которым они предпочли Kotlin Python’у – богатые возможности для функционального программирования. В этом посте они закапываются в детали того, как конкретно они пишут функциональный код на Kotlin.
DoorDash
How to leverage functional programming in Kotlin to write better, cleaner code
Is functional programming a good paradigm to use for Kotlin development? Read this guide for direct coding comparisons between FP and OOP