Глубокое погружение в Java Memory Model
На выходных смотрел публичный мок-собес и там ребята обсуждали Java Memory Model. Дай думаю посмотрю материалы на эту тему и наткнулся на крутую, большую и хардкорную статью, в которой автор детально разбирает что происходит под капотом JMM.
Довольно много низкоуровневой информации, которая на практике возможно и не пригодится, но такие знания точно лишними не будут.
Читать (Ru)
На выходных смотрел публичный мок-собес и там ребята обсуждали Java Memory Model. Дай думаю посмотрю материалы на эту тему и наткнулся на крутую, большую и хардкорную статью, в которой автор детально разбирает что происходит под капотом JMM.
Довольно много низкоуровневой информации, которая на практике возможно и не пригодится, но такие знания точно лишними не будут.
Читать (Ru)
👍16🔥4❤3
Compose + Koin + Jetpack Navigation: что мы поняли за 2 года
Большая и полезная статья от разработчика core-команды WB Partners Wildberries & Russ, в которой он делится опытом развития архитектуры приложения на Jetpack Compose: с какими ограничениями столкнулись, как укротили навигацию от Google и каким образом всё это подружили с Koin.
Читать (Ru)
Большая и полезная статья от разработчика core-команды WB Partners Wildberries & Russ, в которой он делится опытом развития архитектуры приложения на Jetpack Compose: с какими ограничениями столкнулись, как укротили навигацию от Google и каким образом всё это подружили с Koin.
Читать (Ru)
👍7❤5🔥4
Improve app performance with optimized resource shrinking
В AGP версии 8.12.0 Гугловцы запилили более эффективный способ уменьшения размера приложения с помощью R8.
В новом подходе R8 одновременно оптимизирует ссылки на код и ресурсы, гарантируя, что все ресурсы, на которые ссылается неиспользуемый код, идентифицируются как неиспользуемые и затем удаляются.
P.S. Рекомендую использовать с осторожностью и перед релизом обязательно несколько раз потестить финальную сборку 😉
Читать (En)
В AGP версии 8.12.0 Гугловцы запилили более эффективный способ уменьшения размера приложения с помощью R8.
В новом подходе R8 одновременно оптимизирует ссылки на код и ресурсы, гарантируя, что все ресурсы, на которые ссылается неиспользуемый код, идентифицируются как неиспользуемые и затем удаляются.
P.S. Рекомендую использовать с осторожностью и перед релизом обязательно несколько раз потестить финальную сборку 😉
Читать (En)
👍6🔥3❤2
Forwarded from Swift Tips
Swift на Android: создаём библиотеку
В Swift 6 появилась возможность работать сс минимальной болью вызывать его из Android среды (Java, Kotlin) c помощью JNI*.
Ловите подробную гайд-статью от @imike3049, как это всё можно завести.
Читать (Ru)
В Swift 6 появилась возможность работать с
Android NDK. Это значит, что мы можем писать код на Swift`е и в последствии, Java Native Interface (JNI)– это мост который позволяет нативному коду обращаться кJava Virtual Machine (JVM). Когда вы пишете Java код, то вы используете Android SDK. Но когда вы используете языки как Swift или C++, которые не компилируются в Java байткод, вам уже нужен Android NDK для коммуникации с Java через JNI.
Ловите подробную гайд-статью от @imike3049, как это всё можно завести.
Читать (Ru)
❤6👍4🔥2🤔2
Расширяем возможности GitHub Copilot для IDEA или как писать unit-тесты в пару кликов
В статье демонстрируется один из кейсов использования ИИ-помощников, а именно как научить плагин GitHub Copilot помогать писать unit-тесты буквально в пару кликов.
Статья может быть полезна тем, кто хочет узнать как влезать в работу сторонних плагинов, ускорить написание тестов и тем, кто ищет способы прокачать работу с ИИ-помощниками в своих проектах.
Читать (Ru)
В статье демонстрируется один из кейсов использования ИИ-помощников, а именно как научить плагин GitHub Copilot помогать писать unit-тесты буквально в пару кликов.
Статья может быть полезна тем, кто хочет узнать как влезать в работу сторонних плагинов, ускорить написание тестов и тем, кто ищет способы прокачать работу с ИИ-помощниками в своих проектах.
Читать (Ru)
❤6👍4🔥3👨💻1
Clipping and Masking in Jetpack Compose
Небольшая, но полезная статья про то, как в Jetpack Compose использовать Clipping и Masking для более дружелюбного UI: как обрезать компонент, кастомные шейпы, наложение градиента, различные эффекты и режимы наложение.
Читать (En)
Небольшая, но полезная статья про то, как в Jetpack Compose использовать Clipping и Masking для более дружелюбного UI: как обрезать компонент, кастомные шейпы, наложение градиента, различные эффекты и режимы наложение.
Читать (En)
🔥7❤4👍3
Как я научил 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