Разбираем чистую архитектуру в Android: от а до я
+1 статья с разбором чистой архитектуры в Android. Принципиально ничего нового: слои, юзкейсы, репозитории, зависимости и т.д.
Читать (Ru)
+1 статья с разбором чистой архитектуры в Android. Принципиально ничего нового: слои, юзкейсы, репозитории, зависимости и т.д.
Читать (Ru)
🥱23🔥5👍4❤2
Как мы сделали дизайн-систему для мобильных устройств и TV
Большая и полезная статья от разработчика из RuStore про дизайн-систему, в которой разбираются две ключевые темы: токены и компоненты.
Читать (Ru)
Большая и полезная статья от разработчика из RuStore про дизайн-систему, в которой разбираются две ключевые темы: токены и компоненты.
Читать (Ru)
👍5❤4🔥3
ServerSocket на Android в пределах одной сети
Заключительная часть про ServerSocket, в которой разбираются примеры взаимодействия между устройствами в пределах одной Wi-Fi‑сети.
Читать (Ru)
Заключительная часть про ServerSocket, в которой разбираются примеры взаимодействия между устройствами в пределах одной Wi-Fi‑сети.
Читать (Ru)
👍6❤5🔥4
Реактивное профилирование Android-приложений
Кто занимается профилированием/анализом производительности приложений, знает, что с существующими инструментам это делать не всегда удобно.
Так вот, команда мобильной разработки Яндекса создала и выложила в опенсорс новую библиотеку для измерения производительности — Demeter. Библиотека достаточно просто интегрируется в проект, автоматически замеряет время выполнения методов, показывает время инициализации Dagger-зависимостей и даже умеет анализировать Composable-функции на частоту рекомпозиций – всё это работает из коробки, без лишних танцев с бубном.
Ещё один важный момент – Demeter умеет проверять сторонние библиотеки/SDK подключённые к проекту, что на мой взгляд является жирным плюсом. А если вам вдруг чего-то не хватает, можно написать собственный плагин – всё это легко подрубается через Kotlin Compiler Plugin.
Репозиторий тут → Demeter
Подробнее о том, как библиотека устроена под капотом и сравнение с другими инструментами читайте в статье.
Кто занимается профилированием/анализом производительности приложений, знает, что с существующими инструментам это делать не всегда удобно.
Так вот, команда мобильной разработки Яндекса создала и выложила в опенсорс новую библиотеку для измерения производительности — Demeter. Библиотека достаточно просто интегрируется в проект, автоматически замеряет время выполнения методов, показывает время инициализации Dagger-зависимостей и даже умеет анализировать Composable-функции на частоту рекомпозиций – всё это работает из коробки, без лишних танцев с бубном.
Ещё один важный момент – Demeter умеет проверять сторонние библиотеки/SDK подключённые к проекту, что на мой взгляд является жирным плюсом. А если вам вдруг чего-то не хватает, можно написать собственный плагин – всё это легко подрубается через Kotlin Compiler Plugin.
Репозиторий тут → Demeter
Подробнее о том, как библиотека устроена под капотом и сравнение с другими инструментами читайте в статье.
🔥9👍5❤4👏4
Understanding the Internals of Side-Effect Handlers in Jetpack Compose
Достаточно подробная статья по сайд эффектам в Jetpack Compose: что это такое, как с ними работать и как они устроены под капотом.
🟢 What is a Side-Effect?
🟢 LaunchedEffect
🟢 DisposableEffect
🟢 SideEffect
Читать (En)
Достаточно подробная статья по сайд эффектам в Jetpack Compose: что это такое, как с ними работать и как они устроены под капотом.
Читать (En)
Please open Telegram to view this post
VIEW IN TELEGRAM
👍12🔥4❤3👌1
Debugging Coroutines in IntelliJ and Android Studio
Небольшая статья про то, как дебажить корутины в IDE (IntelliJ IDEA и Android Studio) разными способами.
👉 Logging
👉 Run/Debug Configurations
👉 GUI Debugging
👉 Experimental Coroutine Debugging in Test
Читать (En)
Небольшая статья про то, как дебажить корутины в IDE (IntelliJ IDEA и Android Studio) разными способами.
👉 Logging
👉 Run/Debug Configurations
👉 GUI Debugging
👉 Experimental Coroutine Debugging in Test
Читать (En)
👍7🔥4❤2
Android Architecture
Несколько новых статей про архитектуру из этого блога, про Data слой и реализацию безопасного получения/обновления данных(обработка ошибок, кеширование, маппинг, Retry).
• Data Layer
• Fetchers update
Несколько новых статей про архитектуру из этого блога, про Data слой и реализацию безопасного получения/обновления данных(обработка ошибок, кеширование, маппинг, Retry).
• Data Layer
• Fetchers update
👍8🔥4❤3
Как работает Robolectric и почему это важно знать
Подробная статья про то, как на самом деле работает магия Robolectric и почему эти знания могут пригодиться любому android-разработчику.
Читать (Ru)
Подробная статья про то, как на самом деле работает магия Robolectric и почему эти знания могут пригодиться любому android-разработчику.
Читать (Ru)
👍9🔥5❤4
Securing Android: Behind a few seconds of payment transaction
Большая статья на тему организации безопасности в Android-приложении.
👉 Protecting Your App from Reverse Engineering & Debugging
👉 Securing Execution Environment
👉 Preventing Data Leakage & Unauthorized Access
👉 Strengthening Authentication & Secure Communication
👉 Secure Cryptography & Key Management
👉 Enhancing System Security & Updates
👉 Advanced Security Techniques
Читать (En)
Большая статья на тему организации безопасности в Android-приложении.
👉 Protecting Your App from Reverse Engineering & Debugging
👉 Securing Execution Environment
👉 Preventing Data Leakage & Unauthorized Access
👉 Strengthening Authentication & Secure Communication
👉 Secure Cryptography & Key Management
👉 Enhancing System Security & Updates
👉 Advanced Security Techniques
Читать (En)
👍12🔥7❤3
Handling UI Actions the Right Way in Kotlin ViewModels
В статье автор делится своей удобной и гибкой реализацией по обработке UI-событий с использованием интерфейсов. А также рассматривает другие, популярные подходы с плюсами и минусами.
Читать (En)
В статье автор делится своей удобной и гибкой реализацией по обработке UI-событий с использованием интерфейсов. А также рассматривает другие, популярные подходы с плюсами и минусами.
Читать (En)
👍8🎃6❤3🔥2
Forwarded from Swift Tips
How to inspect .ipa files and secure your iOS app from common mistakes
Гайд по тому, как исследовать .ipa-файлы и какие данные из них можно получить. Также в статье приводятся простые, базовые правила для организации безопасности чувствительных данных.
Читать (En)
Гайд по тому, как исследовать .ipa-файлы и какие данные из них можно получить. Также в статье приводятся простые, базовые правила для организации безопасности чувствительных данных.
Читать (En)
❤5👍4🔥3
Understanding Execution Order in Jetpack Compose: DisposableEffect, LaunchedEffect, and Composables
Полезная статья, в которой разбирается порядок выполнения
P.S. Особое внимание обратите на порядок выполнения при навигации и возврате на предыдущий экран.
Читать (En)
Полезная статья, в которой разбирается порядок выполнения
DisposableEffect, LaunchedEffect и Composables в Jetpack Compose.P.S. Особое внимание обратите на порядок выполнения при навигации и возврате на предыдущий экран.
Читать (En)
👍12❤6🔥6
Kotlin Generics Explained:
Ещё статья про дженерики в Kotlin: инвариантность, ковариантность, контравариантность, затирание типов и вот это всё.
🟢 The Mystic Gate and Invariance
🟢 The Magical Scroll and Covariance
🟢 The Lord Ambiguous and Contravariance
🟢 The Final Battle and Type Erasure
🟢 The Spell of Reified
🟢 The Ending
🟢 Advanced Kotlin Generics
Читать (En)
Ещё статья про дженерики в Kotlin: инвариантность, ковариантность, контравариантность, затирание типов и вот это всё.
Читать (En)
Please open Telegram to view this post
VIEW IN TELEGRAM
❤8👍7🔥5
How to Reduce Android Studio Memory Usage
Статья с рекомендациями по настройкам Android Studio, для меньшего потребления памяти.
👉 Enable Memory Indicator and Adjust IDE Heap Size
👉 Optimize Gradle Daemon Settings for Builds
👉 Enable Parallel Project Builds
👉 Use Gradle Offline Mode and Build Cache
👉 Manage the Android Emulator’s Memory Usage (or Use a Physical Device)
👉 Disable Unused Plugins and Features in Android Studio
Читать (En)
Статья с рекомендациями по настройкам Android Studio, для меньшего потребления памяти.
👉 Enable Memory Indicator and Adjust IDE Heap Size
👉 Optimize Gradle Daemon Settings for Builds
👉 Enable Parallel Project Builds
👉 Use Gradle Offline Mode and Build Cache
👉 Manage the Android Emulator’s Memory Usage (or Use a Physical Device)
👉 Disable Unused Plugins and Features in Android Studio
Читать (En)
👍7❤4🔥4
Мастерство фокусов на Jetpack Compose
Большая статья, в которой разбираются основы по работе с фокусом в Compose: что такое фокус, как он работает, какие модификаторы и инструменты предоставляет Jetpack Compose, а также как использовать их для построения удобных интерфейсов.
🟢 Основы работы с фокусом
🟢 Концепция уровней в работе фокусов
🟢
🟢
🟢
🟢
🟢
🟢
🟢
🟢
🟢 Рекомендации по работе с фокусами
🟢 Заключение
Читать (Ru)
Большая статья, в которой разбираются основы по работе с фокусом в Compose: что такое фокус, как он работает, какие модификаторы и инструменты предоставляет Jetpack Compose, а также как использовать их для построения удобных интерфейсов.
Modifier.focusable() и Modifier.focusTarget() — в чём разница?FocusManager и FocusOwner — глобальное управление фокусомFocusRequester — запрос фокуса программноModifier.focusProperties — настройка навигацииModifier.focusGroup — группировка элементов для фокусировкиModifier.focusRestorer() — восстановление состояния фокусаModifier.onFocusChanged — отслеживание изменений фокусаInteractionSource — подписка на изменение состояния фокусаЧитать (Ru)
Please open Telegram to view this post
VIEW IN TELEGRAM
👍18❤5🔥5
Avoid using Array in the data class constructor in Kotlin
В статье автор рассказывает про то, что использование массивов в Data-классах может быть небезопасным, т.к. реализация
Читать (En)
В статье автор рассказывает про то, что использование массивов в Data-классах может быть небезопасным, т.к. реализация
equals() и hashCode() сравнивает ссылки на объекты, а не содержимое. Читать (En)
👍15❤3🔥2
Kotlin Coroutines: The real difference between Job.cancel() and Scope.cancel()
Небольшая статья, с наглядными примерами отличий
👉 The basics: Job vs CoroutineScope
👉 Key differences in practice
👉 Real-world analogy
👉 When to use each
👉 Summary
Читать (En)
Небольшая статья, с наглядными примерами отличий
Job.cancel() и Scope.cancel() и в каких случаях, что использовать.👉 The basics: Job vs CoroutineScope
👉 Key differences in practice
👉 Real-world analogy
👉 When to use each
👉 Summary
Читать (En)
👍7❤3🔥3👎1
Edge-to-edge в Android: опыт внедрения и рекомендации по тестированию
Ребята из Авито рассказывают про свой опыт внедрения edge-to-edge в мобильное приложение Avito.
👉 Что такое edge-to-edge
👉 Причины поддержки edge-to-edge
👉 Feature-toggle для безопасного перехода
👉 Обработка WindowInsets на экранах
👉 Обработка цветов системных панелей
👉 Обработка клавиатуры
👉 OptOut-флаг
👉 Как выбрать девайсы для тестирования?
👉 На что стоит обратить внимание при тестировании
👉 Примеры из практики
👉 Заключение
Читать (Ru)
Ребята из Авито рассказывают про свой опыт внедрения edge-to-edge в мобильное приложение Avito.
👉 Что такое edge-to-edge
👉 Причины поддержки edge-to-edge
👉 Feature-toggle для безопасного перехода
👉 Обработка WindowInsets на экранах
👉 Обработка цветов системных панелей
👉 Обработка клавиатуры
👉 OptOut-флаг
👉 Как выбрать девайсы для тестирования?
👉 На что стоит обратить внимание при тестировании
👉 Примеры из практики
👉 Заключение
Читать (Ru)
👍8❤5🔥4
Stop Writing If-Else Trees: Use the State Pattern Instead
Полезная статья, в которой автор рассказывает как избавиться от ифчиков с помощью шаблона State, тем самым сделав свой код чище и логически понятней.
👉 How the State Pattern Works
👉 Why State Pattern Over Enums and Flags?
👉 Pros and Cons of the State Pattern
👉 Implementing the State Pattern in Dart (Phone Mode Example)
👉 Limitations and Trade-Offs
Читать (En)
Полезная статья, в которой автор рассказывает как избавиться от ифчиков с помощью шаблона State, тем самым сделав свой код чище и логически понятней.
👉 How the State Pattern Works
👉 Why State Pattern Over Enums and Flags?
👉 Pros and Cons of the State Pattern
👉 Implementing the State Pattern in Dart (Phone Mode Example)
👉 Limitations and Trade-Offs
Читать (En)
❤4👍4🔥3
Мечтают ли андроиды о Robolectric? Разбираем фреймворк по косточкам
Давненько на канале не было постов, решил немного отдохнуть и перезагрузиться. Чутка отдохнул, а вот перезагрузиться не получилось 😂. Поэтому, разбираю избранное и плавно возвращаюсь в публикациям.
Довольно подробная статья про Robolectric: что это такое, как устроен под капотом, как работает с Android‑компонентами без эмулятора, проблемы и т.д.
Читать (Ru)
Давненько на канале не было постов, решил немного отдохнуть и перезагрузиться. Чутка отдохнул, а вот перезагрузиться не получилось 😂. Поэтому, разбираю избранное и плавно возвращаюсь в публикациям.
Довольно подробная статья про Robolectric: что это такое, как устроен под капотом, как работает с Android‑компонентами без эмулятора, проблемы и т.д.
Читать (Ru)
👍6❤3🔥3👏1