Как катить фичи без релизов. Про низкоуровневый Server Driven UI
Тут вышла 2-ая часть из цикла статей «Как катить фичи без релизов», в которой чуть больше деталей как это всё гибко настраивается, конфигурируется и превращается в верстку с учётом дизайн-системы.
Читать (Ru)
Тут вышла 2-ая часть из цикла статей «Как катить фичи без релизов», в которой чуть больше деталей как это всё гибко настраивается, конфигурируется и превращается в верстку с учётом дизайн-системы.
Читать (Ru)
🔥12👍5🤔2
Какого цвета Ripple?
Конкретного ответа в статье нет, зато есть достаточно любопытное исследование. Как вычисляется цвет ripple, как всё устроено под капотом, связь Ripple, MD2, MD3 и т.д.
👉 Что есть Ripple
👉 Ripple & Material Design 2
👉 Ripple & Material Design 3
👉 Ripple & XML
👉 Ripple & Jetpack Compose под капотом
Если самим лень копаться и разбираться как это работает – статья для вас 😉
Читать (Ru)
Конкретного ответа в статье нет, зато есть достаточно любопытное исследование. Как вычисляется цвет ripple, как всё устроено под капотом, связь Ripple, MD2, MD3 и т.д.
👉 Что есть Ripple
👉 Ripple & Material Design 2
👉 Ripple & Material Design 3
👉 Ripple & XML
👉 Ripple & Jetpack Compose под капотом
Если самим лень копаться и разбираться как это работает – статья для вас 😉
Читать (Ru)
👍14🔥3👏1🤔1
This media is not supported in your browser
VIEW IN TELEGRAM
Crafting a Clock in Jetpack Compose with Canvas
Пример реализации часов на Jetpack Compose через Canvas.
Код на GitHub → Watchface
И еще одна реализация → Clock of Clocks
Читать (En)
Пример реализации часов на Jetpack Compose через Canvas.
Код на GitHub → Watchface
И еще одна реализация → Clock of Clocks
Читать (En)
🔥16❤4👍3🤯3
В AppMetrica добавили решение Workspaces для быстрой настройки визуализации данных о показателях работы мобильного приложения.
Теперь можно создавать автономные дашборды с наглядным представлением различных метрик приложения.
• Работайте со всеми доступными отчётами и дашбордами в удобном интерфейсе AppMetrica
• Собирайте дашборды с KPI, чтобы команда могла в любой момент ознакомиться с текущим состоянием дел
• Отслеживайте только нужные показатели на дашборде и не отвлекайтесь на несущественные детали
Читать (Ru)
Теперь можно создавать автономные дашборды с наглядным представлением различных метрик приложения.
• Работайте со всеми доступными отчётами и дашбордами в удобном интерфейсе AppMetrica
• Собирайте дашборды с KPI, чтобы команда могла в любой момент ознакомиться с текущим состоянием дел
• Отслеживайте только нужные показатели на дашборде и не отвлекайтесь на несущественные детали
Читать (Ru)
👍3🔥2💩2❤1🤔1🤮1🤡1
Обзор библиотек для скриншот-тестирования Android проектов
Первая часть с обзором библиотек для скриншот-тестирования.
👉 Facebook* Screenshot Testing Library
👉 Shot
👉 Paparazzi
👉 Dropshots
Читать (Ru)
Первая часть с обзором библиотек для скриншот-тестирования.
👉 Facebook* Screenshot Testing Library
👉 Shot
👉 Paparazzi
👉 Dropshots
Читать (Ru)
🤔7👍6🔥2
Tools and tips I wish I knew when I started Android development
Несколько инструментов и советов для начинающих.
👉 JetBrains Toolbox
👉 Android codelabs
👉 ADB Idea
👉 Timber
👉 GitKraken
👉 Now In Android
👉 Material Symbols
👉 Android roadmap
👉 Android Developers on YouTube
Читать (En)
Несколько инструментов и советов для начинающих.
👉 JetBrains Toolbox
👉 Android codelabs
👉 ADB Idea
👉 Timber
👉 GitKraken
👉 Now In Android
👉 Material Symbols
👉 Android roadmap
👉 Android Developers on YouTube
Читать (En)
🔥10❤5👍5💩4
Migrate to Jetpack Compose
Гугл видимо начал дополнять доку по Jetpack Compose и уже добавили/обновили несколько коротких гайдов по миграции на Jetpack Compose.
👉 Migrate RecyclerView to Lazy list
👉 Migrate CoordinatorLayout to Compose
👉 Migrate Jetpack Navigation to Navigation Compose
👉 Migrate from Material 2 to Material 3 in Compose
👉 Window insets in Compose
👉 Lists and grids
👉 Other considerations
Гугл видимо начал дополнять доку по Jetpack Compose и уже добавили/обновили несколько коротких гайдов по миграции на Jetpack Compose.
👉 Migrate RecyclerView to Lazy list
👉 Migrate CoordinatorLayout to Compose
👉 Migrate Jetpack Navigation to Navigation Compose
👉 Migrate from Material 2 to Material 3 in Compose
👉 Window insets in Compose
👉 Lists and grids
👉 Other considerations
🔥10👍4❤2
Настраиваем CI/CD для тестовой инфраструктуры Android
Гайд по настройке CI/CD для тестовой инфраструктуры и интеграции между Kaspresso, Allure TestOps и Gitlab CI.
👉 Загрузка результатов тестов из Gitlab
👉 Аутентификация Gitlab сборки
👉 Настройка GitLab проекта для загрузки тестовых данных
👉 Создание скрипта сборки
Читать (Ru)
Гайд по настройке CI/CD для тестовой инфраструктуры и интеграции между Kaspresso, Allure TestOps и Gitlab CI.
👉 Загрузка результатов тестов из Gitlab
👉 Аутентификация Gitlab сборки
👉 Настройка GitLab проекта для загрузки тестовых данных
👉 Создание скрипта сборки
Читать (Ru)
👍12❤1🔥1🤔1
Eliminating coroutine races
Статья с примерами races condition в корутинах и вариантами решения.
Читать (En)
Статья с примерами races condition в корутинах и вариантами решения.
Читать (En)
👍8🔥2❤1
Forwarded from Swift Tips
Awesome iOS Dev Tools
Забирайте большущий список Awesome iOS Dev Tools.
• Analytics
• App Store Optimization
• Backends
• Code
• Debugging
• Deployment
• Design
• Documentation
• Graphics & Animation
• Localization
• Machine Learning
• Mapping & Location
• Messaging
• Monetisation & Payments
• Networking
• Productivity
• Support
• Testing
Читать (En)
Забирайте большущий список Awesome iOS Dev Tools.
• Analytics
• App Store Optimization
• Backends
• Code
• Debugging
• Deployment
• Design
• Documentation
• Graphics & Animation
• Localization
• Machine Learning
• Mapping & Location
• Messaging
• Monetisation & Payments
• Networking
• Productivity
• Support
• Testing
Читать (En)
🔥3❤2👍1
A flexible, modern Android app architecture: complete step-by-step
Продолжение к статье с примером реализации гибкой, современной архитектуры в Android, которая соответствует различным принциам(SOLID, Dependency Inversion, etc).
Принципиально ничего нового, всё те же слои, вьюмодели, юзкейсы и т.д., но всё же.
Предыдущая статья от автора – How to architect Android apps: a deep dive into principles, not rules
Читать (En)
Продолжение к статье с примером реализации гибкой, современной архитектуры в Android, которая соответствует различным принциам(SOLID, Dependency Inversion, etc).
Принципиально ничего нового, всё те же слои, вьюмодели, юзкейсы и т.д., но всё же.
Предыдущая статья от автора – How to architect Android apps: a deep dive into principles, not rules
Читать (En)
👍13🔥3❤2
Jetpack compose — How to implement Custom Pager Indicators
Еще одна статья с примером реализации кастомных Pager ииндикаторов на Jetpack Compose с различными эффектами анимации.
Читать (En)
Еще одна статья с примером реализации кастомных Pager ииндикаторов на Jetpack Compose с различными эффектами анимации.
Читать (En)
👍9❤3🔥1
Leveraging Kotlin Operator Overloading In Android Clean Architecture Use Case Classes
В статье найдете простой пример применения Kotlin оператора invoke для юзкейсов, что позволит сделать ваш код более лаконичным.
А если поиграться с неймингом, могут получиться весьма красивые вызовы. Что-нибудь типа 👇
и затем вызываем –
Читать (En)
В статье найдете простой пример применения Kotlin оператора invoke для юзкейсов, что позволит сделать ваш код более лаконичным.
А если поиграться с неймингом, могут получиться весьма красивые вызовы. Что-нибудь типа 👇
val getUserProfile: GetUserProfileUseCase…и затем вызываем –
getUserProfile()Читать (En)
❤5👍3👎1🔥1👏1
Kotlin 1.9.0 Released
Там это, Kotlin 1.9.0 зарелизился.
• New Kotlin K2 compiler updates
• Stable replacement of the enum class values
function
• Stable ..< operator for open-ended ranges
• New common function to get regex capture group
by name
• New path utility to create parent directories
• Preview of Gradle configuration cache in
Kotlin Multiplatform
• Changes for Android target support in
Kotlin Multiplatform
• Preview of custom memory allocator in
Kotlin/Native
• Library linkage in Kotlin/Native
• Size-related optimizations in Kotlin/Wasm
Читать (En)
Там это, Kotlin 1.9.0 зарелизился.
• New Kotlin K2 compiler updates
• Stable replacement of the enum class values
function
• Stable ..< operator for open-ended ranges
• New common function to get regex capture group
by name
• New path utility to create parent directories
• Preview of Gradle configuration cache in
Kotlin Multiplatform
• Changes for Android target support in
Kotlin Multiplatform
• Preview of custom memory allocator in
Kotlin/Native
• Library linkage in Kotlin/Native
• Size-related optimizations in Kotlin/Wasm
Читать (En)
👍9❤3🔥3👏1🤔1🤮1
Kotlin Enums — Replace values() with entries
В Kotlin 1.9.0 на замену
В чём отличия можно почитать в статье.
Читать (En)
В Kotlin 1.9.0 на замену
values() в Enum пришло property entries.В чём отличия можно почитать в статье.
Читать (En)
👍14🔥4🤔2
Как я перестал волноваться и полюбил ошибки в Kotlin корутинах: Мифы обработки ошибок в корутинах
Объяснения и правила которые помогут проще разобраться как работает механизм обработки ошибок в корутинах.
Читать (Ru)
Объяснения и правила которые помогут проще разобраться как работает механизм обработки ошибок в корутинах.
Читать (Ru)
🔥17👍3👏1
Делаем эмулятор Android через Terminal
Пошаговый гайд как работать с эмулятором через терминал.
👉 Установка инструментов
👉 Создание шаблона
👉 Создание эмулятора
👉 Конфигурация
👉 Запуск
Читать (Ru)
Пошаговый гайд как работать с эмулятором через терминал.
👉 Установка инструментов
👉 Создание шаблона
👉 Создание эмулятора
👉 Конфигурация
👉 Запуск
Читать (Ru)
👍13🔥2🤔1
10 Questions and Answers about ViewModels in Android
10 часто задаваемых вопросов на собесах про ViewModel.
👉 What is a ViewModel?
👉 How does a ViewModel differ from an Activity or Fragment?
👉 How do I create a ViewModel?
👉 What is the purpose of a ViewModelFactory?
👉 How do ViewModels communicate with Activities or Fragments?
👉 Can ViewModels hold references to the Context?
👉 How do ViewModels handle configuration changes?
👉 Can I share data between multiple Fragments using a ViewModel?
👉 Can I test ViewModels?
👉 Can ViewModels replace the need for saving data in onSaveInstanceState()?
Читать (En)
10 часто задаваемых вопросов на собесах про ViewModel.
👉 What is a ViewModel?
👉 How does a ViewModel differ from an Activity or Fragment?
👉 How do I create a ViewModel?
👉 What is the purpose of a ViewModelFactory?
👉 How do ViewModels communicate with Activities or Fragments?
👉 Can ViewModels hold references to the Context?
👉 How do ViewModels handle configuration changes?
👉 Can I share data between multiple Fragments using a ViewModel?
👉 Can I test ViewModels?
👉 Can ViewModels replace the need for saving data in onSaveInstanceState()?
Читать (En)
🔥10👍4❤1
Храним краску с умом: как организовать ресурсы в многомодульном проекте
Разбор нескольких способов организации хранения ресурсов в многомодульных проектах.
Тулза для автоэкспорта ресурсов из Figma → FigmaExport
Пример кода → Brandbook-sample
Читать (Ru)
Разбор нескольких способов организации хранения ресурсов в многомодульных проектах.
Тулза для автоэкспорта ресурсов из Figma → FigmaExport
Пример кода → Brandbook-sample
Читать (Ru)
👍10❤1👎1🔥1🤔1
От потоков к корутинам: как и почему видоизменились примитивы синхронизации в языке Kotlin. Часть 1.
Разбор изменений реализации примитивов синхронизации из стандартной библиотеки Java и пакета
Какие реализации примитивов синхронизации потоков актуальны в контексте корутин, а какие надо использовать с осторожностью и готовность текущих решений к использованию в Kotlin Multiplatform.
В статье рассматриваются
👉 Критические секции
👉 Атомарные переменные
👉 Реактивные переменные
👉 Барьерная синхронизация
Читать (Ru)
Разбор изменений реализации примитивов синхронизации из стандартной библиотеки Java и пакета
java.util.concurrent для Kotlin Coroutines и для языка Kotlin в целом.Какие реализации примитивов синхронизации потоков актуальны в контексте корутин, а какие надо использовать с осторожностью и готовность текущих решений к использованию в Kotlin Multiplatform.
В статье рассматриваются
👉 Критические секции
👉 Атомарные переменные
👉 Реактивные переменные
👉 Барьерная синхронизация
Читать (Ru)
👍21🔥9👎2❤1🥴1