We Love Android
626 subscribers
259 photos
26 videos
4 files
630 links
Новости из мира Android-разработки
Download Telegram
Forwarded from Android Live 🤖
​​JankStats Library
#library

Тут появилась любопытная библиотека от Google для анализа производительности приложений — JankStats.

Суть библиотеки заключается в получении информации о производительности рендеринга внутри приложения и получения информации о каких-то проблемах, если они есть.
Под капотом используется в том числе FrameMetrics API, которое как раз и даёт информацию о том, сколько времени нужно было для отрисовки конкретного кадра.

Выглядит довольно интересно, но пока тащить в свой проект рановато, так как эта только первая альфа. Подробнее о том, что делает либа можно почитать тут, а чуть больше документации тут.
Подход Branch by Abstraction на примере Android-разработки

Долгий рефакторинг в рабочем проекте может привести к тому, что с pull request вы получите множество конфликтов и непройденные тесты. И всё потому, что кто-то также влил большой pull request раньше.

Чтобы избежать подобных проблем, можно воспользоваться подходом Branch by Abstraction. Он позволяет делать задачу постепенно и в то же время часто выпускать релизы приложения.

Подробнее о Branch by Abstraction читайте в статье.

#android
Sha256 – криптографический алгоритм, который помогает получить хеш от любого произвольного сообщения. На прошлой неделе вируснулся сайт, который пошагово на понятных интерактивных схемах объясняет, как этот алгоритм работает (запустится только на десктопе). Попробуйте: во-первых, это интересно, во-вторых, очень красиво!

А если вдруг захотите почитать объяснение работы алгоритма в виде статьи, то вот довольно неплохое объяснение.
Forwarded from Android Good Reads (Egor Tolstoy)
Если вы забыли, то еще в 2020 году Google и JetBrains задепрекейтили android-kotlin-extensions. Время идет, синтетики все еще не удалили, но это может случиться в любом следующем релизе. Команда Headhunter решила больше не ждать и мигрировала 5 тысяч обращений к View через синтетики на ViewBinding.
https://habr.com/ru/company/hh/blog/650763/
Forwarded from Android Good Reads (Egor Tolstoy)
Ловите серию постов про организацию архитектурной секции интервью мобильных разработчиков. Сохраните себе для подготовки к будущим собеседованиям или посмотрите, какие задачи сможете заюрать в свой процесс интервью.
1️⃣Общий фреймворк проведения
2️⃣Дополнительные штуки для разбора
3️⃣Кейс: загрузчик файлов
4️⃣Кейс: библиотека кеширования
5️⃣Кейс: загрузчик изображений
6️⃣Кейс: чат
7️⃣Типичные ошибки на интервью
Forwarded from Android Live 🤖
​​Rich Text в Jetpack Compose
#jetpack #compose

Тут подписчик подкинул классную статью, где довольно исчерпывающе описываются возможности для применения стилей текста в Jetpack Compose.

Вообще, форматирование текста очень важная штука, ведь сейчас всё больше пользователей не читает контент, а сканирует его, пытаясь найти то, что им будет полезно.

Автор рассказывает про множество свойств текста, использование TextStyle, добавление стилей через AnnotatedString.
Forwarded from Android Good Reads (Egor Tolstoy)
Работать напрямую с файлами последние годы приходится все реже. Обычно любое хранение данных по умолчанию находится где-то в облаке и закрыто API. Но если все-таки вам нужно будет поработать с ними напрямую, то держите статью про интересный подход к тестированию взаимодействий с файловой системой.
Большое наглядное руководство по Jetpack Compose

Нашли интересное приложение, где собрано огромное количество туториалов по Jetpack Compose, в том числе по навигации, анимации, работе с состояниями, виджетами Material и не только. Труда вложено немало — разработчик работал над приложением в течение года.

Весь контент разбит по главам с системой тегов. Множество элементов показано наглядно, и их устройство можно посмотреть в коде:

https://github.com/SmartToolFactory/Jetpack-Compose-Tutorials

#android #начинающим
Forwarded from Android Good Reads (Egor Tolstoy)
Работа со скроллом в Compose не совсем очевидна. В статье автор делится тем, как правильно определять текущую позицию и скроллить к определенному элементу списка при появлении клавиатуры.
Подборка вдохновляющих open source проектов, реализованных с использованием Jetpack Compose.

https://proglib.io/w/130a80ca
Forwarded from Android Broadcast
Как выложить свою первую библиотеку в open source

Если вы решили опубликовать свой проект в удобном формате для других разработчиков, то рекомендую почитать инструкцию из статьи, что позволит вам распространять версию через Jitpack
👍1
Forwarded from Android Broadcast
#compose

Exploring MovableContentOf in Jetpack Compose (4 мин)

Новинка Compose 1.2.0 movableContentOf, которая позволяет нам проходить по контенту без рекомпозции, что может оптимизировать производительность UI на Compose. В статье обзор
Forwarded from Mobile Native ️️
Rx to Coroutines Concepts

Цикл статей про сравнение и переезд Rx to Coroutines.

👉 Part 1 Async vs. Reactive
👉 Part 2 Structured Concurrency
👉 Part 2.1 Exceptions
👉 Part 3 Deferred & Channels
👉 Part 4 Cold Flows
👉 Part 5 Shared Flows
Forwarded from Mobile AppSec World (Yury Shabalin)
Google начнет скрывать приложения, собранные с устаревшей версией TargetSDK

Компания Google предупредила разработчиков, что будут усилены требования к уровню Target API (Android API), для которого собираются приложения.

На практике это означает, что с 1 ноября 2022 года приложения в магазине Google Play не будут доступны для поиска и установки, если при их создании использовался устаревший TargetSDK (срок давности которого превышает два года). По мере выхода новых релизов Android, окно версий, в рамках которого можно указывать целевой уровень, будет меняться соответствующим образом.

Говорят, это только одно из нововведений в политике, так что ожидаем и других новостей. Но, как мне кажется, следующим логичным шагом будет аналогичное “окно“ для установки минимальной версии SDK, которое позволит отсечь совсем уж старые устройства.

#google #android #targetsdk #privacy
Forwarded from Android Good Reads (Egor Tolstoy)
Семафоры – многопоточные примитивы, которые позволяют определять число потоков, которое может получить доступ к определенному блоку кода. В статье рассказывается, как использование семафора может помочь при работе с корутинами.
Топовый обзор того, как weak references реализованы в разных языках: Objective-C, Swift, Rust и C++, и чем отличаются алгоритмы у них под капотом.
👍1
Представьте себе прямую, описываемую функцией y=mx+b. Параметр b показывает, насколько далеко от 0 находится место пересечения оси Y, а m – угол наклона. Это – удобная ментальная модель, чтобы оценивать сложность использования различных библиотек, где b – сложность первого старта, m – сложность, возникающая при усложнении кейсов использования.

Джейк Уортон написал статью, в которой прикладывает эту модель к нескольким Android библиотекам и рассуждает, как ее использовать при создании новой библиотеки.
Достаточно подробный разбор слитых исходников приложения твича. В общем и целом, приложение достаточно типовое, но все равно может быть любопытно посмотреть, как устроен процесс разработки в крупной компании.

https://twitch.0xdc.ru/
👍1🔥1
Forwarded from Android Live 🤖
​​Flow под капотом
#flow

Отличная статья, которая показывает то, как устроен Flow под капотом.

Автор утверждает, что сама концепция Flow — проще, чем многие разработчики думают: под капотом описано много простых механизмов, которые после объединения и выдают то, что мы привыкли видеть при использовании Flow.

Для понимания всего, автор делает несколько простой лямбда-функции, которую, постепенно усложняя, превращает в подобие того, что мы видим во Flow.