Как я научил Jetpack Compose показывать рекомпозиции в реальном времени
А вот это прям достойный материал 🔥
Вот тут сервис, который в режиме реального времени показывает Compose рекомпозиции + показывает как делать нужно и как не нужно(потому что рекомпозиции).
А вот собственно статья, в которой автор рассказывает, как он делал этот сервис. Чтобы всё это добро заработало, пришлось залезть под капот компилятора Kotlin и подружиться с его внутренними API: FIR и IR.
Исходный код на GitHub → Recomposition Visualization
Готовый сервис → Recomposition Visualization
Читать (Ru)
А вот это прям достойный материал 🔥
Вот тут сервис, который в режиме реального времени показывает Compose рекомпозиции + показывает как делать нужно и как не нужно(потому что рекомпозиции).
А вот собственно статья, в которой автор рассказывает, как он делал этот сервис. Чтобы всё это добро заработало, пришлось залезть под капот компилятора Kotlin и подружиться с его внутренними API: FIR и IR.
Исходный код на GitHub → Recomposition Visualization
Готовый сервис → Recomposition Visualization
Читать (Ru)
👍13🔥7❤4
Гайд по File Templates: как шарить шаблоны с однотипным кодом
В статье рассказывается как можно облегчить жизнь своим коллегам и сэкономить немного времени, посредством шеринга шаблонов(File Templates) с однотипным кодом.
Читать (Ru)
В статье рассказывается как можно облегчить жизнь своим коллегам и сэкономить немного времени, посредством шеринга шаблонов(File Templates) с однотипным кодом.
Читать (Ru)
🔥8❤3👍2
Погружение в JNI: проблемы и решения при взаимодействии между JVM и нативным кодом
Разработчик из Яндекс Браузера рассказывает про взаимодействие с нативным С++ кодом из Android, подводные камни и проблемы, с которыми может столкнуться разработчик в процессе написания нативных библиотек, а также методы их обхода.
🟢 Что такое JNI и для чего используется
🟢 Пример реализации простой JNI‑библиотеки, способы сборки и интеграция в Android
🟢 Кейс: интеграция библиотеки Алисы в мобильный Яндекс Браузер
🟢 Подводные камни и проблемы
🟢 Полезные инструменты для разработчика
Читать (Ru)
Разработчик из Яндекс Браузера рассказывает про взаимодействие с нативным С++ кодом из Android, подводные камни и проблемы, с которыми может столкнуться разработчик в процессе написания нативных библиотек, а также методы их обхода.
Читать (Ru)
Please open Telegram to view this post
VIEW IN TELEGRAM
👍8🔥3❤2
Загрузка данных во ViewModel: рекомендации и Flow-based архитектура
Перевод на Хабре вот этой статьи, про паттерны загрузки данных во ViewModel.
Читать (Ru)
Перевод на Хабре вот этой статьи, про паттерны загрузки данных во ViewModel.
Читать (Ru)
🔥13❤7👀6👍4👎3
Exploring 5 Lesser-Known Compose Components
В статье рассматривают 5 малоизвестных Jetpack Compose компонентов, с примерами кода когда и как их использовать.
➡️ TriStateCheckbox
➡️ SegmentedButton
➡️ RangeSlider
➡️ Badge
➡️ Tooltip
Читать (En)
В статье рассматривают 5 малоизвестных Jetpack Compose компонентов, с примерами кода когда и как их использовать.
Читать (En)
Please open Telegram to view this post
VIEW IN TELEGRAM
❤6👍3🔥2
Погружаемся в недра Retrofit
Такое мы читаем 🔥
Абакар (главный техлид в Альфа-Банке) продебажил Retrofit и написал мощную статью, в которой рассказывает, что происходит с функциями в интерфейсе Retrofit сервиса, когда мы помечаем их ключевым словом
Читать (Ru)
Такое мы читаем 🔥
Абакар (главный техлид в Альфа-Банке) продебажил Retrofit и написал мощную статью, в которой рассказывает, что происходит с функциями в интерфейсе Retrofit сервиса, когда мы помечаем их ключевым словом
suspend.Читать (Ru)
🔥13👍7❤5
Построение KMP SDK
Цикл статей, посвященных построению и архитектуре KMP SDK.
🟢 Наш опыт, плюсы и минусы, и как это изменило разработку
🟢 Базовая архитектура для общей библиотеки
🟢 Проектирование архитектуры для feature-модулей
🟢 Единая дизайн-система и управление ресурсами
🟢 Инсайты и подводные камни из нашего опыта
Цикл статей, посвященных построению и архитектуре KMP SDK.
Please open Telegram to view this post
VIEW IN TELEGRAM
👍5🔥5❤1
The Art of Shadows in Jetpack Compose
Полезная статья по работе с тенюшками в Jetpack Compose, с разнообразными примерами: внешние/внутренние тени, анимация тени, кастомные шейпы, градиенты и т.д.
Читать (En)
Полезная статья по работе с тенюшками в Jetpack Compose, с разнообразными примерами: внешние/внутренние тени, анимация тени, кастомные шейпы, градиенты и т.д.
Читать (En)
👍7❤4🔥3
This media is not supported in your browser
VIEW IN TELEGRAM
Glitch Effect in Jetpack Compose
Статья с примером реализации вот такого "Глитч" эффекта в Jetpack Compose.
Читать (En)
Статья с примером реализации вот такого "Глитч" эффекта в Jetpack Compose.
Читать (En)
❤6🔥5👍4
Почему моё Android-приложение крашится?
Интересная статья про то, как на уровне системы устроен механизм закрытия приложения, когда в вашем коде выбрасывается необрабатываемый эксепшн.
👉 Zygote и запуск приложений
👉 Как Android обрабатывает непойманные исключения?
👉 Кто сообщает о краше?
👉 Почему в итоге приложение закрывается?
👉 А можно ли сделать так, чтобы оно не закрывалось?
Читать (Ru)
Интересная статья про то, как на уровне системы устроен механизм закрытия приложения, когда в вашем коде выбрасывается необрабатываемый эксепшн.
👉 Zygote и запуск приложений
👉 Как Android обрабатывает непойманные исключения?
👉 Кто сообщает о краше?
👉 Почему в итоге приложение закрывается?
👉 А можно ли сделать так, чтобы оно не закрывалось?
Читать (Ru)
👍7🔥5❤2🥰1👀1
The Golden Rule of Coroutine Exceptions
Ещё одна большая статья с примерами про обработку ошибок в корутинах.
👉 The
👉 The
👉 Parent-Child Relationships (
👉 Isolating Failures (
👉 The Global Catcher (
👉
👉 Cancellation is a Special Kind of Exception
👉 Unstoppable Cleanup with NonCancellable
👉 Nested Scopes & Propagation
👉 The Job Hierarchy in Detail
👉
👉 Handling Timeouts
👉 Exceptions When Awaiting Multiple Jobs
Читать (En)
Ещё одна большая статья с примерами про обработку ошибок в корутинах.
👉 The
launch Builder👉 The
async Builder👉 Parent-Child Relationships (
coroutineScope)👉 Isolating Failures (
supervisorScope)👉 The Global Catcher (
CoroutineExceptionHandler)👉
async Within a supervisorScope👉 Cancellation is a Special Kind of Exception
👉 Unstoppable Cleanup with NonCancellable
👉 Nested Scopes & Propagation
👉 The Job Hierarchy in Detail
👉
supervisorScope vs CoroutineScope(SupervisorJob())👉 Handling Timeouts
👉 Exceptions When Awaiting Multiple Jobs
Читать (En)
21❤6👍5🔥4
Kotlin Mutex: Thread-Safe Concurrency for Coroutines
А вот достаточно крутая статья про то, как писать потокобезопасный код используя Kotlin Mutex с Корутинами. Там и кейсы, и ошибки, и лучшие практики, в общем всё как мы любим 🔥.
👉 What is Mutex?
👉 Core Use Cases for Mutex
👉 Best Practices
👉 Mutex vs. Other Synchronization Methods
👉 Common Pitfalls
👉 Performance Considerations
👉 Real-World Example: Thread-Safe Repository
👉 Testing Mutex-Protected Code
👉 Final Thoughts
Читать (En)
А вот достаточно крутая статья про то, как писать потокобезопасный код используя Kotlin Mutex с Корутинами. Там и кейсы, и ошибки, и лучшие практики, в общем всё как мы любим 🔥.
👉 What is Mutex?
👉 Core Use Cases for Mutex
👉 Best Practices
👉 Mutex vs. Other Synchronization Methods
👉 Common Pitfalls
👉 Performance Considerations
👉 Real-World Example: Thread-Safe Repository
👉 Testing Mutex-Protected Code
👉 Final Thoughts
Читать (En)
16👍13❤4🔥3
К вопросу о шифровании данных на мобильных устройствах бизнес-пользователей
Название статьи кажется несовсем подходящее, т.к. про мобилки там совсем малая часть, но для общего понимания принципов и механики шифрования данных – почитать можно.
👉 Процесс шифрования данных
👉 Симметричные алгоритмы шифрования
👉 Асимметричные алгоритмы шифрования
👉 Шифрование на Android с помощью библиотек Cipher и SQLCipher
👉 Шифрование по ГОСТ: есть ли перспективы?
Читать (Ru)
Название статьи кажется несовсем подходящее, т.к. про мобилки там совсем малая часть, но для общего понимания принципов и механики шифрования данных – почитать можно.
👉 Процесс шифрования данных
👉 Симметричные алгоритмы шифрования
👉 Асимметричные алгоритмы шифрования
👉 Шифрование на Android с помощью библиотек Cipher и SQLCipher
👉 Шифрование по ГОСТ: есть ли перспективы?
Читать (Ru)
👍10🔥4❤2
This media is not supported in your browser
VIEW IN TELEGRAM
Pulse Indicator in Jetpack Compose
Пример реализации вот такого пульсирующего индикатора на Jetapck Compose.
Читать (En)
Пример реализации вот такого пульсирующего индикатора на Jetapck Compose.
Читать (En)
👍12🔥4❤3
The LeakCanary Method
Новый материал про детект утечек памяти с помощью LeakCanary.
В статье рассказывается про процесс исследования, автоматизацию поиска утечек и как использовать YourKit поверх LeakCanary для поиска первопричин серьёзных утечек памяти.
Читать (En)
Новый материал про детект утечек памяти с помощью LeakCanary.
В статье рассказывается про процесс исследования, автоматизацию поиска утечек и как использовать YourKit поверх LeakCanary для поиска первопричин серьёзных утечек памяти.
Читать (En)
🔥7❤5👍4👎1
Inside Kotlin Coroutines: State Machines, Continuations, and Structured Concurrency
Большая, свежая статья про внутрянку Корутин.
👉 Introduction
👉 A Primer on Finite State Machines (FSM)
👉 Suspending Functions and the suspend Keyword
👉 Deconstructing the State Machine: How Kotlin Compiles Coroutines
👉 Understanding State Machine Execution
👉 Pointer Movement: Resuming Execution After Suspension
👉 Exception Handling in Coroutines
👉 Cancellation Mechanics
👉 Structured Concurrency: The Complete Picture
👉 Performance and Advantages
Читать (En)
Большая, свежая статья про внутрянку Корутин.
👉 Introduction
👉 A Primer on Finite State Machines (FSM)
👉 Suspending Functions and the suspend Keyword
👉 Deconstructing the State Machine: How Kotlin Compiles Coroutines
👉 Understanding State Machine Execution
👉 Pointer Movement: Resuming Execution After Suspension
👉 Exception Handling in Coroutines
👉 Cancellation Mechanics
👉 Structured Concurrency: The Complete Picture
👉 Performance and Advantages
Читать (En)
👍10🔥5❤3
Актуальные практики работы в фоне Android-приложений
В статье рассматриваюся актуальные инструменты для работы в фоне, которые работают на последних версиях ОС и как их правильно использовать.
👉 WorkManager
👉 JobScheduler
👉 Foreground Service
👉 Специализированные API (AlarmManager, DownloadManager, Geofencing)
Читать (Ru)
В статье рассматриваюся актуальные инструменты для работы в фоне, которые работают на последних версиях ОС и как их правильно использовать.
👉 WorkManager
👉 JobScheduler
👉 Foreground Service
👉 Специализированные API (AlarmManager, DownloadManager, Geofencing)
Читать (Ru)
🤝10👍6🔥4
How to simplify State and Entity mappings with Kotlin interfaces, delegation and covariant generics
Неплохая статья, в которой автор сравнивает несколько популярных подходов для работы с данными на уровне presentation слоя и показывает как использование интерфейсов с делегированием может упросить маппинг данных, избавить от избыточного кода и сделать вьюмодельки более чистыми и поддерживаемыми.
👉 Understanding the Foundation: Data Classes in Android
👉 The Challenge: Adding Multi-Selection
👉 Internal ViewModel State
👉 Single State Class with Private Properties
👉 The Power of Interfaces
Читать (En)
Неплохая статья, в которой автор сравнивает несколько популярных подходов для работы с данными на уровне presentation слоя и показывает как использование интерфейсов с делегированием может упросить маппинг данных, избавить от избыточного кода и сделать вьюмодельки более чистыми и поддерживаемыми.
👉 Understanding the Foundation: Data Classes in Android
👉 The Challenge: Adding Multi-Selection
👉 Internal ViewModel State
👉 Single State Class with Private Properties
👉 The Power of Interfaces
Читать (En)
👍10❤4🔥4🤔3👎2
The Real Difference Between withContext and launch
Подробная статья про отличия корутин билдеров
Читать (En)
Подробная статья про отличия корутин билдеров
withContext и launch, с разбором на примерах и для каких случаев может подойти каждый.Читать (En)
👍12🔥8❤5👎3
Live Updates на Android: где макеты врут, a SDK ставит границы
Разработчик из Dodo Engineering рассказывает как они завозили Live Updates и с какими проблемами столкнулись.
Если коротко – не всё так радужно, как может показаться. Начиная от документации и заканчивая ограничениями в кастомизации и тестировании на эмулях.
Если планировали внедрять Live Updates, обязательно почитайте статью, вероятно сэкономите какое-то время.
Читать (Ru)
Разработчик из Dodo Engineering рассказывает как они завозили Live Updates и с какими проблемами столкнулись.
Если коротко – не всё так радужно, как может показаться. Начиная от документации и заканчивая ограничениями в кастомизации и тестировании на эмулях.
Если планировали внедрять Live Updates, обязательно почитайте статью, вероятно сэкономите какое-то время.
Читать (Ru)
👍7🔥4❤3
Основы AGSL для Android-разработчика
Отличная базовая статья по шейдерам, с несколькими примерами.
👉 Зачем появился AGSL
👉 Где AGSL хорош, а где он не про это
👉 А если устройство с API < 33?
👉 Как AGSL вплетается в Android и Compose
👉 Пример 1: Анимированный градиент
👉 Пример 2: Ripple - интерактивная волна от тапа на экран
👉 Пример 3: Летящая звезда - AGSL как мини-рендер сценки
👉 Заключение
Исходный код на GitHub → AGSL-Basics
AGSL (Android Graphics Shading Language) – это язык фрагментных шейдеров, встроенный в сам графический стек Android, так что эффекты применяются прямо на уровне отрисовки интерфейса.
Читать (Ru)
Отличная базовая статья по шейдерам, с несколькими примерами.
👉 Зачем появился AGSL
👉 Где AGSL хорош, а где он не про это
👉 А если устройство с API < 33?
👉 Как AGSL вплетается в Android и Compose
👉 Пример 1: Анимированный градиент
👉 Пример 2: Ripple - интерактивная волна от тапа на экран
👉 Пример 3: Летящая звезда - AGSL как мини-рендер сценки
👉 Заключение
Исходный код на GitHub → AGSL-Basics
AGSL (Android Graphics Shading Language) – это язык фрагментных шейдеров, встроенный в сам графический стек Android, так что эффекты применяются прямо на уровне отрисовки интерфейса.
Читать (Ru)
🔥9👍4❤3