Kurozora - это универсальный портал для всего, связанного с аниме. Приложение дает вам доступ к огромному каталогу аниме, манги и игр. Оно разработано таким образом, чтобы быть отзывчивым, поддерживающим любые экраны, подстраивающимся в своей теме под любого пользователя. Внутри Swift, SwiftLint, R.swift и Jazzy и собственный KurozoraKit для работы, собственно, с API сайта.
Kurozora на GitHub: https://github.com/Kurozora/kurozora-app
Платформа: iOS
⭐️: 57
Kurozora на GitHub: https://github.com/Kurozora/kurozora-app
Платформа: iOS
⭐️: 57
👍2
Осваиваем дебаунсинг в iOS с помощью Swift
В современном iOS-разработке дебаунсинг — это ключ к созданию отзывчивых и производительных приложений. Он позволяет контролировать частоту выполнения функций, особенно при частых пользовательских взаимодействиях, таких как ввод текста или нажатие кнопок.
Дебаунсинг — это техника, при которой выполнение функции откладывается до тех пор, пока не пройдет определенное время после последнего вызова. Это особенно полезно для предотвращения избыточных вызовов функций, например, при каждом вводе символа в поле поиска.
Статья: https://medium.com/@connect2ayu/mastering-debouncers-in-ios-with-swift-prevent-unnecessary-work-with-elegance-7e04e46641d7
Платформа: iOS
👏: 40
В современном iOS-разработке дебаунсинг — это ключ к созданию отзывчивых и производительных приложений. Он позволяет контролировать частоту выполнения функций, особенно при частых пользовательских взаимодействиях, таких как ввод текста или нажатие кнопок.
Дебаунсинг — это техника, при которой выполнение функции откладывается до тех пор, пока не пройдет определенное время после последнего вызова. Это особенно полезно для предотвращения избыточных вызовов функций, например, при каждом вводе символа в поле поиска.
Статья: https://medium.com/@connect2ayu/mastering-debouncers-in-ios-with-swift-prevent-unnecessary-work-with-elegance-7e04e46641d7
Платформа: iOS
👏: 40
👍2
От дашбордов к более глубокому пониманию: улучшите качество и производительность приложений с помощью новых сведений Play Console
Google представила обновления в Play Console, направленные на улучшение качества приложений и удобство работы разработчиков. Вот ключевые нововведения:
• Обновлённый дашборд
• Новые метрики для повышения качества
• Центр уведомлений
Статья: https://apptractor.ru/info/articles/ot-dashbordov-k-bolee-glubokomu-ponimaniyu-prilozheniy-obnovleniya-play-console.html
Платформа: Android
Google представила обновления в Play Console, направленные на улучшение качества приложений и удобство работы разработчиков. Вот ключевые нововведения:
• Обновлённый дашборд
• Новые метрики для повышения качества
• Центр уведомлений
Статья: https://apptractor.ru/info/articles/ot-dashbordov-k-bolee-glubokomu-ponimaniyu-prilozheniy-obnovleniya-play-console.html
Платформа: Android
❤1
Swift Reduce: объединение элементов в одно значение
Метод Swift reduce позволяет получить одно объединенное значение из коллекции элементов. Вы можете использовать его для преобразования массива в словарь, а другой распространенный пример - суммирование чисел. Это введение должно пробудить ваш интерес к reduce.
Статья: https://apptractor.ru/info/articles/reduce.html
Платформа: iOS
Метод Swift reduce позволяет получить одно объединенное значение из коллекции элементов. Вы можете использовать его для преобразования массива в словарь, а другой распространенный пример - суммирование чисел. Это введение должно пробудить ваш интерес к reduce.
Статья: https://apptractor.ru/info/articles/reduce.html
Платформа: iOS
😁2🫡1
Как Gojek в 3 раза ускорил iOS-сборки с помощью Bazel
Когда проект разрастается до сотни модулей, сборка становится болью. В Gojek она занимала до 35 минут на CI. Команда решила кардинально изменить подход — и перешла на Bazel, build-систему от Google.
Вот что у них получилось:
✅ Сборка в CI: с 35 до 10–15 минут
✅ Локальная сборка: всего 30–45 секунд
✅ Плюс — стабильность, кэш, и меньше сюрпризов от Xcode
🧠 Путь был непростой:
• Постепенная миграция модулей
• Генерация BUILD-файлов
• Настройка удалённого кэша
• Переход на инкрементальную сборку
В итоге: меньше времени на ожидание — больше времени на разработку.
Статья: https://medium.com/gojekengineering/gojeks-journey-to-3x-faster-ios-builds-with-bazel-90fbe3f22f81
Платформа: iOS
👏: 56
👍 если хотите русский перевод
Когда проект разрастается до сотни модулей, сборка становится болью. В Gojek она занимала до 35 минут на CI. Команда решила кардинально изменить подход — и перешла на Bazel, build-систему от Google.
Вот что у них получилось:
✅ Сборка в CI: с 35 до 10–15 минут
✅ Локальная сборка: всего 30–45 секунд
✅ Плюс — стабильность, кэш, и меньше сюрпризов от Xcode
🧠 Путь был непростой:
• Постепенная миграция модулей
• Генерация BUILD-файлов
• Настройка удалённого кэша
• Переход на инкрементальную сборку
В итоге: меньше времени на ожидание — больше времени на разработку.
Статья: https://medium.com/gojekengineering/gojeks-journey-to-3x-faster-ios-builds-with-bazel-90fbe3f22f81
Платформа: iOS
👏: 56
👍 если хотите русский перевод
🔥2
runCatching против try-catch в Kotlin — кто кого?
Если ты пишешь на Kotlin, то наверняка задавался вопросом: стоит ли переходить с классического
Полный разбор с примерами в этой статье.
Статья: https://proandroiddev.com/runcatching-vs-try-catch-in-kotlin-a-comprehensive-error-handling-comparison-e2f7611f0dc1
Платформа: Android
👏: 61
👍 если хотите русский перевод
Если ты пишешь на Kotlin, то наверняка задавался вопросом: стоит ли переходить с классического
try-catch на модный runCatching?Полный разбор с примерами в этой статье.
Статья: https://proandroiddev.com/runcatching-vs-try-catch-in-kotlin-a-comprehensive-error-handling-comparison-e2f7611f0dc1
Платформа: Android
👏: 61
👍 если хотите русский перевод
🤔2🔥1
Forwarded from Mobile Development by AppTractor
☕️Стажировка на SDET android в Kaspersky
Открыт набор на оплачиваемую стажировку SafeBoard — прямо сейчас мы ищем SDET Android и iOS developer’ов. Возможно, это именно тот шанс, которого ты ждал, чтобы стартовать в IT!
Тебя ждет работа над реальными проектами в крутой команде, зарплата, компенсация питания, а также спортзал в офисе, сауна, игровые комнаты, кофейные паузы и многое другое 😇
Присоединяйся, если ты учишься в вузе в Москве/МО на любом курсе, кроме выпускного, или в Школе 21 и сможешь работать от 20 часов в неделю.
Переходи на следующий уровень, регистрируйся https://kas.pr/z7er?erid=2W5zFGRfhaQ
Реклама. Рекламодатель АО «Лаборатория Касперского» ИНН 7713140469
Открыт набор на оплачиваемую стажировку SafeBoard — прямо сейчас мы ищем SDET Android и iOS developer’ов. Возможно, это именно тот шанс, которого ты ждал, чтобы стартовать в IT!
Тебя ждет работа над реальными проектами в крутой команде, зарплата, компенсация питания, а также спортзал в офисе, сауна, игровые комнаты, кофейные паузы и многое другое 😇
Присоединяйся, если ты учишься в вузе в Москве/МО на любом курсе, кроме выпускного, или в Школе 21 и сможешь работать от 20 часов в неделю.
Переходи на следующий уровень, регистрируйся https://kas.pr/z7er?erid=2W5zFGRfhaQ
Реклама. Рекламодатель АО «Лаборатория Касперского» ИНН 7713140469
Simple String Resources Obfuscation - проект демонстрирует простой метод обфускации константных строк в коде модулей Android (приложений, библиотек). Подход основан на создании сгенерированного набора исходных текстов
Simple String Resources Obfuscation на GitHub: https://github.com/theredsunrise/SimpleStringResourcesObfuscation
Платформа: Android
⭐️: 4
obfuscate с модифицированным кодом, полученным из набора исходных текстов develop, который предназначен для обычной разработки. Различные модификации кода для исходного набора obfuscate обрабатываются с помощью скриптов Gradle. В этом случае шифруются строковые ресурсы в формате <string ...>...</string>. Элементы, которые не должны шифроваться скриптами, могут быть помечены атрибутом skip: <string skip=«true» ...>...</string>.Simple String Resources Obfuscation на GitHub: https://github.com/theredsunrise/SimpleStringResourcesObfuscation
Платформа: Android
⭐️: 4
❤1
Тестирование Android-приложений в масштабе Netflix
В статье рассказывается о том, как команда Netflix тестирует своё Android-приложение, насчитывающее более миллиона строк кода и поддерживающее более 400 модулей.
Ключевые моменты статьи:
• Эволюция приложения: Изначально приложение было гибридным (native + WebView), но из-за проблем с производительностью и сложности создания нативного интерфейса было полностью переписано на нативный код. Сейчас команда постепенно переводит приложение на Jetpack Compose.
• Структура команды: Ранее существовала отдельная команда SDET (Software Developer Engineer in Test), которая занималась написанием автоматических тестов. Сейчас ответственность за тестирование распределена между командами разработчиков, при этом два SDET-инженера продолжают поддерживать команды при необходимости.
• Многообразие устройств: Приложение поддерживает широкий спектр устройств, включая устройства с низкой производительностью (например, Android Go) и складные смартфоны. Это требует обширного тестирования на физических устройствах.
• Тестовая пирамида: Хотя идеальная структура тестирования представляет собой пирамиду (юнит-тесты в основании, затем интеграционные и UI-тесты), в реальности структура напоминает песочные часы из-за зависимости от тестирования на физических устройствах и наличия устаревшего кода.
• Инструменты для тестирования: Для юнит-тестирования используются такие инструменты, как Strikt (для промисов), Turbine (для тестирования Kotlin Flows), Mockito (для создания моков), Hilt (для внедрения зависимостей) и Robolectric (для тестирования бизнес-логики, взаимодействующей с Android).
Эта статья предоставляет ценные инсайты о масштабировании тестирования в крупном Android-приложении и может быть полезна как для инженеров по тестированию, так и для разработчиков.
Статья: https://apptractor.ru/info/articles/testirovanie-android-prilozheniy-v-masshtabe-netflix.html
Платформа: Android/тестирование
В статье рассказывается о том, как команда Netflix тестирует своё Android-приложение, насчитывающее более миллиона строк кода и поддерживающее более 400 модулей.
Ключевые моменты статьи:
• Эволюция приложения: Изначально приложение было гибридным (native + WebView), но из-за проблем с производительностью и сложности создания нативного интерфейса было полностью переписано на нативный код. Сейчас команда постепенно переводит приложение на Jetpack Compose.
• Структура команды: Ранее существовала отдельная команда SDET (Software Developer Engineer in Test), которая занималась написанием автоматических тестов. Сейчас ответственность за тестирование распределена между командами разработчиков, при этом два SDET-инженера продолжают поддерживать команды при необходимости.
• Многообразие устройств: Приложение поддерживает широкий спектр устройств, включая устройства с низкой производительностью (например, Android Go) и складные смартфоны. Это требует обширного тестирования на физических устройствах.
• Тестовая пирамида: Хотя идеальная структура тестирования представляет собой пирамиду (юнит-тесты в основании, затем интеграционные и UI-тесты), в реальности структура напоминает песочные часы из-за зависимости от тестирования на физических устройствах и наличия устаревшего кода.
• Инструменты для тестирования: Для юнит-тестирования используются такие инструменты, как Strikt (для промисов), Turbine (для тестирования Kotlin Flows), Mockito (для создания моков), Hilt (для внедрения зависимостей) и Robolectric (для тестирования бизнес-логики, взаимодействующей с Android).
Эта статья предоставляет ценные инсайты о масштабировании тестирования в крупном Android-приложении и может быть полезна как для инженеров по тестированию, так и для разработчиков.
Статья: https://apptractor.ru/info/articles/testirovanie-android-prilozheniy-v-masshtabe-netflix.html
Платформа: Android/тестирование
❤1
This media is not supported in your browser
VIEW IN TELEGRAM
ToastKit - это легкий и полностью настраиваемый Swift-пакет, который поможет вам отображать информационные тосты в вашем приложении. Он прост в использовании, поддерживает различные встроенные стили, такие как success, warning, info, error, с иконками и т.п., а также позволяет полностью настраивать их под ваши нужды.
ToastKit на GitHub: https://github.com/Desp0o/ToastKit
Платформа: iOS
⭐️: 19
ToastKit на GitHub: https://github.com/Desp0o/ToastKit
Платформа: iOS
⭐️: 19
👍1
Сканирование баркодов c помощью камеры и внешних устройств в Compose
В этой статье рассмотрим, как сканировать баркоды в Android- приложениях, как в Compose работать с камерой (предпросмотр и логика сканирования), а также как поддерживать внешние сканеры, в ситуациях, когда сканирование происходит без камеры и мы не управляем источником результата
Статья: https://habr.com/ru/companies/sberbank/articles/901630/
Платформа: Android
В этой статье рассмотрим, как сканировать баркоды в Android- приложениях, как в Compose работать с камерой (предпросмотр и логика сканирования), а также как поддерживать внешние сканеры, в ситуациях, когда сканирование происходит без камеры и мы не управляем источником результата
Статья: https://habr.com/ru/companies/sberbank/articles/901630/
Платформа: Android
❤1
•
(iOS Ru) От модуляризации к Clang и обратно•
(iOS Ru) Суперапп с чистого листа•
(iOS Ru) SwiftUI Network Observer - Network Monitor•
(iOS En) Animated Redacted Modifier - SwiftUI•
(iOS En) Crafting Effective SwiftUI ViewModifiers•
(iOS En) SwiftUI Skeleton View - Skeleton Loading Animations•
(And Ru) Универсальное демоприложение•
(And Ru) Не два байта переслать: эмуляция бесконтактных карт на мобильных устройствах•
(And Ru) Архитектурное собеседование Android разработчика (все собеседования)•
(And En) Clean Architecture: The ONE Change That Transforms Use Cases From Terrible to Super Useful•
(And En) Troubleshooting Gradle and Maven builds with Develocity•
(Crs Ru) Как Kotlin Multiplatform изменил наши процессы•
(Crs En) Build an agent-powered travel planning app with Generative AI•
(Crs En) React Native Isn't as Popular as You Think•
(Crs En) Vibe Coding an Online Card Game with Flutter•
(Dev Ru) Fusion, или Как мы реализовали нашу версию BDUI•
(Dev Ru) Что показали на АврораКонф?•
(Dev Ru) Crystal – это Ruby без недостатков•
(Dev En) Ktor vs. Spring Boot - Which Backend Framework Is Best For Mobile Developers?•
(Dev En) Getting started with Agent Development KitПрошлогодние видео:
•
(iOS Ru) А так ли нужна Swift Modern Concurrency?•
(iOS Ru) Мгновенный фидбэк: как оперативно получать отзывы о приложении в App Store•
(And Ru) Устройство Android Music SDK или как мы встроили музыку в суперапп-приложение•
(And Ru) Интеграция MediaPipe в Android-приложение видеоконференцсвязи•
(Dev Ru) Инженерная культура BigTech: работа мечты или испытание на прочность?•
(Dev Ru) Как устроена мобильная разработка в Кинопоиске•
(Dev Ru) Пробить стеклянный потолок и стать сеньоромPlease open Telegram to view this post
VIEW IN TELEGRAM
👍1
Расширенные архитектурные правила в SwiftLint
В статье автор сначала троллит идею использования SwiftLint для архитектурных проверок. Но потом внезапно... показывает, как это можно реально реализовать.
Это не совсем production-ready подход, но зато классный способ:
• Навести архитектурный порядок в проекте
• Поиграться с автоматизацией через статический анализ
Статья с юмором, но с полезными идеями. Особенно для тех, кто хочет держать архитектуру под контролем, а не полагаться только на ревью.
Статья: https://itnext.io/advance-architectural-rules-in-swiftlint-just-kidding-80ac5e5a911d
Платформа: iOS
👏: 194
👍 если хотите русский перевод
В статье автор сначала троллит идею использования SwiftLint для архитектурных проверок. Но потом внезапно... показывает, как это можно реально реализовать.
Это не совсем production-ready подход, но зато классный способ:
• Навести архитектурный порядок в проекте
• Поиграться с автоматизацией через статический анализ
Статья с юмором, но с полезными идеями. Особенно для тех, кто хочет держать архитектуру под контролем, а не полагаться только на ревью.
Статья: https://itnext.io/advance-architectural-rules-in-swiftlint-just-kidding-80ac5e5a911d
Платформа: iOS
👏: 194
👍 если хотите русский перевод
👍5
AppFiles - Mobile Development
Расширенные архитектурные правила в SwiftLint В статье автор сначала троллит идею использования SwiftLint для архитектурных проверок. Но потом внезапно... показывает, как это можно реально реализовать. Это не совсем production-ready подход, но зато классный…
А вот и он: https://apptractor.ru/info/articles/rasshirennye-arhitekturnye-pravila-v-swiftlint.html
Но это только первая часть с основами, практика будет, как пишут, во второй части.
Но это только первая часть с основами, практика будет, как пишут, во второй части.
👍1
Learn Kotlin Flow - проект для тех, кто хочет начать работать с Kotlin Flow. Автор собрал практические примеры того, как использовать потоки в реальных приложениях. Плюс у него есть блог, где он публикует статьи о работе с Flow.
Learn Kotlin Flow на GitHub: https://github.com/amitshekhariitbhu/Learn-Kotlin-Flow
Платформа: Android
⭐️: 478
Learn Kotlin Flow на GitHub: https://github.com/amitshekhariitbhu/Learn-Kotlin-Flow
Платформа: Android
⭐️: 478
❤1
Как работает Robolectric и почему это важно знать
Представьте, что можно тестировать android-код без эмулятора, запуская тесты за секунды вместо минут. Именно это обещает Robolectric — библиотека, которую либо любят, либо ненавидят, но точно не игнорируют.
За кажущейся простотой «просто добавь зависимость» скрывается удивительная магия модификации байткода, о которой не рассказывают в статьях. Предлагаю разобраться, как на самом деле работает магия Robolectric и почему эти знания пригодятся любому android-разработчику.
Статья: https://habr.com/ru/companies/tbank/articles/902180/
Платформа: Android/тестирование
Представьте, что можно тестировать android-код без эмулятора, запуская тесты за секунды вместо минут. Именно это обещает Robolectric — библиотека, которую либо любят, либо ненавидят, но точно не игнорируют.
За кажущейся простотой «просто добавь зависимость» скрывается удивительная магия модификации байткода, о которой не рассказывают в статьях. Предлагаю разобраться, как на самом деле работает магия Robolectric и почему эти знания пригодятся любому android-разработчику.
Статья: https://habr.com/ru/companies/tbank/articles/902180/
Платформа: Android/тестирование
❤1
Архитектурный линтинг для Swift: часть 2
Продолжение первой статьи - автор рассказывает про сделанный ими Harmonize, первый архитектурный линтер для Swift. Harmonize позволяет внедрить любое архитектурное или структурное правило линтинга всего в нескольких строках кода, не требуя крутого обучения или мастерского владения регулярными выражениями. В отличие от SwiftLint, правила линтинга просто пишутся в виде юнит-тестов, а не регулярных выражений, и каждое правило имеет полный доступ к вашей кодовой базе (и AST) с помощью удобного, идиоматического DSL. Точно так же, как вы написали бы тест для функции вашего приложения, теперь вы пишете тесты и делаете утверждения об архитектуре вашего кода.
Статья: https://apptractor.ru/info/articles/arhitekturnyy-linting-dlya-swift-chast-2.html
Платформа: iOS
Продолжение первой статьи - автор рассказывает про сделанный ими Harmonize, первый архитектурный линтер для Swift. Harmonize позволяет внедрить любое архитектурное или структурное правило линтинга всего в нескольких строках кода, не требуя крутого обучения или мастерского владения регулярными выражениями. В отличие от SwiftLint, правила линтинга просто пишутся в виде юнит-тестов, а не регулярных выражений, и каждое правило имеет полный доступ к вашей кодовой базе (и AST) с помощью удобного, идиоматического DSL. Точно так же, как вы написали бы тест для функции вашего приложения, теперь вы пишете тесты и делаете утверждения об архитектуре вашего кода.
Статья: https://apptractor.ru/info/articles/arhitekturnyy-linting-dlya-swift-chast-2.html
Платформа: iOS
👍2
Как правильно обрабатывать UI-события в Kotlin ViewModel
Если вы когда-либо пытались показать Toast, Snackbar или осуществить навигацию между экранами из ViewModel — вы знаете, насколько это может быть неудобно. Особенно с LiveData: события могут дублироваться при повороте экрана или при повторной подписке.
В статье описан чистый и удобный способ организации UI-событий с помощью sealed-классов и
Статья: https://vaibhav3011.medium.com/handling-ui-actions-the-right-way-in-kotlin-viewmodels-119a06bb43ef
Платформа: Android
👏: 145
Если вы когда-либо пытались показать Toast, Snackbar или осуществить навигацию между экранами из ViewModel — вы знаете, насколько это может быть неудобно. Особенно с LiveData: события могут дублироваться при повороте экрана или при повторной подписке.
В статье описан чистый и удобный способ организации UI-событий с помощью sealed-классов и
SharedFlow.Статья: https://vaibhav3011.medium.com/handling-ui-actions-the-right-way-in-kotlin-viewmodels-119a06bb43ef
Платформа: Android
👏: 145
👎1
История K2 Mode и как он работает
JetBrains представила K2 Mode — новое поколение поддержки Kotlin в IntelliJ IDEA. Это не просто улучшение, а почти полная переработка архитектуры плагина Kotlin, направленная на повышение стабильности, производительности и поддержку будущих возможностей языка.
K2 Mode — это новый механизм анализа кода Kotlin в IntelliJ IDEA, основанный на интеграции с компилятором K2. В отличие от предыдущей реализации (K1), K2 Mode использует общую семантическую модель как для компилятора, так и для IDE, что обеспечивает более точный и согласованный анализ кода. Это позволяет IDE быстрее и надежнее выполнять подсветку синтаксиса, автодополнение, рефакторинг и другие функции.
Ранее JetBrains приходилось поддерживать отдельные реализации анализа кода для компилятора и IDE, что приводило к дублированию усилий и потенциальным несоответствиям. С K2 Mode эта проблема решена: теперь IDE и компилятор "понимают" язык одинаково. Это особенно важно для поддержки новых возможностей Kotlin 2.0 и выше.
Статья: https://blog.jetbrains.com/idea/2025/04/the-story-behind-k2-mode-and-how-it-works/
Платформа: Android
JetBrains представила K2 Mode — новое поколение поддержки Kotlin в IntelliJ IDEA. Это не просто улучшение, а почти полная переработка архитектуры плагина Kotlin, направленная на повышение стабильности, производительности и поддержку будущих возможностей языка.
K2 Mode — это новый механизм анализа кода Kotlin в IntelliJ IDEA, основанный на интеграции с компилятором K2. В отличие от предыдущей реализации (K1), K2 Mode использует общую семантическую модель как для компилятора, так и для IDE, что обеспечивает более точный и согласованный анализ кода. Это позволяет IDE быстрее и надежнее выполнять подсветку синтаксиса, автодополнение, рефакторинг и другие функции.
Ранее JetBrains приходилось поддерживать отдельные реализации анализа кода для компилятора и IDE, что приводило к дублированию усилий и потенциальным несоответствиям. С K2 Mode эта проблема решена: теперь IDE и компилятор "понимают" язык одинаково. Это особенно важно для поддержки новых возможностей Kotlin 2.0 и выше.
Статья: https://blog.jetbrains.com/idea/2025/04/the-story-behind-k2-mode-and-how-it-works/
Платформа: Android
❤1
SnapshotTestingMacros - тонкая прослойка над Swift Testing и Swift SnapshotTesting, позволяющий делать снепшоты на основе макросов, используя синтаксис, похожий на Swift Testing.
Подобно тому, как в Swift Testing есть
Это позволяет быстро создавать снепшоты, просто помечая функции, возвращающие представления.
В простейшем случае это все, что нужно для снепшот теста:
SnapshotTestingMacros на GitHub: https://github.com/adammcarter/swift-snapshot-testing-macros
Платформа: iOS
⭐️: 31
Подобно тому, как в Swift Testing есть
@Suite и @Test, SnapshotTestingMacros использует @SnapshotSuite и @SnapshotTest для разметки кода.Это позволяет быстро создавать снепшоты, просто помечая функции, возвращающие представления.
В простейшем случае это все, что нужно для снепшот теста:
// ✅ Create a simple snapshot test for some SwiftUI text.
@Suite
@SnapshotSuite
struct MySnapshots {
@SnapshotTest
func myView() -> some View {
Text("Some text")
}
}
SnapshotTestingMacros на GitHub: https://github.com/adammcarter/swift-snapshot-testing-macros
Платформа: iOS
⭐️: 31
👍3