Dejavu: тестирование рекомпозиций для Jetpack Compose
Dejavu преобразует поведение рекомпозиции в тестовые утверждения. Никаких изменений в производственном коде, кроме
Статья: https://apptractor.ru/info/articles/dejavu-testirovanie-rekompozitsiy-dlya-jetpack-compose.html
Платформа: Android
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
Dejavu преобразует поведение рекомпозиции в тестовые утверждения. Никаких изменений в производственном коде, кроме
Modifier.testTag() (который вы, вероятно, уже используете).Статья: https://apptractor.ru/info/articles/dejavu-testirovanie-rekompozitsiy-dlya-jetpack-compose.html
Платформа: Android
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
This media is not supported in your browser
VIEW IN TELEGRAM
Snappy Swipe - упругий swipe to delete
Snappy Swipe - "упругий" способ удаления компонента из списка с помощью свайпа, вдохновленный выразительными уведомлениями Material 3.
Snappy Swipe на GitHub: https://github.com/KlassenKonstantin/SnappySwipe
Платформа: Android
⭐️: 31
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
Snappy Swipe - "упругий" способ удаления компонента из списка с помощью свайпа, вдохновленный выразительными уведомлениями Material 3.
Snappy Swipe на GitHub: https://github.com/KlassenKonstantin/SnappySwipe
Платформа: Android
⭐️: 31
Please open Telegram to view this post
VIEW IN TELEGRAM
🔥2
Пишем декларативный Package.swift: DSL для модульной архитектуры iOS проекта
В этой статье вместо того чтобы рассматривать Package.swift как простой конфигурационный файл, превратим его в типобезопасный DSL для модульной архитектуры.
Статья: https://habr.com/ru/articles/1010564/
Платформа: iOS
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
В этой статье вместо того чтобы рассматривать Package.swift как простой конфигурационный файл, превратим его в типобезопасный DSL для модульной архитектуры.
Статья: https://habr.com/ru/articles/1010564/
Платформа: iOS
Please open Telegram to view this post
VIEW IN TELEGRAM
Несколько мобильных приложений в одном Appium‑проекте: как это можно организовать
В статье покажу:
• как запускать тесты для нескольких мобильных приложений в одном Appium-проекте
• как выбирать приложение через аннотацию
• как сделать потокобезопасный фреймворк
• как избежать дублирования кода
Статья: https://habr.com/ru/articles/1010216/
Платформа: Android
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
В статье покажу:
• как запускать тесты для нескольких мобильных приложений в одном Appium-проекте
• как выбирать приложение через аннотацию
• как сделать потокобезопасный фреймворк
• как избежать дублирования кода
Статья: https://habr.com/ru/articles/1010216/
Платформа: Android
Please open Telegram to view this post
VIEW IN TELEGRAM
Встроенный фото-пикер в Jetpack Compose
Встроенный фото-пикер — это не «кастомный интерфейс галереи». Это системный инструмент выбора фотографий, отображаемый внутри вашей иерархии UI, обладающий теми же свойствами безопасности и конфиденциальности, что и классический инструмент выбора, поскольку система отрисовывает его в выделенном SurfaceView (внутренне подключаемом через
Статья: https://apptractor.ru/info/articles/vstroennyy-foto-piker.html
Платформа: Android
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
Встроенный фото-пикер — это не «кастомный интерфейс галереи». Это системный инструмент выбора фотографий, отображаемый внутри вашей иерархии UI, обладающий теми же свойствами безопасности и конфиденциальности, что и классический инструмент выбора, поскольку система отрисовывает его в выделенном SurfaceView (внутренне подключаемом через
SurfaceView.setChildSurfacePackage). Именно это архитектурное решение открывает ключевой сдвиг в продукте: пользователь остается на вашем экране во время просмотра и выбора, а ваше приложение может реагировать на обновления выбора в реальном времени, поскольку ваша активити остается рабочей.Статья: https://apptractor.ru/info/articles/vstroennyy-foto-piker.html
Платформа: Android
Please open Telegram to view this post
VIEW IN TELEGRAM
Внедряем Yandex MapKit SDK в SwiftUI приложение. Пишем Demo проект
Сегодня я поделюсь с вами пошаговым планом создания демо приложения на SwiftUI с использованием Yandex MapKit SDK.
Статья: https://habr.com/ru/articles/1010642/
Платформа: iOS
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
Сегодня я поделюсь с вами пошаговым планом создания демо приложения на SwiftUI с использованием Yandex MapKit SDK.
Статья: https://habr.com/ru/articles/1010642/
Платформа: iOS
Please open Telegram to view this post
VIEW IN TELEGRAM
👎1
Copy-On-Write в Swift: семантика, заблуждения и кастомная реализация
Понимание того, как работает этот механизм, дает практические преимущества. Оно проясняет, как коллекции Swift достигают своих характеристик производительности, улучшает понимание поведения памяти и позволяет проектировать пользовательские структуры данных, которые сочетают семантику значений с эффективным управлением памятью.
В этой статье рассматривается проектирование хранилища с механизмом копирования при записи в Swift, модели мышления, которые разработчики часто используют при рассуждениях об этом, и практическая реализация пользовательского контейнера COW.
Статья: https://apptractor.ru/info/articles/copy-on-write-v-swift-semantika-zabluzhdeniya-i-kastomnaya-realizatsiya.html
Платформа: iOS
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
Понимание того, как работает этот механизм, дает практические преимущества. Оно проясняет, как коллекции Swift достигают своих характеристик производительности, улучшает понимание поведения памяти и позволяет проектировать пользовательские структуры данных, которые сочетают семантику значений с эффективным управлением памятью.
В этой статье рассматривается проектирование хранилища с механизмом копирования при записи в Swift, модели мышления, которые разработчики часто используют при рассуждениях об этом, и практическая реализация пользовательского контейнера COW.
Статья: https://apptractor.ru/info/articles/copy-on-write-v-swift-semantika-zabluzhdeniya-i-kastomnaya-realizatsiya.html
Платформа: iOS
Please open Telegram to view this post
VIEW IN TELEGRAM
This media is not supported in your browser
VIEW IN TELEGRAM
NVActivityIndicatorView - индиакторы загрузки
NVActivityIndicatorView - коллекция потрясающих анимаций загрузки. Больше 30 вариантов показать, что ваш контент загружается.
NVActivityIndicatorView на GitHub: https://github.com/ninjaprox/NVActivityIndicatorView
Платформа: iOS
⭐️: 10.7K
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
NVActivityIndicatorView - коллекция потрясающих анимаций загрузки. Больше 30 вариантов показать, что ваш контент загружается.
NVActivityIndicatorView на GitHub: https://github.com/ninjaprox/NVActivityIndicatorView
Платформа: iOS
⭐️: 10.7K
Please open Telegram to view this post
VIEW IN TELEGRAM
Ой, всё упало: 4+ способа достать креш-отчет с iOS-приложения
Если привести аналогии, то логи — это жалобная книга, а креш‑отчет — это заключение судмедэксперта. В нём написано точное время смерти, причина и состояние памяти устройства в последний момент жизни приложения.
Для тестировщиков поймать креш и не допустить его до прода — это как для сапёра обезвредить мину раньше, чем на неё наступят. Работу можно сделать и после взрыва, но цена вопроса уже совсем другая. Сегодня я расскажу о 4+ проверенных способах собрать информацию о креше: от уже знакомых нам способов из предыдущей статьи до продвинутых систем мониторинга.
Статья: https://habr.com/ru/articles/1011212/
Платформа: iOS
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
Если привести аналогии, то логи — это жалобная книга, а креш‑отчет — это заключение судмедэксперта. В нём написано точное время смерти, причина и состояние памяти устройства в последний момент жизни приложения.
Для тестировщиков поймать креш и не допустить его до прода — это как для сапёра обезвредить мину раньше, чем на неё наступят. Работу можно сделать и после взрыва, но цена вопроса уже совсем другая. Сегодня я расскажу о 4+ проверенных способах собрать информацию о креше: от уже знакомых нам способов из предыдущей статьи до продвинутых систем мониторинга.
Статья: https://habr.com/ru/articles/1011212/
Платформа: iOS
Please open Telegram to view this post
VIEW IN TELEGRAM
Как заставить Android Studio ругаться на код по вашим правилам: создаем пользовательские Lint и Detekt
Сегодня поговорим о том, как заставить Android Studio самостоятельно следить за порядком в коде – без ручных проверок и без вечных напоминаний в командном чате.
Статья: https://habr.com/ru/companies/sovcombank_technologies/articles/1005922/
Платформа: Android
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
Сегодня поговорим о том, как заставить Android Studio самостоятельно следить за порядком в коде – без ручных проверок и без вечных напоминаний в командном чате.
Статья: https://habr.com/ru/companies/sovcombank_technologies/articles/1005922/
Платформа: Android
Please open Telegram to view this post
VIEW IN TELEGRAM
Remote Compose: назад в будущее
«Дороги? Куда мы едем, дороги не нужны».
И, судя по всему, там, куда мы идем, нам не нужны обновления приложений для изменения пользовательского интерфейса. Давайте вернемся в будущее и посмотрим, что может предложить Remote Compose.
Статья: https://apptractor.ru/info/articles/remote-compose-nazad-v-buduschee.html
Платформа: Android
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
«Дороги? Куда мы едем, дороги не нужны».
И, судя по всему, там, куда мы идем, нам не нужны обновления приложений для изменения пользовательского интерфейса. Давайте вернемся в будущее и посмотрим, что может предложить Remote Compose.
Статья: https://apptractor.ru/info/articles/remote-compose-nazad-v-buduschee.html
Платформа: Android
Please open Telegram to view this post
VIEW IN TELEGRAM
Собеседование на должность iOS-разработчика в Experian: когда все пошло не по плану
Иногда собеседования проверяют ваши знания. Иногда они проверяют ваше терпение. Собеседование в Experian? Оно проверяло мою психику.
Если вам когда-нибудь доведется столкнуться с таким интервьюером, вот мой совет:
• Сохраняйте спокойствие. Сумасшедшие интервьюеры проверяют вашу реакцию под давлением.
• Думайте вслух. Даже если вопрос не имеет смысла, покажите свою логику.
• Помните, дело не в вас. Иногда дело просто в интервьюере.
И, по крайней мере, вы уйдете с собеседования с историей, которая рассмешит ваших друзей.
Статья: https://apptractor.ru/info/articles/sobesedovanie-na-dolzhnost-ios-razrabotchika-v-experian-kogda-vse-poshlo-ne-po-planu.html
Платформа: iOS
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
Иногда собеседования проверяют ваши знания. Иногда они проверяют ваше терпение. Собеседование в Experian? Оно проверяло мою психику.
Если вам когда-нибудь доведется столкнуться с таким интервьюером, вот мой совет:
• Сохраняйте спокойствие. Сумасшедшие интервьюеры проверяют вашу реакцию под давлением.
• Думайте вслух. Даже если вопрос не имеет смысла, покажите свою логику.
• Помните, дело не в вас. Иногда дело просто в интервьюере.
И, по крайней мере, вы уйдете с собеседования с историей, которая рассмешит ваших друзей.
Статья: https://apptractor.ru/info/articles/sobesedovanie-na-dolzhnost-ios-razrabotchika-v-experian-kogda-vse-poshlo-ne-po-planu.html
Платформа: iOS
Please open Telegram to view this post
VIEW IN TELEGRAM
👎1
Rebound - мониторинг рекомпозиций
Rebound — это плагин компилятора Kotlin, который инструментирует каждую функцию с аннотацией
Rebound на GitHub: https://github.com/aldefy/compose-rebound
Платформа: Android
⭐️: 41
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
Rebound — это плагин компилятора Kotlin, который инструментирует каждую функцию с аннотацией
@Composable легковесными вызовами отслеживания. Во время выполнения он отслеживает частоту рекомпозиции в соответствии с бюджетами для каждого composable-объекта, обнаруживает нарушения и сообщает о них через окно инструментов Android Studio, CLI или logcat. Работает на Android и iOS (Compose Multiplatform). Настройка не требуется — просто примените плагин Gradle. Плагин IDE предоставляет панель мониторинга производительности с 5 вкладками, включающую мониторинг в реальном времени, ранжирование проблемных мест, тепловую карту временной шкалы, анализ стабильности и историю сессий с корреляцией с системами контроля версий.Rebound на GitHub: https://github.com/aldefy/compose-rebound
Платформа: Android
⭐️: 41
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1😁1
Отладка iOS-приложений на практике: 3 реальных бага
Понимание того, как именно отлаживать приложение, а также знание инструментов, которые есть в вашем распоряжении, или хотя бы осведомлённость о них — это навык, который экономит массу времени и помогает быстрее переходить к следующей задаче. Для меня это стало особенно важно в работе над собственными независимыми приложениями, где ресурсы и время ограничены и нужно использовать их максимально эффективно, не жертвуя качеством пользовательского опыта.
В этой статье я разберу несколько примеров реальных ошибок, которые недавно исправлял в своих приложениях, и шаг за шагом покажу весь процесс отладки в каждом случае.
Статья: https://habr.com/ru/companies/otus/articles/1011532/
Платформа: iOS
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
Понимание того, как именно отлаживать приложение, а также знание инструментов, которые есть в вашем распоряжении, или хотя бы осведомлённость о них — это навык, который экономит массу времени и помогает быстрее переходить к следующей задаче. Для меня это стало особенно важно в работе над собственными независимыми приложениями, где ресурсы и время ограничены и нужно использовать их максимально эффективно, не жертвуя качеством пользовательского опыта.
В этой статье я разберу несколько примеров реальных ошибок, которые недавно исправлял в своих приложениях, и шаг за шагом покажу весь процесс отладки в каждом случае.
Статья: https://habr.com/ru/companies/otus/articles/1011532/
Платформа: iOS
Please open Telegram to view this post
VIEW IN TELEGRAM
Хабр
Отладка iOS-приложений на практике: 3 реальных бага
Разработчики часто не уделяют должного внимания навыку отладки. При этом он полезен не только для исправления ошибок, но и для того, чтобы лучше понимать кодовую базу и язык, на котором вы...
Monkeyrun - хаос-тестирование Android и iOS приложений
Monkeyrun - готовый к использованию кроссплатформенный CLI для мобильного хаотического (обезьяньего) тестирования Android и iOS приложений. Легковесный, удобный для CI/CD, единый исполняемый файл — без Appium, без сложной настройки.
Запускайте хаотические тесты на основе жестов на уже работающих эмуляторах и симуляторах. Обнаруживайте сбои, регистрируйте каждое событие и генерируйте чистый HTML-отчет.
Фичи:
• CLI-first подход —
• Нулевая настройка — работает с существующими устройствами ADB и загруженными симуляторами iOS
• 12 действий — касание, двойное касание, длительное нажатие, свайп, прокрутка, ввод текста, назад, масштабирование, «Домой», очистка текста, поворот
• Умные скриншоты — гибридный захват (интервал, обнаружение изменений пользовательского интерфейса, сбой) с асинхронным пулом рабочих процессов
• Обнаружение сбоев — Android (logcat) и iOS (поток логов simctl) с уровнями серьезности
• HTML-отчет — темная тема в стиле Playwright с временной шкалой, фильтрами, скриншотами, логами
• Воспроизведение — воспроизведение тестового запуска из записанных событий
• Единый исполняемый файл — нет зависимостей от среды выполнения, кросс-компиляция для macOS/Linux/Windows
Monkeyrun на GitHub: https://github.com/ABNclearroute/monkeyrun
Платформа: тестирование
⭐️: 6
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
Monkeyrun - готовый к использованию кроссплатформенный CLI для мобильного хаотического (обезьяньего) тестирования Android и iOS приложений. Легковесный, удобный для CI/CD, единый исполняемый файл — без Appium, без сложной настройки.
Запускайте хаотические тесты на основе жестов на уже работающих эмуляторах и симуляторах. Обнаруживайте сбои, регистрируйте каждое событие и генерируйте чистый HTML-отчет.
Фичи:
• CLI-first подход —
devices, run, report, replay команды• Нулевая настройка — работает с существующими устройствами ADB и загруженными симуляторами iOS
• 12 действий — касание, двойное касание, длительное нажатие, свайп, прокрутка, ввод текста, назад, масштабирование, «Домой», очистка текста, поворот
• Умные скриншоты — гибридный захват (интервал, обнаружение изменений пользовательского интерфейса, сбой) с асинхронным пулом рабочих процессов
• Обнаружение сбоев — Android (logcat) и iOS (поток логов simctl) с уровнями серьезности
• HTML-отчет — темная тема в стиле Playwright с временной шкалой, фильтрами, скриншотами, логами
• Воспроизведение — воспроизведение тестового запуска из записанных событий
• Единый исполняемый файл — нет зависимостей от среды выполнения, кросс-компиляция для macOS/Linux/Windows
Monkeyrun на GitHub: https://github.com/ABNclearroute/monkeyrun
Платформа: тестирование
⭐️: 6
Please open Telegram to view this post
VIEW IN TELEGRAM
•
(iOS En) Threads App Swipe Up To Dismiss Interaction Using SwiftUI•
(iOS En) Backporting iOS 26 Concentric Rectangle for Older iOS Versions•
(iOS En) Build a Searchable, Sortable SwiftUI List with an Index Scrubber•
(iOS En) AppleTV App Animated Carousel Using SwiftUI•
(And Ru) Почему камера в Telegram Android снимает плохо•
(And En) 6 Ways to Make Your Gradle Builds Super Fast•
(Dev Ru) Зачем и как вам контрибьютить в open source•
(Dev Ru) Внутренняя кухня SRE и информационной безопасности•
(Dev Ru) Senior Android за 12 тысяч, рабство в IT и угрозы — Е*аное IT #1•
(Dev Ru) Маленькие языковые модели — Open source, локальный ИИ, SLM•
(Dev Ru) Рынок труда для джунов в 2026 году•
(Dev En) We Don't Need Designers Anymore•
(Dev En) Software Testing Course – Playwright, E2E, and AI AgentsПрошлогодние видео:
•
(iOS Ru) Дивный мир Swift Concurrency•
(iOS Ru) Задачи с собеседований: Leetcode — Недостающее число•
(iOS Ru) Как встроить в TextField индикатор загрузки и кастомную View•
(And Ru) Кастомные лейауты в Jetpack Compose•
(And Ru) Мапим данные из domain в ui модуль в многомодульном проекте•
(Crs Ru) Рецепт приготовления кроссплатформенного мобильного видеоредактора•
(Dev Ru) Собеседование по System Design: проектируем клон АвитоPlease open Telegram to view this post
VIEW IN TELEGRAM