Scyther - инструменты отладки iOS-приложения
Scyther - Комплексный набор инструментов для отладки iOS-приложений, который поможет вам выявлять и устранять ошибки. Scyther предоставляет инструменты для разработчиков, тестировщиков, команд UI/UX и бэкенд-разработчиков.
Среди них:
• Получение информации об устройстве и приложении
• Работы с сетью
• Управление данными (UserDefaults, Keychain и файлы)
• Работы с локацией
• Уведомлениями
• UI/UX (сетка поверх UI, границы представлений, замедленные анимации и т.д.)
Scyther на GitHub: https://github.com/bstillitano/Scyther
Платформа: iOS
⭐️: 113
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
Scyther - Комплексный набор инструментов для отладки iOS-приложений, который поможет вам выявлять и устранять ошибки. Scyther предоставляет инструменты для разработчиков, тестировщиков, команд UI/UX и бэкенд-разработчиков.
Среди них:
• Получение информации об устройстве и приложении
• Работы с сетью
• Управление данными (UserDefaults, Keychain и файлы)
• Работы с локацией
• Уведомлениями
• UI/UX (сетка поверх UI, границы представлений, замедленные анимации и т.д.)
Scyther на GitHub: https://github.com/bstillitano/Scyther
Платформа: iOS
⭐️: 113
Please open Telegram to view this post
VIEW IN TELEGRAM
«Liquid Glass» на iOS 16: шейдеры — легко, а скриншоты — боль
С выходом iOS 26 Apple наконец-то обновила UI. Интерфейсы стали «стеклянными»: физически корректное преломление, жирная хроматическая аберрация, глубокий объем. Мне очень нравится как это выглядит, хотя в использовании, довольно часто, есть вопросы с удобством.
Но есть проблема: этот API (как и все другие новые от Apple) доступен только в новейшей системе. Если ваше приложение должно поддерживать iOS 18, 17 или (не дай бог) 14, то там всё по-старому:
Звучит как вызов и я захотел написать свой Liquid Glass на Metal + SwiftUI для iOS 16, который визуально будет 1-в-1 как нативный в iOS 26. Казалось бы, задача простая: пиши/найди/вайбкодь шейдер, и готово.
Статья: https://habr.com/ru/articles/978924/
Платформа: iOS
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
С выходом iOS 26 Apple наконец-то обновила UI. Интерфейсы стали «стеклянными»: физически корректное преломление, жирная хроматическая аберрация, глубокий объем. Мне очень нравится как это выглядит, хотя в использовании, довольно часто, есть вопросы с удобством.
Но есть проблема: этот API (как и все другие новые от Apple) доступен только в новейшей системе. Если ваше приложение должно поддерживать iOS 18, 17 или (не дай бог) 14, то там всё по-старому:
UIVisualEffectView, который блюрит фон.Звучит как вызов и я захотел написать свой Liquid Glass на Metal + SwiftUI для iOS 16, который визуально будет 1-в-1 как нативный в iOS 26. Казалось бы, задача простая: пиши/найди/вайбкодь шейдер, и готово.
Статья: https://habr.com/ru/articles/978924/
Платформа: iOS
Please open Telegram to view this post
VIEW IN TELEGRAM
От ощущений к цифрам: как мы внедрили метрики перформанса в андроид приложение
В какой-то момент мы поняли: пока перформанс не выражен в цифрах, его невозможно защищать, улучшать и связывать с деньгами. Поэтому мы договорились о наборе метрик, начали стабильно собирать их на устройствах пользователей, и построили понятную систему: меряем → интерпретируем → действуем.
В этой статье я расскажу про важность перформанса на мобильных устройствах, исследования бизнеса о том как перформанс влияет на конверсии, GMV, а также про конкретные метрики и примеры кода как их собирать.
Статья: https://habr.com/ru/articles/978170/
Платформа: Android
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
В какой-то момент мы поняли: пока перформанс не выражен в цифрах, его невозможно защищать, улучшать и связывать с деньгами. Поэтому мы договорились о наборе метрик, начали стабильно собирать их на устройствах пользователей, и построили понятную систему: меряем → интерпретируем → действуем.
В этой статье я расскажу про важность перформанса на мобильных устройствах, исследования бизнеса о том как перформанс влияет на конверсии, GMV, а также про конкретные метрики и примеры кода как их собирать.
Статья: https://habr.com/ru/articles/978170/
Платформа: Android
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2👍1
Tomato - минималистичный Помодоро-таймер для Android
Tomato - это минималистичный Pomodoro таймер для Android, созданный на основе Material 3 Expressive. Внутри Jetpack Navigation 3, Room, Vico для графиков и чартов, MaterialKolor для цветовых схем.
Tomato на GitHub: https://github.com/nsh07/Tomato
Платформа: Android
⭐️: 814
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
Tomato - это минималистичный Pomodoro таймер для Android, созданный на основе Material 3 Expressive. Внутри Jetpack Navigation 3, Room, Vico для графиков и чартов, MaterialKolor для цветовых схем.
Tomato на GitHub: https://github.com/nsh07/Tomato
Платформа: Android
⭐️: 814
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2
Снепшот-тестирование SwiftUI View в legacy-проекте: обходим ограничения
Снепшот-тестирование — один из немногих надёжных способов контролировать визуальную целостность SwiftUI-компонентов. Но что делать, если ваш проект ограничен Xcode 13.3 и Swift 5.6, а большинство компонентов дизайн-системы обёрнуты в UIViewRepresentable?
Меня зовут Денис Третьяков, я iOS-разработчик в ПСБ. В этой статье расскажу, как мы организовали снепшот-тестирование SwiftUI-компонентов в условиях жёстких ограничений, с какими проблемами столкнулись и как их решили.
Статья: https://habr.com/ru/companies/psb/articles/978374/
Платформа: iOS
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
Снепшот-тестирование — один из немногих надёжных способов контролировать визуальную целостность SwiftUI-компонентов. Но что делать, если ваш проект ограничен Xcode 13.3 и Swift 5.6, а большинство компонентов дизайн-системы обёрнуты в UIViewRepresentable?
Меня зовут Денис Третьяков, я iOS-разработчик в ПСБ. В этой статье расскажу, как мы организовали снепшот-тестирование SwiftUI-компонентов в условиях жёстких ограничений, с какими проблемами столкнулись и как их решили.
Статья: https://habr.com/ru/companies/psb/articles/978374/
Платформа: iOS
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
От неработающей к тестируемой навигации в SwiftUI: децентрализованный MVVM подход с координаторами
SwiftUI предоставляет несколько инструментов для управления навигацией, а внедрение NavigationStack и ссылок «значение-цель» улучшило программную навигацию.
Однако в более крупных приложениях стандартная навигация SwiftUI может создавать проблемы с тестируемостью, поддержкой и модульностью. Логика навигации распределена между представлениями, что приводит к связанности и затрудняет поиск кода навигации.
Эти проблемы можно решить путем интеграции координаторов в шаблон MVVM.
Статья: https://apptractor.ru/info/articles/mvvm-coordinator-swiftui.html
Платформа: iOS
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
SwiftUI предоставляет несколько инструментов для управления навигацией, а внедрение NavigationStack и ссылок «значение-цель» улучшило программную навигацию.
Однако в более крупных приложениях стандартная навигация SwiftUI может создавать проблемы с тестируемостью, поддержкой и модульностью. Логика навигации распределена между представлениями, что приводит к связанности и затрудняет поиск кода навигации.
Эти проблемы можно решить путем интеграции координаторов в шаблон MVVM.
Статья: https://apptractor.ru/info/articles/mvvm-coordinator-swiftui.html
Платформа: iOS
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
Tessera - бесконечные узоры из представлений SwiftUI
Tessera — это пакет Swift, который преобразует сгенерированную "плитку", состоящую из произвольных представлений SwiftUI, в бесконечно повторяющийся, плавно перетекающий узор.
Фичи:
• Создавайте повторяющиеся узоры из стандартных представлений SwiftUI.
• Декларативная конфигурация: описание символов, интервалов, плотности и масштаба; размер задается во время рендеринга.
• Равномерный интервал: размещение с учетом формы, позволяющее избежать кластеризации.
• Бесшовное обтекание: края плиток обтекаются тороидально, поэтому узоры повторяются без швов.
• Детерминированный вывод: укажите начальное значение для воспроизводимых макетов; опустите для рандомизации.
• Экспорт: рендеринг в PNG или PDF, совместимый с векторной графикой.
Tessera на GitHub: https://github.com/SwiftedMind/Tessera
Платформа: iOS
⭐️: 86
Tessera — это пакет Swift, который преобразует сгенерированную "плитку", состоящую из произвольных представлений SwiftUI, в бесконечно повторяющийся, плавно перетекающий узор.
Фичи:
• Создавайте повторяющиеся узоры из стандартных представлений SwiftUI.
• Декларативная конфигурация: описание символов, интервалов, плотности и масштаба; размер задается во время рендеринга.
• Равномерный интервал: размещение с учетом формы, позволяющее избежать кластеризации.
• Бесшовное обтекание: края плиток обтекаются тороидально, поэтому узоры повторяются без швов.
• Детерминированный вывод: укажите начальное значение для воспроизводимых макетов; опустите для рандомизации.
• Экспорт: рендеринг в PNG или PDF, совместимый с векторной графикой.
Tessera на GitHub: https://github.com/SwiftedMind/Tessera
Платформа: iOS
⭐️: 86
👍1
TOAD: Kotlin-First архитектурный шаблон, который наконец-то сделал мои ViewModel скучными
Я не ставил перед собой цель создать архитектурный шаблон. Я просто хотел, чтобы мои ViewModel перестали разрастаться до неуправляемых размеров.
TOAD возник из разочарования, итераций и упрямой веры в то, что должен быть лучший способ. Это не революционно — это просто шаблон Команда, продуманно примененный к современной разработке Android/KMP.
Но иногда лучшие решения не революционны. Они просто... правильны.
Ваши ViewModel должны быть скучными. Ваши действия должны быть интересными.
Попробуйте TOAD. Ваше будущее «я» (и ваши рецензенты кода) скажут вам спасибо.
Статья: https://apptractor.ru/develop/toad.html
Платформа: Android
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
Я не ставил перед собой цель создать архитектурный шаблон. Я просто хотел, чтобы мои ViewModel перестали разрастаться до неуправляемых размеров.
TOAD возник из разочарования, итераций и упрямой веры в то, что должен быть лучший способ. Это не революционно — это просто шаблон Команда, продуманно примененный к современной разработке Android/KMP.
Но иногда лучшие решения не революционны. Они просто... правильны.
Ваши ViewModel должны быть скучными. Ваши действия должны быть интересными.
Попробуйте TOAD. Ваше будущее «я» (и ваши рецензенты кода) скажут вам спасибо.
Статья: https://apptractor.ru/develop/toad.html
Платформа: Android
Please open Telegram to view this post
VIEW IN TELEGRAM
👍2
PennyWise AI — трекер расходов на основе SMS
Превратите банковские SMS-сообщения в удобную, доступную для поиска хронологию денежных расходов с помощью встроенного ИИ. 100% конфиденциальность, без обработки в облаке. Удобные категории, распознавание подписок и понятная аналитика. Поддержка более 40 банков в 5 странах с возможностью работы с несколькими валютами.
Стек: MVVM, Jetpack Compose, Room, корутины, Hilt, MediaPipe AI и Material Design 3.
PennyWise AI на GitHub: https://github.com/sarim2000/pennywiseai-tracker
Платформа: Android
⭐️: 300
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
Превратите банковские SMS-сообщения в удобную, доступную для поиска хронологию денежных расходов с помощью встроенного ИИ. 100% конфиденциальность, без обработки в облаке. Удобные категории, распознавание подписок и понятная аналитика. Поддержка более 40 банков в 5 странах с возможностью работы с несколькими валютами.
Стек: MVVM, Jetpack Compose, Room, корутины, Hilt, MediaPipe AI и Material Design 3.
PennyWise AI на GitHub: https://github.com/sarim2000/pennywiseai-tracker
Платформа: Android
⭐️: 300
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
Тепловизор для разработчика: подсвечиваем рекомпозиции прямо в коде
Меня зовут Иван Кузнецов, я Android‑разработчик в Кинопоиске. В прошлой статье я научил Jetpack Compose показывать рекомпозиции в реальном времени, но это был скорее учебный стенд: куча модификаторов, обёрток и примеры, которые нужно готовить вручную.
Я хотел чего‑то более полезного: чтобы IDE сама показывала, какие composable‑функции перерисовываются прямо сейчас, а какие скипаются и какие параметры реально меняются. Нажал Run — и редактор превратился в живую тепловую карту UI.
Ради этого пришлось сделать то, чего нормальные люди обычно избегают: залезть под капот Kotlin Compiler Plugin и научиться внедрять код в промежуточное представление на этапе компиляции, разобраться в битовых масках Compose и поднять TCP‑сервер внутри IntelliJ, чтобы запущенное приложение могло стучаться прямо в IDE.
Так появился Riflesso — плагин, который переносит идею Layout Inspector прямо в редактор кода и делает Compose прозрачным. В этой статье я разберу его архитектуру и покажу, как компилятор, клиентская библиотека и плагин IDE собираются в один инструмент.
Статья: https://habr.com/ru/companies/yandex/articles/978126/
Платформа: Android
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
Меня зовут Иван Кузнецов, я Android‑разработчик в Кинопоиске. В прошлой статье я научил Jetpack Compose показывать рекомпозиции в реальном времени, но это был скорее учебный стенд: куча модификаторов, обёрток и примеры, которые нужно готовить вручную.
Я хотел чего‑то более полезного: чтобы IDE сама показывала, какие composable‑функции перерисовываются прямо сейчас, а какие скипаются и какие параметры реально меняются. Нажал Run — и редактор превратился в живую тепловую карту UI.
Ради этого пришлось сделать то, чего нормальные люди обычно избегают: залезть под капот Kotlin Compiler Plugin и научиться внедрять код в промежуточное представление на этапе компиляции, разобраться в битовых масках Compose и поднять TCP‑сервер внутри IntelliJ, чтобы запущенное приложение могло стучаться прямо в IDE.
Так появился Riflesso — плагин, который переносит идею Layout Inspector прямо в редактор кода и делает Compose прозрачным. В этой статье я разберу его архитектуру и покажу, как компилятор, клиентская библиотека и плагин IDE собираются в один инструмент.
Статья: https://habr.com/ru/companies/yandex/articles/978126/
Платформа: Android
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1👍1
Мобильный разработчик в 2030 году: как он будет выглядеть?
Каждые несколько лет кто-то уверенно заявляет, что «мобильная разработка мертва». Мы слышали это, когда веб-приложения стали адаптивными. Мы слышали это, когда прогрессивные веб-приложения (PWA) были в тренде. Мы слышали это, когда конструкторы приложений на основе ИИ обещали заменить программирование.
И всё же — мобильные разработчики всё ещё существуют в 2025 году, востребованы и продолжают создавать приложения, которыми люди пользуются каждый день.
Так что же произойдёт в 2030 году? Будет ли по-прежнему существовать профессия «мобильный разработчик», или она растворится в более широкой инженерной специальности?
Давайте разберёмся.
Статья: https://apptractor.ru/info/articles/mobilnyy-razrabotchik-v-2030-godu-kak-on-budet-vyglyadet.html
Платформа: разработка
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
Каждые несколько лет кто-то уверенно заявляет, что «мобильная разработка мертва». Мы слышали это, когда веб-приложения стали адаптивными. Мы слышали это, когда прогрессивные веб-приложения (PWA) были в тренде. Мы слышали это, когда конструкторы приложений на основе ИИ обещали заменить программирование.
И всё же — мобильные разработчики всё ещё существуют в 2025 году, востребованы и продолжают создавать приложения, которыми люди пользуются каждый день.
Так что же произойдёт в 2030 году? Будет ли по-прежнему существовать профессия «мобильный разработчик», или она растворится в более широкой инженерной специальности?
Давайте разберёмся.
Статья: https://apptractor.ru/info/articles/mobilnyy-razrabotchik-v-2030-godu-kak-on-budet-vyglyadet.html
Платформа: разработка
Please open Telegram to view this post
VIEW IN TELEGRAM
❤2👍2🤡1
Firebase App Check с Play Integrity API в Android
Когда мы создаём Android-приложение с использованием Firebase, мы думаем, что только наше реальное приложение будет взаимодействовать с сервисами Firebase, такими как Firestore, Realtime Database или Cloud Storage. Но в реальности любой может извлечь ваши ключи Firebase и попытаться получить доступ к вашему бэкэнду, используя поддельные или модифицированные приложения.
Вот тут-то и пригодится Firebase App Check.
Статья: https://apptractor.ru/info/articles/firebase-app-check.html
Платформа: Android
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
Когда мы создаём Android-приложение с использованием Firebase, мы думаем, что только наше реальное приложение будет взаимодействовать с сервисами Firebase, такими как Firestore, Realtime Database или Cloud Storage. Но в реальности любой может извлечь ваши ключи Firebase и попытаться получить доступ к вашему бэкэнду, используя поддельные или модифицированные приложения.
Вот тут-то и пригодится Firebase App Check.
Статья: https://apptractor.ru/info/articles/firebase-app-check.html
Платформа: Android
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
FengNiao - очистка неиспользуемых ресурсов в Xcode-проекте
FengNiao — это простая утилита командной строки для удаления неиспользуемых файлов графических ресурсов из вашего проекта Xcode.
Программа просканирует текущий проект и все его подпапки, чтобы найти неиспользуемые изображения, а затем спросит, хотите ли вы их удалить. Перед удалением изображений убедитесь, что у вас есть резервная копия или система контроля версий, в противном случае операция будет невосстановимой. Можно легко интегрировать FengNiao в процесс сборки Xcode. Таким образом, вы можете гарантировать, что ваш проект будет очищаться при каждой сборке.
FengNiao на GitHub: https://github.com/onevcat/FengNiao
Платформа: iOS
⭐️: 3.5К
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
FengNiao — это простая утилита командной строки для удаления неиспользуемых файлов графических ресурсов из вашего проекта Xcode.
Программа просканирует текущий проект и все его подпапки, чтобы найти неиспользуемые изображения, а затем спросит, хотите ли вы их удалить. Перед удалением изображений убедитесь, что у вас есть резервная копия или система контроля версий, в противном случае операция будет невосстановимой. Можно легко интегрировать FengNiao в процесс сборки Xcode. Таким образом, вы можете гарантировать, что ваш проект будет очищаться при каждой сборке.
FengNiao на GitHub: https://github.com/onevcat/FengNiao
Платформа: iOS
⭐️: 3.5К
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
•
(iOS Ru) _VariadicView: подчеркивая скрытые возможности контейнеров•
(iOS Ru) Федеративный ML на iOS: как уберечь данные пользователей в эпоху ИИ•
(iOS Ru) Модульность в iOS: библиотека как инструмент декомпозиции•
(iOS En) Liquid Glass Showcase: Tide Guide•
(iOS En) SwiftUI Page Curl Carousel - Metal Shaders•
(iOS En) SwiftUI Animated Scrollable Slider - Custom Picker•
(And Ru) От идеи к CVE: как находить уязвимости в Android•
(And Ru) Как справляться с ростом количества Gradle-модулей в Android-проекте•
(And En) Now in Android: 123 – Android XR, Jetpack Navigation 3, and more!•
(And En) The New Retain API in Jetpack Compose - Everything You Need to Know•
(And En) Screen Transition Animations With Navigation3•
(And En) Language Design in the Age of AI•
(And En) Nobody is teaching you THIS about Onboarding•
(Crs Ru) Продакшен опыт использования Flutter Web в Яндекс Смене•
(Crs Ru) Compose Multiplatform: от сложного к простому•
(Crs Ru) Flutter в 2025: возможности, ограничения и реальный опыт•
(Dev Ru) Как построить карьеру в разработке в 2026 году и не допустить типичные ошибки•
(Dev Ru) Разработка под авто — Android Automotive, CarPlay, Tesla•
(Dev Ru) Применение AI и LLM в разработке и управлении•
(Dev Ru) Социобиолог про ИИ и утрату навыков: выживут талантливые•
(Dev En) Build a Support Agent with Vercel AI SDK – Full Tutorial•
(Mrk Ru) Ошибки рекламы, из-за которых Google Play отклоняет мобильные игрыПрошлогодние видео:
•
(iOS Ru) Мок-интервью по мобильному системному дизайну•
(iOS Ru) Задачи с собеседования: LRU Cache — leetcode•
(Crs Ru) PWA vs Native App. Как и зачем в Альфа-Бизнесе создавали свой MobileWeb•
(Dev Ru) Mobile App Performance: метрики производительности•
(Dev Ru) Релизный процесс приложений OzonPlease open Telegram to view this post
VIEW IN TELEGRAM
Perfetto в Android-разработке: когда профайлера уже недостаточно
Perfetto — крутейший инструмент. Он покажет вам те проблемы с производительностью, которые не заметит другой профайлер.
Perfetto покажет, что процессор занят системными задачами, когда ваш поток готов работать. Подсветит, что GC блокирует UI на 50 миллисекунд. А ещё расскажет, что именно планировщик ядра выкидывает поток с CPU.
Статья: https://habr.com/ru/companies/dododev/articles/977516/
Платформа: Android
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
Perfetto — крутейший инструмент. Он покажет вам те проблемы с производительностью, которые не заметит другой профайлер.
Perfetto покажет, что процессор занят системными задачами, когда ваш поток готов работать. Подсветит, что GC блокирует UI на 50 миллисекунд. А ещё расскажет, что именно планировщик ядра выкидывает поток с CPU.
Статья: https://habr.com/ru/companies/dododev/articles/977516/
Платформа: Android
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
Open-Source Habit Tracker App - трекер привычек на React Native
Open-Source Habit Tracker App - простое минималистичное приложение для отслеживания привычек с открытым исходным кодом, созданное для того, чтобы помочь людям придерживаться своих ежедневных привычек. Оно разработано с использованием Expo и React Native и использует SQLite для локального хранения данных, поэтому все данные о привычках сохраняются непосредственно на устройстве и работают полностью в автономном режиме.
Open-Source Habit Tracker App на GitHub: https://github.com/hasibhaque07/open-source-habit-tracker-app
Платформа: кроссплатформа
⭐️: 10
Open-Source Habit Tracker App - простое минималистичное приложение для отслеживания привычек с открытым исходным кодом, созданное для того, чтобы помочь людям придерживаться своих ежедневных привычек. Оно разработано с использованием Expo и React Native и использует SQLite для локального хранения данных, поэтому все данные о привычках сохраняются непосредственно на устройстве и работают полностью в автономном режиме.
Open-Source Habit Tracker App на GitHub: https://github.com/hasibhaque07/open-source-habit-tracker-app
Платформа: кроссплатформа
⭐️: 10
❤1
Snapshot тесты для iOS: быстро, стабильно, на Metal
В этой статье расскажу о скриншот-тестировании iOS-приложений. Разберём одну из ключевых проблем, с которой сталкиваются проекты при работе с тестами, посмотрим, на чём основано сравнение изображений в современных open-source инструментах и поймём, почему всё сложнее, чем может показаться на первый взгляд. Также попробуем разобраться, как можно выйти за рамки существующих ограничений с помощью AFSnapshotTesting и параллельных вычислений на Metal.
Статья: https://habr.com/ru/articles/980958/
Платформа: iOS
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
В этой статье расскажу о скриншот-тестировании iOS-приложений. Разберём одну из ключевых проблем, с которой сталкиваются проекты при работе с тестами, посмотрим, на чём основано сравнение изображений в современных open-source инструментах и поймём, почему всё сложнее, чем может показаться на первый взгляд. Также попробуем разобраться, как можно выйти за рамки существующих ограничений с помощью AFSnapshotTesting и параллельных вычислений на Metal.
Статья: https://habr.com/ru/articles/980958/
Платформа: iOS
Please open Telegram to view this post
VIEW IN TELEGRAM
Почему я перешел на Dagger Components (вместо Dagger Android)
В этой статье расскажу про свои эксперименты с Dagger. Наткнувшись в проекте на огромный модуль Application (11,5 Мб), я стал искать альтернативы обертке Dagger Android. Поэкспериментировал с продвигаемым Google Dagger Hilt, а также с более старым подходом — Dagger Components. Последний, как ни странно, позволяет немного сократить Application и в целом имеет больше плюсов, чем минусов.
Статья: https://habr.com/ru/companies/psb/articles/979988/
Платформа: Android
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
В этой статье расскажу про свои эксперименты с Dagger. Наткнувшись в проекте на огромный модуль Application (11,5 Мб), я стал искать альтернативы обертке Dagger Android. Поэкспериментировал с продвигаемым Google Dagger Hilt, а также с более старым подходом — Dagger Components. Последний, как ни странно, позволяет немного сократить Application и в целом имеет больше плюсов, чем минусов.
Статья: https://habr.com/ru/companies/psb/articles/979988/
Платформа: Android
Please open Telegram to view this post
VIEW IN TELEGRAM
Темная сторона iOS-разработки
Я занимаюсь iOS-разработкой достаточно долго, чтобы точно знать одно. Если вы всё ещё считаете iOS-разработку «чистой и элегантной», вы ещё не испытали всех трудностей.
Со стороны всё выглядит идеально. Отполированный дизайн Apple. Премиальные устройства. Синтаксис Swift, который читается как поэзия. Зарплаты, которые заставляют родственников внезапно уважать «работу программиста».
Но что внутри этой работы?
Это тихий, медленно закипающий под давлением котёл.
Есть та часть iOS-разработки, о которой никто не рассказывает на конференциях, сессиях WWDC или в постах LinkedIn. Это то, чему вы учитесь только после многих лет выпуска приложений, срыва сроков и выяснения одной и той же невидимой ошибки в десятый раз.
Давайте поговорим об этом.
Статья: https://apptractor.ru/info/articles/temnaya-storona-ios-razrabotki.html
Платформа: iOS
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
Я занимаюсь iOS-разработкой достаточно долго, чтобы точно знать одно. Если вы всё ещё считаете iOS-разработку «чистой и элегантной», вы ещё не испытали всех трудностей.
Со стороны всё выглядит идеально. Отполированный дизайн Apple. Премиальные устройства. Синтаксис Swift, который читается как поэзия. Зарплаты, которые заставляют родственников внезапно уважать «работу программиста».
Но что внутри этой работы?
Это тихий, медленно закипающий под давлением котёл.
Есть та часть iOS-разработки, о которой никто не рассказывает на конференциях, сессиях WWDC или в постах LinkedIn. Это то, чему вы учитесь только после многих лет выпуска приложений, срыва сроков и выяснения одной и той же невидимой ошибки в десятый раз.
Давайте поговорим об этом.
Статья: https://apptractor.ru/info/articles/temnaya-storona-ios-razrabotki.html
Платформа: iOS
Please open Telegram to view this post
VIEW IN TELEGRAM
👍3🤡2😁1🤯1
LinkSheet - управление ссылками
LinkSheet в отдельном приложении восстанавливает поведение обработки ссылок, существовавшее до Android 12, позволяя пользователям выбирать, в каком приложении открывать ссылки.
LinkSheet на GitHub: https://github.com/LinkSheet/LinkSheet
Платформа: Android
⭐️: 1.8K
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
LinkSheet в отдельном приложении восстанавливает поведение обработки ссылок, существовавшее до Android 12, позволяя пользователям выбирать, в каком приложении открывать ссылки.
LinkSheet на GitHub: https://github.com/LinkSheet/LinkSheet
Платформа: Android
⭐️: 1.8K
Please open Telegram to view this post
VIEW IN TELEGRAM