Forwarded from Android Live 🤖
JankStats Library
#library
Тут появилась любопытная библиотека от Google для анализа производительности приложений — JankStats.
Суть библиотеки заключается в получении информации о производительности рендеринга внутри приложения и получения информации о каких-то проблемах, если они есть.
Под капотом используется в том числе FrameMetrics API, которое как раз и даёт информацию о том, сколько времени нужно было для отрисовки конкретного кадра.
Выглядит довольно интересно, но пока тащить в свой проект рановато, так как эта только первая альфа. Подробнее о том, что делает либа можно почитать тут, а чуть больше документации тут.
#library
Тут появилась любопытная библиотека от Google для анализа производительности приложений — JankStats.
Суть библиотеки заключается в получении информации о производительности рендеринга внутри приложения и получения информации о каких-то проблемах, если они есть.
Под капотом используется в том числе FrameMetrics API, которое как раз и даёт информацию о том, сколько времени нужно было для отрисовки конкретного кадра.
Выглядит довольно интересно, но пока тащить в свой проект рановато, так как эта только первая альфа. Подробнее о том, что делает либа можно почитать тут, а чуть больше документации тут.
Forwarded from Мобильная разработка
Подход Branch by Abstraction на примере Android-разработки
Долгий рефакторинг в рабочем проекте может привести к тому, что с pull request вы получите множество конфликтов и непройденные тесты. И всё потому, что кто-то также влил большой pull request раньше.
Чтобы избежать подобных проблем, можно воспользоваться подходом Branch by Abstraction. Он позволяет делать задачу постепенно и в то же время часто выпускать релизы приложения.
Подробнее о Branch by Abstraction читайте в статье.
#android
Долгий рефакторинг в рабочем проекте может привести к тому, что с pull request вы получите множество конфликтов и непройденные тесты. И всё потому, что кто-то также влил большой pull request раньше.
Чтобы избежать подобных проблем, можно воспользоваться подходом Branch by Abstraction. Он позволяет делать задачу постепенно и в то же время часто выпускать релизы приложения.
Подробнее о Branch by Abstraction читайте в статье.
#android
Forwarded from iOS Good Reads – swift, разработка мобильных приложений, архитектура, блокчейн, VR, AR, карьера, IT (Egor Tolstoy)
Sha256 – криптографический алгоритм, который помогает получить хеш от любого произвольного сообщения. На прошлой неделе вируснулся сайт, который пошагово на понятных интерактивных схемах объясняет, как этот алгоритм работает (запустится только на десктопе). Попробуйте: во-первых, это интересно, во-вторых, очень красиво!
А если вдруг захотите почитать объяснение работы алгоритма в виде статьи, то вот довольно неплохое объяснение.
А если вдруг захотите почитать объяснение работы алгоритма в виде статьи, то вот довольно неплохое объяснение.
Sha256Algorithm
Sha256 Algorithm Explained
Sha256 algorithm explained online step by step visually
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/
https://habr.com/ru/company/hh/blog/650763/
Хабр
Как мы перешли с kotlinx.synthetics на Android View Binding
Привет! Меня зовут Ваня, я Android-разработчик из продуктовой команды hh.ru , и в этой статье я расскажу о нашем опыте миграции на ViewBinding . В конце 2020 года в официальном блоге Android...
Forwarded from Android Good Reads (Egor Tolstoy)
Ловите серию постов про организацию архитектурной секции интервью мобильных разработчиков. Сохраните себе для подготовки к будущим собеседованиям или посмотрите, какие задачи сможете заюрать в свой процесс интервью.
1️⃣Общий фреймворк проведения
2️⃣Дополнительные штуки для разбора
3️⃣Кейс: загрузчик файлов
4️⃣Кейс: библиотека кеширования
5️⃣Кейс: загрузчик изображений
6️⃣Кейс: чат
7️⃣Типичные ошибки на интервью
1️⃣Общий фреймворк проведения
2️⃣Дополнительные штуки для разбора
3️⃣Кейс: загрузчик файлов
4️⃣Кейс: библиотека кеширования
5️⃣Кейс: загрузчик изображений
6️⃣Кейс: чат
7️⃣Типичные ошибки на интервью
Medium
A Simple Framework For Mobile System Design Interviews
The list of posts in this series:
Forwarded from Android Live 🤖
Rich Text в Jetpack Compose
#jetpack #compose
Тут подписчик подкинул классную статью, где довольно исчерпывающе описываются возможности для применения стилей текста в Jetpack Compose.
Вообще, форматирование текста очень важная штука, ведь сейчас всё больше пользователей не читает контент, а сканирует его, пытаясь найти то, что им будет полезно.
Автор рассказывает про множество свойств текста, использование
#jetpack #compose
Тут подписчик подкинул классную статью, где довольно исчерпывающе описываются возможности для применения стилей текста в Jetpack Compose.
Вообще, форматирование текста очень важная штука, ведь сейчас всё больше пользователей не читает контент, а сканирует его, пытаясь найти то, что им будет полезно.
Автор рассказывает про множество свойств текста, использование
TextStyle, добавление стилей через AnnotatedString.Forwarded from Android Good Reads (Egor Tolstoy)
Работать напрямую с файлами последние годы приходится все реже. Обычно любое хранение данных по умолчанию находится где-то в облаке и закрыто API. Но если все-таки вам нужно будет поработать с ними напрямую, то держите статью про интересный подход к тестированию взаимодействий с файловой системой.
arturdryomov.dev
Testing Files without Files
Overview of fake VFS on JVM
Forwarded from Мобильная разработка
Большое наглядное руководство по Jetpack Compose
Нашли интересное приложение, где собрано огромное количество туториалов по Jetpack Compose, в том числе по навигации, анимации, работе с состояниями, виджетами Material и не только. Труда вложено немало — разработчик работал над приложением в течение года.
Весь контент разбит по главам с системой тегов. Множество элементов показано наглядно, и их устройство можно посмотреть в коде:
https://github.com/SmartToolFactory/Jetpack-Compose-Tutorials
#android #начинающим
Нашли интересное приложение, где собрано огромное количество туториалов по Jetpack Compose, в том числе по навигации, анимации, работе с состояниями, виджетами Material и не только. Труда вложено немало — разработчик работал над приложением в течение года.
Весь контент разбит по главам с системой тегов. Множество элементов показано наглядно, и их устройство можно посмотреть в коде:
https://github.com/SmartToolFactory/Jetpack-Compose-Tutorials
#android #начинающим
Forwarded from Android Good Reads (Egor Tolstoy)
Работа со скроллом в Compose не совсем очевидна. В статье автор делится тем, как правильно определять текущую позицию и скроллить к определенному элементу списка при появлении клавиатуры.
Хабр
Погружаемся в работу со скроллом в Jetpack Compose
В этой статье я хочу поделиться опытом работы со скроллом в приложении, написанном на Jetpack Compose. Какое-то время назад я решил, что надо попробовать Compose в деле и начал делать pet project...
Подборка вдохновляющих open source проектов, реализованных с использованием Jetpack Compose.
https://proglib.io/w/130a80ca
https://proglib.io/w/130a80ca
Medium
10 Jetpack Compose Projects To Inspire You
Build an awesome app today
Forwarded from Android Broadcast
Как выложить свою первую библиотеку в open source
Если вы решили опубликовать свой проект в удобном формате для других разработчиков, то рекомендую почитать инструкцию из статьи, что позволит вам распространять версию через Jitpack
Если вы решили опубликовать свой проект в удобном формате для других разработчиков, то рекомендую почитать инструкцию из статьи, что позволит вам распространять версию через Jitpack
👍1
Forwarded from Android Broadcast
#compose
Exploring MovableContentOf in Jetpack Compose (4 мин)
Новинка Compose 1.2.0 movableContentOf, которая позволяет нам проходить по контенту без рекомпозции, что может оптимизировать производительность UI на 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
Цикл статей про сравнение и переезд 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
Компания Google предупредила разработчиков, что будут усилены требования к уровню Target API (Android API), для которого собираются приложения.
На практике это означает, что с 1 ноября 2022 года приложения в магазине Google Play не будут доступны для поиска и установки, если при их создании использовался устаревший TargetSDK (срок давности которого превышает два года). По мере выхода новых релизов Android, окно версий, в рамках которого можно указывать целевой уровень, будет меняться соответствующим образом.
Говорят, это только одно из нововведений в политике, так что ожидаем и других новостей. Но, как мне кажется, следующим логичным шагом будет аналогичное “окно“ для установки минимальной версии SDK, которое позволит отсечь совсем уж старые устройства.
#google #android #targetsdk #privacy
stingray-mobile.ru
Google планирует скрывать приложения, собранные с устаревшей версией TargetSDK - Стингрей
Компания Google предупредила разработчиков, что будут усилены требования к уровню Target API (Android API), для которого собираются приложения. На
Forwarded from Android Good Reads (Egor Tolstoy)
Семафоры – многопоточные примитивы, которые позволяют определять число потоков, которое может получить доступ к определенному блоку кода. В статье рассказывается, как использование семафора может помочь при работе с корутинами.
Shreyas Patil's Blog
Leveraging the Semaphore concept in Coroutines to limit the parallelism 🔀
In this blog, we'll learn to use the concept of Semaphore with Kotlin coroutines to limit parallelism
Forwarded from iOS Good Reads – swift, разработка мобильных приложений, архитектура, блокчейн, VR, AR, карьера, IT (Egor Tolstoy)
Топовый обзор того, как weak references реализованы в разных языках: Objective-C, Swift, Rust и C++, и чем отличаются алгоритмы у них под капотом.
👍1
Forwarded from iOS Good Reads – swift, разработка мобильных приложений, архитектура, блокчейн, VR, AR, карьера, IT (Egor Tolstoy)
Представьте себе прямую, описываемую функцией
Джейк Уортон написал статью, в которой прикладывает эту модель к нескольким Android библиотекам и рассуждает, как ее использовать при создании новой библиотеки.
y=mx+b. Параметр b показывает, насколько далеко от 0 находится место пересечения оси Y, а m – угол наклона. Это – удобная ментальная модель, чтобы оценивать сложность использования различных библиотек, где b – сложность первого старта, m – сложность, возникающая при усложнении кейсов использования.Джейк Уортон написал статью, в которой прикладывает эту модель к нескольким Android библиотекам и рассуждает, как ее использовать при создании новой библиотеки.
Jake Wharton
Slope-intercept library design – Jake Wharton
Достаточно подробный разбор слитых исходников приложения твича. В общем и целом, приложение достаточно типовое, но все равно может быть любопытно посмотреть, как устроен процесс разработки в крупной компании.
https://twitch.0xdc.ru/
https://twitch.0xdc.ru/
twitch.0xdc.ru
Приложение Twitch под Android
Разбор приложения Twitch под Android по слитым иходникам от 2021-10-06
👍1🔥1
Forwarded from Android Live 🤖
Flow под капотом
#flow
Отличная статья, которая показывает то, как устроен
Автор утверждает, что сама концепция
Для понимания всего, автор делает несколько простой лямбда-функции, которую, постепенно усложняя, превращает в подобие того, что мы видим во
#flow
Отличная статья, которая показывает то, как устроен
Flow под капотом. Автор утверждает, что сама концепция
Flow — проще, чем многие разработчики думают: под капотом описано много простых механизмов, которые после объединения и выдают то, что мы привыкли видеть при использовании Flow.Для понимания всего, автор делает несколько простой лямбда-функции, которую, постепенно усложняя, превращает в подобие того, что мы видим во
Flow.