Погружение в разработку плагинов для Android Studio
Вторая часть про разработку плагинов для Android Studio. В этой статье рассматривается пошаговая реализациия более продвинутого плагина – Запускатель UI-тестов.
Предыдущая часть тут.
Читать (Ru)
Вторая часть про разработку плагинов для Android Studio. В этой статье рассматривается пошаговая реализациия более продвинутого плагина – Запускатель UI-тестов.
Предыдущая часть тут.
Читать (Ru)
🔥6👍4❤2
Exploring PausableComposition internals in Jetpack Compose
В Compose версии 1.9.X представили новый внутренний API – PausableComposition, который, как утверждается, решает проблемы с производительностью.
В статье подробный разбор: что это такое, как устроено под капотом и для чего может пригодиться.
Читать (En)
В Compose версии 1.9.X представили новый внутренний API – PausableComposition, который, как утверждается, решает проблемы с производительностью.
В статье подробный разбор: что это такое, как устроено под капотом и для чего может пригодиться.
Читать (En)
👍6❤2🔥2
This media is not supported in your browser
VIEW IN TELEGRAM
Swipe to Pay, или Как мы переписали слайдер оплаты на Compose
Полезная статья, в которой разработчик из Dodo Engineering подробно разбирает процесс создания достаточно сложного и прикольного компонента на Compose.
Читать (Ru)
Полезная статья, в которой разработчик из Dodo Engineering подробно разбирает процесс создания достаточно сложного и прикольного компонента на Compose.
Читать (Ru)
🔥11❤4👍4
The dark corners of inline, crossinline, and reified in Kotlin
Статья про возможные проблемы при неправильном использовании
👉 The promise and peril of inline
👉 Why crossinline matters in suspending contexts
👉 Reified: type-safe builders and beyond
👉 Debugging and testing inline code
👉 Checklist for safe use
Читать (En)
Статья про возможные проблемы при неправильном использовании
inline, crossinline и reified в Kotlin.👉 The promise and peril of inline
👉 Why crossinline matters in suspending contexts
👉 Reified: type-safe builders and beyond
👉 Debugging and testing inline code
👉 Checklist for safe use
Читать (En)
🔥5👍4❤3
LayoutNode: What Actually Happens When You Write
Полезная статья, в которой разбирается LayoutNode: что это такое, как строится дерево из LayoutNode, как это влияет на производительность и отрисовку.
👉 What is the LayoutNode?
👉 How Compose Actually Creates Nodes
👉 LayoutNode vs Modifier.Node
👉 Rendering Pipeline
👉 Custom Layouts
👉 The bottom line
Читать (En)
@ComposableПолезная статья, в которой разбирается LayoutNode: что это такое, как строится дерево из LayoutNode, как это влияет на производительность и отрисовку.
👉 What is the LayoutNode?
👉 How Compose Actually Creates Nodes
👉 LayoutNode vs Modifier.Node
👉 Rendering Pipeline
👉 Custom Layouts
👉 The bottom line
Читать (En)
🔥8👍5❤3
Мобильное тестирование: разбираемся с эмуляторами и тестовыми фермами
Обзорная статья с разбором доступных решений для тестирования мобильных приложений, с плюсами и минусами.
Эмуляторы и симуляторы. Удобны для тестирования базовой функциональности и отладки, но они не способны воспроизвести реальные условия работы устройства.
Мобильные фермы. Подходят для регрессионных и UI-тестов, нагрузочного и исследовательского тестирования. Один из плюсов – разнообразное количество девайсов для воспроизведения платформенно-специфичных багов. Наиболее популярные решения на рынке: опенсорс-платформы Smartphone Test Farm и DeviceHub, мобильная ферма от Selectel.
Читать (Ru)
Обзорная статья с разбором доступных решений для тестирования мобильных приложений, с плюсами и минусами.
Эмуляторы и симуляторы. Удобны для тестирования базовой функциональности и отладки, но они не способны воспроизвести реальные условия работы устройства.
Мобильные фермы. Подходят для регрессионных и UI-тестов, нагрузочного и исследовательского тестирования. Один из плюсов – разнообразное количество девайсов для воспроизведения платформенно-специфичных багов. Наиболее популярные решения на рынке: опенсорс-платформы Smartphone Test Farm и DeviceHub, мобильная ферма от Selectel.
Читать (Ru)
👍5🔥4🤔3❤1
Integration Testing on Android: A Practical Guide with Hilt, Compose & Room
Практическое руководство по написанию интеграционных тестов в Android.
👉 Introduction
👉 Project setup
👉 Writing the test
👉 Swapping Real Dependencies with Fake Ones
👉 Testing Failure Scenarios
👉 Robotic Pattern for compose test
👉 Why Integration Testing Matters
Читать (En)
Практическое руководство по написанию интеграционных тестов в Android.
👉 Introduction
👉 Project setup
👉 Writing the test
👉 Swapping Real Dependencies with Fake Ones
👉 Testing Failure Scenarios
👉 Robotic Pattern for compose test
👉 Why Integration Testing Matters
Читать (En)
🔥3❤2👍1
TAO Bubbles: элегантные и настраиваемые подсказки для ваших Jetpack Compose приложений
Статья с примером реализации компонента для отображения подсказок на Jetpack Compose.
Читать (Ru)
Статья с примером реализации компонента для отображения подсказок на Jetpack Compose.
Читать (Ru)
🔥12❤4👍4
The Magic Behind Retrofit: How a Simple Interface Becomes Your API Gateway
Если вдруг кто-то не знал как под капотом устроен и работает Retrofit, вот свежая статья с детальным разбором: Dynamic Proxy, аннотации, парсинг, формирование запросов и т.д.
Читать (En)
Если вдруг кто-то не знал как под капотом устроен и работает Retrofit, вот свежая статья с детальным разбором: Dynamic Proxy, аннотации, парсинг, формирование запросов и т.д.
Читать (En)
❤7🔥6👍4👨💻1
Настолько приложение Max хайпит за время своего существования, что какие-то несчастные статьи на Хабре, про то, какие например использует разрешения Max собирают десятки и сотни тысяч просмотров – раз (191K), дваз (139K), триз (46К).
И все эти статьи у меня вызывают так сказать неопределённые чувства 🤷♂️,
Посмотрите например вот эту статью "Что можно узнать о Max из AndroidManifest" – тут автор рассказывает про структуру манифеста, из чего он состоит, какие разрешения есть в Max и другую всячину по типу App Links. Статья собрала 46K просмотров 🤦♂️
Или возьмем вот эту статью "Разрешения MAX для Android. Сравниваем с Telegram и WhatsApp*" – тут собственно и комментировать нечего. 139K просмотров.
Вот это вообще шик, статья-рекордсмен "Технический разбор Max: что внутри APK". Интересно, что же там внутри? А внутри там мягко говоря ничего – урлы api, пару разрешений из манифеста, ну и ещё какие-то используемые sdk и библиотеки. На текущий момент статья собрала 191K 😳.
46, 139, 190 тыщ просмотров Карл!!! То есть, суммарно под 400К просмотров. Вы серьезно? Кажется мир свернул не туда.
Цель авторов я конечно же понимаю – хайп, все дела, у каждого свой тг-канал и всё такое. Но как будто бы странно такими способами хайпить и пытаться набрать аудиторию.
Читателей и комментаторов не очень понимаю. Среднему пользователю такие статьи никакой инфы не дадут, а технические спецы если нужно и сами могут APK декомпилить и посмотреть что там и как.
Я это к чему. Периодически встречаются действительно годные материалы, статьи, которые хорошо, если соберут 2, 3 или 4 тысячи просмотров. Согласен, действительно крутых материалов сейчас гораздо меньше, но они есть. При этом же людям интереснее почитать какую-то +/- бестолковую информацию – а что же там такого супермега шпионского спрятано в MAX. Приложения мессенджеров +/- все одинаковые и разрешения у них будут +/- одинаковые и набор функций и т.д. Чего вы ждёте-то от таких статей?
Фух, выдохнул, пора заканчивать 😂
Анализируйте, фильтруйте и потребляйте полезную информацию. Всем доброй ночи 😉
P.S. Комментарии если что открыты 😉
Please open Telegram to view this post
VIEW IN TELEGRAM
50👍19❤🔥12👎11🤔3❤1
Forwarded from Swift Tips
12 Swift Optimization Secrets Apple Won’t Tell You
Статья с советами, рекомендациями и примерами оптимизации Swift-кода.
🟢 Copy-on-Write (COW): Smart Memory Efficiency
🟢 Value Types vs Reference Types: The Foundation of Swift Performance
🟢 ARC Overhead: Understanding Retain and Release
🟢 Inlining and Function Dispatch
🟢 Looping and Lazy Collections
🟢 Memory Layout Optimization: Struct Alignment Tricks
🟢 Concurrency Optimizations: Making Async Code Fly
🟢 Compiler-Level Optimizations
🟢 Profiling with Instruments
🟢 Real-World iOS Scenarios
🟢 Practical Tips & Best Practices
🟢 Conclusion: Clean Code First, Optimize Second
Читать (En)
Статья с советами, рекомендациями и примерами оптимизации Swift-кода.
Читать (En)
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥3❤2👍2
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