Android ViewModel Data Loading: Best Practices and Flow-Based Architecture
Большая статья, с примерами кода, в которой автор рассказывает про проблемы загрузки данных в
Читать (En)
Большая статья, с примерами кода, в которой автор рассказывает про проблемы загрузки данных в
ViewModel.init{ } блоке и рассматривает Flow-Based решение, как более правильный, удобный и оптимальный архитектурный подход.Читать (En)
🔥7❤3👍3
Forwarded from Swift Tips
How to Build a CI/CD Pipeline for iOS Projects
Подробная статья в блоге Jetbrains о том, как собрать CI/CD пайплайн для iOS-проектов с помощью TeamCity.
🟢 Code checkout and version control integration
🟢 Building iOS applications with Xcode
🟢 Testing across multiple iOS versions
🟢 Static code analysis and code coverage reporting
🟢 Signing and packaging (IPA files)
🟢 Deploying to TestFlight or the App Store
🟢 Setting up the iOS project
🟢 Initializing fastlane
🟢 Setting up the beta lane
🟢 Configuring fastlane match
🟢 Create a new project in TeamCity Cloud
🟢 Configure build job
🟢 Set up AWS Secrets
🟢 Set up build parameters
🟢 Testing the pipeline
Читать (En)
Подробная статья в блоге Jetbrains о том, как собрать CI/CD пайплайн для iOS-проектов с помощью TeamCity.
Читать (En)
Please open Telegram to view this post
VIEW IN TELEGRAM
7🔥9👍5❤4
New Shadow API for Jetpack Compose
Подробный обзор с примерами кода нового API в Jetapck Compose для работы с тенями, которое добавили в последнем релизе 1.9.0.
Читать (En)
Подробный обзор с примерами кода нового API в Jetapck Compose для работы с тенями, которое добавили в последнем релизе 1.9.0.
Читать (En)
🔥15❤6👍4
Глубокое погружение в 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