CocoaLumberjack - фреймворк логирования
CocoaLumberjack — это быстрая и простая, но при этом мощная и гибкая платформа для ведения логов, предназначенная для macOS, iOS, tvOS, watchOS и visionOS.
Фичи:
• Lumberjack — быстрый. В большинстве случаев он на порядок быстрее, чем NSLog.
• Lumberjack — простой. Для настройки Lumberjack при запуске вашего приложения достаточно всего одной строки кода. Затем просто замените ваши операторы NSLog на операторы DDLog, и это практически все. (А макросы DDLog имеют точно такой же формат и синтаксис, как и NSLog, поэтому это очень просто.)
• Lumberjack — мощный. Один оператор логирования может быть отправлен нескольким логгерам, что означает, что вы можете одновременно записывать логи в файл и в консоль. Хотите больше? Создавайте собственные логгеры (это легко) и отправляйте свои сообщения в лог по сети. Или в базу данных, или в распределенную файловую систему. Возможности безграничны.
• Lumberjack — гибкий. Настраивайте логирование так, как вам нужно. Изменяйте уровни логирования для каждого файла (идеально подходит для отладки). Изменяйте уровни логирования для каждого логгера (подробная консоль, но лаконичный лог-файл). Изменяйте уровни логирования для каждой конфигурации Xcode (подробная отладка, но лаконичный релиз). Получайте сообщения в лог из релизной сборки. Настраивайте количество уровней логирования для вашего приложения. Добавляйте собственное детальное логирование. Динамически изменяйте уровни логирования во время выполнения. Выбирайте, как и когда вы хотите, чтобы ваши лог-файлы были скомпилированы. Загружайте ваши лог-файлы на центральный сервер. Сжимайте архивированные лог-файлы для экономии места на диске...
CocoaLumberjack на GitHub: https://github.com/CocoaLumberjack/CocoaLumberjack
Платформа: iOS
⭐️: 13.3K
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
CocoaLumberjack — это быстрая и простая, но при этом мощная и гибкая платформа для ведения логов, предназначенная для macOS, iOS, tvOS, watchOS и visionOS.
Фичи:
• Lumberjack — быстрый. В большинстве случаев он на порядок быстрее, чем NSLog.
• Lumberjack — простой. Для настройки Lumberjack при запуске вашего приложения достаточно всего одной строки кода. Затем просто замените ваши операторы NSLog на операторы DDLog, и это практически все. (А макросы DDLog имеют точно такой же формат и синтаксис, как и NSLog, поэтому это очень просто.)
• Lumberjack — мощный. Один оператор логирования может быть отправлен нескольким логгерам, что означает, что вы можете одновременно записывать логи в файл и в консоль. Хотите больше? Создавайте собственные логгеры (это легко) и отправляйте свои сообщения в лог по сети. Или в базу данных, или в распределенную файловую систему. Возможности безграничны.
• Lumberjack — гибкий. Настраивайте логирование так, как вам нужно. Изменяйте уровни логирования для каждого файла (идеально подходит для отладки). Изменяйте уровни логирования для каждого логгера (подробная консоль, но лаконичный лог-файл). Изменяйте уровни логирования для каждой конфигурации Xcode (подробная отладка, но лаконичный релиз). Получайте сообщения в лог из релизной сборки. Настраивайте количество уровней логирования для вашего приложения. Добавляйте собственное детальное логирование. Динамически изменяйте уровни логирования во время выполнения. Выбирайте, как и когда вы хотите, чтобы ваши лог-файлы были скомпилированы. Загружайте ваши лог-файлы на центральный сервер. Сжимайте архивированные лог-файлы для экономии места на диске...
CocoaLumberjack на GitHub: https://github.com/CocoaLumberjack/CocoaLumberjack
Платформа: iOS
⭐️: 13.3K
Please open Telegram to view this post
VIEW IN TELEGRAM
Тестирование взаимодействия нескольких устройств в Android Emulator
Тестирование взаимодействия между несколькими устройствами стало проще, чем когда-либо, благодаря эмулятору Android. Независимо от того, разрабатываете ли вы многопользовательскую игру, расширяете возможности своего мобильного приложения для разных форм-факторов или запускаете виртуальные устройства, требующие подключения к устройству, эмулятор Android теперь поддерживает эти возможности для разработчиков.
Ранее соединение нескольких виртуальных устройств Android (AVD) вызывало значительные сложности. Для подключения двух эмуляторов требовалось вручную управлять сложными правилами переадресации портов.
Теперь вы можете воспользоваться новым сетевым стеком для эмулятора Android, который обеспечивает беспроводное соединение без необходимости настройки между всеми вашими AVD.
Статья: https://apptractor.ru/info/articles/testirovanie-vzaimodeystviya-neskolkih-ustroystv-v-android-emulator.html
Платформа: Android
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
Тестирование взаимодействия между несколькими устройствами стало проще, чем когда-либо, благодаря эмулятору Android. Независимо от того, разрабатываете ли вы многопользовательскую игру, расширяете возможности своего мобильного приложения для разных форм-факторов или запускаете виртуальные устройства, требующие подключения к устройству, эмулятор Android теперь поддерживает эти возможности для разработчиков.
Ранее соединение нескольких виртуальных устройств Android (AVD) вызывало значительные сложности. Для подключения двух эмуляторов требовалось вручную управлять сложными правилами переадресации портов.
Теперь вы можете воспользоваться новым сетевым стеком для эмулятора Android, который обеспечивает беспроводное соединение без необходимости настройки между всеми вашими AVD.
Статья: https://apptractor.ru/info/articles/testirovanie-vzaimodeystviya-neskolkih-ustroystv-v-android-emulator.html
Платформа: Android
Please open Telegram to view this post
VIEW IN TELEGRAM
StoreScreens - скриншоты приложений для App Store
Создавайте скриншоты App Store для всех необходимых размеров устройств одной командой. Запускайте ваши UI-тесты на нескольких симуляторах параллельно (или непосредственно в macOS), организуйте вывод по устройству и локали и автоматически определяйте, какому размеру App Store соответствует каждый симулятор. Поддерживает скриншоты App Store для iPhone, iPad, Apple Watch и Mac.
StoreScreens поставляется в виде трех взаимодополняющих компонентов. Большинству пользователей нужен только CLI; два других компонента существуют для того, чтобы сделать помощников по программированию на основе ИИ первоклассными операторами.
• Storescreens (CLI) - основной исполняемый файл. Запускает тесты пользовательского интерфейса на симуляторах, делает снимки экрана, создает галерею предварительного просмотра HTML.
• Storescreens-mcp (MCP-сервер) - структурированная обертка, которая предоставляет доступ к операциям CLI в виде Model Context Protocol инструментов с потоковой передачей прогресса.
• Storescreens-skill - агентский навык с инструкциями и шаблонами, которые учат помощника определять ваш проект Xcode, генерировать конфигурацию, создавать шаблоны UI-тестов пользовательского интерфейса и запускать захват.
StoreScreens на GitHub: https://github.com/ciscoriordan/storescreens-cli
Платформа: iOS
⭐️: 5
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
Создавайте скриншоты App Store для всех необходимых размеров устройств одной командой. Запускайте ваши UI-тесты на нескольких симуляторах параллельно (или непосредственно в macOS), организуйте вывод по устройству и локали и автоматически определяйте, какому размеру App Store соответствует каждый симулятор. Поддерживает скриншоты App Store для iPhone, iPad, Apple Watch и Mac.
StoreScreens поставляется в виде трех взаимодополняющих компонентов. Большинству пользователей нужен только CLI; два других компонента существуют для того, чтобы сделать помощников по программированию на основе ИИ первоклассными операторами.
• Storescreens (CLI) - основной исполняемый файл. Запускает тесты пользовательского интерфейса на симуляторах, делает снимки экрана, создает галерею предварительного просмотра HTML.
• Storescreens-mcp (MCP-сервер) - структурированная обертка, которая предоставляет доступ к операциям CLI в виде Model Context Protocol инструментов с потоковой передачей прогресса.
• Storescreens-skill - агентский навык с инструкциями и шаблонами, которые учат помощника определять ваш проект Xcode, генерировать конфигурацию, создавать шаблоны UI-тестов пользовательского интерфейса и запускать захват.
StoreScreens на GitHub: https://github.com/ciscoriordan/storescreens-cli
Платформа: iOS
⭐️: 5
Please open Telegram to view this post
VIEW IN TELEGRAM
•
(iOS En) Automatic App Store Uploads w/ Bitrise and CI/CD•
(And Ru) Разработка виджетов в Android: что может пойти не так•
(And En) Build Android apps using any AI agent with Android CLI and skills•
(And En) Google Play PolicyBytes - April 2026 policy updates•
(And En) How Uber Uses AI to Move from Java to Kotlin•
(And En) The New Name-Based Destructuring in Kotlin 2.3.20•
(And En) Lead Android Engineer Mock Interview – Stock Trading App System Design (все собеседования)•
(Crs En) Best KMP libraries with Klibs.io!•
(Dev Ru) Почему AI разрушает Open Source прямо сейчас•
(Dev En) Build a Voice-Enabled Telegram Bot with the Gemini Interactions API•
(Dev En) 3 Theoretical Limits of AI - These Things Can't Be Fixed•
(Dev En) System Design Course – APIs, Databases, Caching, CDNs, Load Balancing & Production Infra•
(Mrk Ru) Что ждет мобильные приложения? CEO единорога Flo на $1млрд о фандрейзинге, web2app и AI-гонкеПрошлогодние видео:
•
(iOS Ru) От модуляризации к Clang и обратно•
(iOS Ru) Суперапп с чистого листа•
(iOS Ru) А так ли нужна Swift Modern Concurrency?•
(iOS Ru) Мгновенный фидбэк: как оперативно получать отзывы о приложении в App Store•
(And Ru) Универсальное демоприложение•
(And Ru) Не два байта переслать: эмуляция бесконтактных карт на мобильных устройствах•
(And Ru) Архитектурное собеседование Android разработчика•
(And Ru) Устройство Android Music SDK или как мы встроили музыку в суперапп-приложение•
(And Ru) Интеграция MediaPipe в Android-приложение видеоконференцсвязи•
(Dev Ru) Как устроена мобильная разработка в КинопоискеPlease open Telegram to view this post
VIEW IN TELEGRAM
❤1👏1
Android skills - навыки Android-разработки для ИИ
Android skills - это специализированный репозиторий оптимизированных для модульных инструкций и ресурсов, призванный LLM лучше понимать и применять конкретные шаблоны, соответствующие лучшим практикам и рекомендациям Google по разработке под Android.
Навыки Android основаны на открытом стандарте — файлах Markdown (SKILL.md), которые предоставляют техническое описание задачи и знакомят языковые модели со специализированными областями и рабочими процессами. В настоящее есть 6 областей, для которых созданы навыки:
• Обновление до AGP 9
• Миграция XML view в Jetpack Compose
• Navigation 3
• R8
• Обновление Play Billing Library
• Edge-to-edge
Android skills на GitHub: https://github.com/android/skills
Платформа: Android
⭐️: 3.7K
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
Android skills - это специализированный репозиторий оптимизированных для модульных инструкций и ресурсов, призванный LLM лучше понимать и применять конкретные шаблоны, соответствующие лучшим практикам и рекомендациям Google по разработке под Android.
Навыки Android основаны на открытом стандарте — файлах Markdown (SKILL.md), которые предоставляют техническое описание задачи и знакомят языковые модели со специализированными областями и рабочими процессами. В настоящее есть 6 областей, для которых созданы навыки:
• Обновление до AGP 9
• Миграция XML view в Jetpack Compose
• Navigation 3
• R8
• Обновление Play Billing Library
• Edge-to-edge
Android skills на GitHub: https://github.com/android/skills
Платформа: Android
⭐️: 3.7K
Please open Telegram to view this post
VIEW IN TELEGRAM
Фильтр Калмана, geohash fog of war и три реджекта Apple: как я собрал GPS-трекер на SwiftUI
Контекст: я бэкенд-разработчик, до этого проекта не написал ни строчки на Swift. iOS для меня был чёрным ящиком – CoreLocation, MapKit, жизненный цикл приложения, фоновые режимы, App Store Review. Идея жила в голове три года, но подступиться не мог: казалось, что одному, без мобильного опыта, это неподъёмно. Сдвинулось всё, когда я начал работать с AI-агентами (Claude + Cursor) – но об этом ближе к концу.
Статья: https://habr.com/ru/articles/1024896/
Платформа: iOS
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
Контекст: я бэкенд-разработчик, до этого проекта не написал ни строчки на Swift. iOS для меня был чёрным ящиком – CoreLocation, MapKit, жизненный цикл приложения, фоновые режимы, App Store Review. Идея жила в голове три года, но подступиться не мог: казалось, что одному, без мобильного опыта, это неподъёмно. Сдвинулось всё, когда я начал работать с AI-агентами (Claude + Cursor) – но об этом ближе к концу.
Статья: https://habr.com/ru/articles/1024896/
Платформа: iOS
Please open Telegram to view this post
VIEW IN TELEGRAM
Небольшое предупреждение SwiftUI и долгий путь к его пониманию
Я переходил на более новую версию The Composable Architecture, а это означало, что нужно было исправить ряд устаревших функций. Одним из пунктов этого списка было добавление InferSendableFromCaptures в качестве флага будущей функции Swift для всех наших таргетов.
SE-0418 действительно интересен. Он делает так, чтобы ссылки на методы более точно участвовали в проверке возможности отправки при использовании в качестве значений. Это одно из тех предложений, которое кажется очевидно правильным, как только вы его прочтете.
Я добавил его во время подготовки к Swift 6, надеясь выявить проблемы до начала работы над TCA 2.0. Я был готов исправлять код. Но я не был готов к еще одному путешествию в мир concurrency. К такому путешествию, которое бросает вызов тому, что я уже знал, просто чтобы убедиться, что я действительно это знаю.
Статья: https://apptractor.ru/info/articles/nebolshoe-preduprezhdenie-swiftui-i-dolgiy-put-k-ego-ponimaniyu.html
Платформа: iOS
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
Я переходил на более новую версию The Composable Architecture, а это означало, что нужно было исправить ряд устаревших функций. Одним из пунктов этого списка было добавление InferSendableFromCaptures в качестве флага будущей функции Swift для всех наших таргетов.
SE-0418 действительно интересен. Он делает так, чтобы ссылки на методы более точно участвовали в проверке возможности отправки при использовании в качестве значений. Это одно из тех предложений, которое кажется очевидно правильным, как только вы его прочтете.
Я добавил его во время подготовки к Swift 6, надеясь выявить проблемы до начала работы над TCA 2.0. Я был готов исправлять код. Но я не был готов к еще одному путешествию в мир concurrency. К такому путешествию, которое бросает вызов тому, что я уже знал, просто чтобы убедиться, что я действительно это знаю.
Статья: https://apptractor.ru/info/articles/nebolshoe-preduprezhdenie-swiftui-i-dolgiy-put-k-ego-ponimaniyu.html
Платформа: iOS
Please open Telegram to view this post
VIEW IN TELEGRAM
Экспериментальный гибридный инференс и новые модели Gemini для Android
Google продолжает превращать AI в нативную часть Android, и свежий апдейт для разработчиков это хорошо показывает. Главная идея — больше не нужно выбирать между локальными и облачными моделями: теперь их можно объединять.
Ключевое нововведение — гибридный инференс. Он позволяет запускать часть задач прямо на устройстве, а часть — в облаке. Это работает через
Параллельно Google обновила линейку моделей Gemini, которые теперь проще интегрировать в Android-приложения. Появились новые решения для генерации изображений: более мощная модель делает качественные картинки с точным текстом и даже имитацией почерка, а более лёгкая версия оптимизирована под скорость и массовые сценарии вроде UI-графики, стикеров и визуального контента внутри приложений.
В демонстрациях Google показывает довольно практичные кейсы: например, генерация текстов с последующим переводом на разные языки. При этом всё может работать в гибридном режиме — часть обработки происходит локально, часть в облаке, и пользователь не замечает этой “магии” под капотом.
По сути, Android движется к модели, где AI становится встроенной возможностью системы. Разработчики получают инструменты для создания офлайн-функций, быстрых ассистентов и генеративных фич прямо внутри приложений без сложной инфраструктуры.
Новость:🇺🇸 https://android-developers.googleblog.com/2026/04/Hybrid-inference-and-new-AI-models-are-coming-to-Android.html
Платформа: Android
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
Google продолжает превращать AI в нативную часть Android, и свежий апдейт для разработчиков это хорошо показывает. Главная идея — больше не нужно выбирать между локальными и облачными моделями: теперь их можно объединять.
Ключевое нововведение — гибридный инференс. Он позволяет запускать часть задач прямо на устройстве, а часть — в облаке. Это работает через
Firebase AI Logic API и даёт разработчикам гибкость: можно ускорять отклик, снижать нагрузку на сеть и при этом не терять в качестве. Плюс повышается приватность, потому что не все данные отправляются наружу.Параллельно Google обновила линейку моделей Gemini, которые теперь проще интегрировать в Android-приложения. Появились новые решения для генерации изображений: более мощная модель делает качественные картинки с точным текстом и даже имитацией почерка, а более лёгкая версия оптимизирована под скорость и массовые сценарии вроде UI-графики, стикеров и визуального контента внутри приложений.
В демонстрациях Google показывает довольно практичные кейсы: например, генерация текстов с последующим переводом на разные языки. При этом всё может работать в гибридном режиме — часть обработки происходит локально, часть в облаке, и пользователь не замечает этой “магии” под капотом.
По сути, Android движется к модели, где AI становится встроенной возможностью системы. Разработчики получают инструменты для создания офлайн-функций, быстрых ассистентов и генеративных фич прямо внутри приложений без сложной инфраструктуры.
Новость:
Платформа: Android
Please open Telegram to view this post
VIEW IN TELEGRAM
FSNotes - менеджер заметок для macOS/iOS
FSNotes — современный менеджер заметок для macOS и iOS.
Основные фичи iOS-версии:
• Синхронизация через iCloud Drive
• 3D Touch и настраиваемая клавиатура
• Контейнеры TextBundle и EncryptedTextBundle
• Закрепленные заметки, синхронизированные с настольным приложением
• Динамические шрифты
• Темный режим
• Расширение для обмена файлами
• Поддержка зашифрованных заметок
• Поддержка зашифрованных папок
• Интеграция с Git
• Создание веб-страниц
FSNotes на GitHub: https://github.com/glushchenko/fsnotes
Платформа: iOS
⭐️: 7.3K
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
FSNotes — современный менеджер заметок для macOS и iOS.
Основные фичи iOS-версии:
• Синхронизация через iCloud Drive
• 3D Touch и настраиваемая клавиатура
• Контейнеры TextBundle и EncryptedTextBundle
• Закрепленные заметки, синхронизированные с настольным приложением
• Динамические шрифты
• Темный режим
• Расширение для обмена файлами
• Поддержка зашифрованных заметок
• Поддержка зашифрованных папок
• Интеграция с Git
• Создание веб-страниц
FSNotes на GitHub: https://github.com/glushchenko/fsnotes
Платформа: iOS
⭐️: 7.3K
Please open Telegram to view this post
VIEW IN TELEGRAM
5.webm
227.8 KB
Создано в Compose: диск выбора месяца в Airbnb
В одном из прошлых обновлений Airbnb добавил в приложение циферблат выбора месяца, позволяющий пользователям самым удобным способом выбирать время. Давайте научимся воссоздавать это с помощью моей библиотеки ChromaDial.
Статья: https://apptractor.ru/info/news/sozdano-v-compose-disk-vybora-mesyatsa-v-airbnb.html
Платформа: Android
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
В одном из прошлых обновлений Airbnb добавил в приложение циферблат выбора месяца, позволяющий пользователям самым удобным способом выбирать время. Давайте научимся воссоздавать это с помощью моей библиотеки ChromaDial.
Статья: https://apptractor.ru/info/news/sozdano-v-compose-disk-vybora-mesyatsa-v-airbnb.html
Платформа: Android
Please open Telegram to view this post
VIEW IN TELEGRAM
Анимируем зачеркивание текста в SwiftUI
В процессе работы над одним из наших внутренних инструментов мы обнаружили, что в дизайне необходимо было «зачеркивать» выполненные задачи в списках дел, добавляя приложению немного игривости и физической выразительности. SwiftUI предоставляет модификатор зачеркивания, но он не анимируется. Для нашего инструмента мы хотели, чтобы создавалось ощущение физического рисования, когда текст зачеркивается от одного конца до другого. Сначала это казалось простой функцией, но при попытке реализовать её правильно всё оказалось гораздо сложнее.
Статья: https://apptractor.ru/info/articles/animiruem-zacherkivanie-teksta-v-swiftui.html
Платформа: iOS
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
В процессе работы над одним из наших внутренних инструментов мы обнаружили, что в дизайне необходимо было «зачеркивать» выполненные задачи в списках дел, добавляя приложению немного игривости и физической выразительности. SwiftUI предоставляет модификатор зачеркивания, но он не анимируется. Для нашего инструмента мы хотели, чтобы создавалось ощущение физического рисования, когда текст зачеркивается от одного конца до другого. Сначала это казалось простой функцией, но при попытке реализовать её правильно всё оказалось гораздо сложнее.
Статья: https://apptractor.ru/info/articles/animiruem-zacherkivanie-teksta-v-swiftui.html
Платформа: iOS
Please open Telegram to view this post
VIEW IN TELEGRAM
Material Design 3 Skill for Claude Code - навык языка дизайна для ИИ
Material Design 3 Skill for Claude Code помогает ИИ в создании пользовательского интерфейса, совместимого с MD3, с правильными токенами дизайна, компонентами, темами оформления, макетами и доступностью. Основное внимание уделяется Jetpack Compose — MaterialTheme, композабл элементам Material 3, адаптивным макетам, edge-to-edge и текущим паттернамMaterial3 в Compose.
Также рассматривается Flutter (useMaterial3, ColorScheme.fromSeed и т. д.) на второстепенном уровне, а Web (
Есть режим аудита соответствия MD3, который оценивает приложения по 10 категориям (работает для Compose/Kotlin, Flutter/Dart и web/CSS).
Охватывает M3 Expressive (май 2025 г.) с явной матрицей для каждой платформы.
Material Design 3 Skill for Claude Code на GitHub: https://github.com/hamen/material-3-skill
Платформа: Android
⭐️: 771
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
Material Design 3 Skill for Claude Code помогает ИИ в создании пользовательского интерфейса, совместимого с MD3, с правильными токенами дизайна, компонентами, темами оформления, макетами и доступностью. Основное внимание уделяется Jetpack Compose — MaterialTheme, композабл элементам Material 3, адаптивным макетам, edge-to-edge и текущим паттернамMaterial3 в Compose.
Также рассматривается Flutter (useMaterial3, ColorScheme.fromSeed и т. д.) на второстепенном уровне, а Web (
@material/web) документирован как ограниченный путь: Material Web находится в режиме поддержки, а M3 Expressive не реализован в Web.Есть режим аудита соответствия MD3, который оценивает приложения по 10 категориям (работает для Compose/Kotlin, Flutter/Dart и web/CSS).
Охватывает M3 Expressive (май 2025 г.) с явной матрицей для каждой платформы.
Material Design 3 Skill for Claude Code на GitHub: https://github.com/hamen/material-3-skill
Платформа: Android
⭐️: 771
Please open Telegram to view this post
VIEW IN TELEGRAM
The Xcode build system has crashed, или Почему рекурсия — это плохо. Используем swift‑build со своими патчами
Представьте ситуацию: вы работаете в огромном проекте, где количество модулей давно перевалило за тысячу. Вы решаете обновиться до свежего Xcode 26.2, ожидая прироста производительности, но вместо заветного «Build Succeeded» получаете молчаливое падение:
Статья: https://habr.com/ru/companies/yandex/articles/1024298/
Платформа: iOS
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
Представьте ситуацию: вы работаете в огромном проекте, где количество модулей давно перевалило за тысячу. Вы решаете обновиться до свежего Xcode 26.2, ожидая прироста производительности, но вместо заветного «Build Succeeded» получаете молчаливое падение:
SWBBuildService quit unexpectedly.Статья: https://habr.com/ru/companies/yandex/articles/1024298/
Платформа: iOS
Please open Telegram to view this post
VIEW IN TELEGRAM
Time Profiler в Xcode Instruments: повышение производительности с помощью ИИ
Сегодня у нас невероятно быстрые устройства. Это кажется излишним, и это правда: потребность в профилировании снизилась. Однако я искренне верю, что мы можем значительно улучшить и повысить производительность наших приложений, если будем регулярно обращаться к Xcode Instruments. Хорошая новость в том, что вам больше не нужно проводить анализ самостоятельно: в этом могут помочь ИИ-агенты.
Статья: https://apptractor.ru/info/articles/time-profiler-v-xcode-instruments-povyshenie-proizvoditelnosti-s-pomoschyu-ii.html
Платформа: iOS
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
Сегодня у нас невероятно быстрые устройства. Это кажется излишним, и это правда: потребность в профилировании снизилась. Однако я искренне верю, что мы можем значительно улучшить и повысить производительность наших приложений, если будем регулярно обращаться к Xcode Instruments. Хорошая новость в том, что вам больше не нужно проводить анализ самостоятельно: в этом могут помочь ИИ-агенты.
Статья: https://apptractor.ru/info/articles/time-profiler-v-xcode-instruments-povyshenie-proizvoditelnosti-s-pomoschyu-ii.html
Платформа: iOS
Please open Telegram to view this post
VIEW IN TELEGRAM
MarkupEditor - WYSIWYG редактор для SwiftUI и UIKit
MarkupEditor - WYSIWYG-редактор для SwiftUI и UIKit. Поддерживает представление абзаца или заголовка с предопределенным размером шрифта, маркированные и нумерованные списки, отступы, форматирование (жирный шрифт, курсив, подчеркивание, код, зачеркивание, нижний и верхний индексы),
встраивание изображений, таблиц и ссылок. Не поддерживает цвет текста и фона, изменение размера шрифта. Если вам нужен более богатый набор функций, вы можете самостоятельно расширить MarkupEditor.
Как работает на самом деле
MarkupEditor отображает вам HTML-документ во время редактирования. Он использует библиотеку JavaScript ProseMirror для изменения базового DOM и колбеки Swift при взаимодействии с документом. MarkupEditor не знает, как сохранить ваш документ или преобразовать его в какой-либо другой формат. Это то, что должно будет сделать ваше приложение, использующее библиотеку. MarkupEditor будет сообщать вашему MarkupDelegate об изменении состояния базового документа, и вы сможете использовать эти уведомления для сохранения и, возможно, преобразования HTML в другую форму.
MarkupEditor на GitHub: https://github.com/stevengharris/MarkupEditor
Платформа: iOS
⭐️: 454
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
MarkupEditor - WYSIWYG-редактор для SwiftUI и UIKit. Поддерживает представление абзаца или заголовка с предопределенным размером шрифта, маркированные и нумерованные списки, отступы, форматирование (жирный шрифт, курсив, подчеркивание, код, зачеркивание, нижний и верхний индексы),
встраивание изображений, таблиц и ссылок. Не поддерживает цвет текста и фона, изменение размера шрифта. Если вам нужен более богатый набор функций, вы можете самостоятельно расширить MarkupEditor.
Как работает на самом деле
MarkupEditor отображает вам HTML-документ во время редактирования. Он использует библиотеку JavaScript ProseMirror для изменения базового DOM и колбеки Swift при взаимодействии с документом. MarkupEditor не знает, как сохранить ваш документ или преобразовать его в какой-либо другой формат. Это то, что должно будет сделать ваше приложение, использующее библиотеку. MarkupEditor будет сообщать вашему MarkupDelegate об изменении состояния базового документа, и вы сможете использовать эти уведомления для сохранения и, возможно, преобразования HTML в другую форму.
MarkupEditor на GitHub: https://github.com/stevengharris/MarkupEditor
Платформа: iOS
⭐️: 454
Please open Telegram to view this post
VIEW IN TELEGRAM
Unidirectional Data Flow архитектура
В inDrive написали новую статью про архитектуру в iOS. В ней подробно разобрали реальный кейс: как в компании перевели большой проект с UDF-архитектуры на Clean Architecture. Со всеми практическими нюансами, компромиссами и проблемами, с которыми столкнулись по пути. Статья показывает, как принимать архитектурные решения в уже большом проекте, когда UDF перестает масштабироваться. Особо задорно то, что раньше у inDrive было много материалов о том, как у них хорошо работает UDF, а здесь уже честный разбор следующего этапа, так сказать.
Статья:🇺🇸 https://medium.com/indriver-tech/udf-to-clean-architecture-ios-indrive-e426f1f7ec65
Платформа: iOS
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
В inDrive написали новую статью про архитектуру в iOS. В ней подробно разобрали реальный кейс: как в компании перевели большой проект с UDF-архитектуры на Clean Architecture. Со всеми практическими нюансами, компромиссами и проблемами, с которыми столкнулись по пути. Статья показывает, как принимать архитектурные решения в уже большом проекте, когда UDF перестает масштабироваться. Особо задорно то, что раньше у inDrive было много материалов о том, как у них хорошо работает UDF, а здесь уже честный разбор следующего этапа, так сказать.
Статья:
Платформа: iOS
Please open Telegram to view this post
VIEW IN TELEGRAM
Android и AccessibilityService: защита чувствительных экранов от чтения интерфейса
При обсуждении защиты чувствительных экранов в Android обычно имеют в виду механизмы защищённого вывода изображения. На практике разработчик чаще всего сталкивается с WindowManager.LayoutParams.FLAG_SECURE и близкими средствами платформы, которые запрещают создание обычных скриншотов, ограничивают вывод окна на небезопасные внешние дисплеи и в ряде сценариев затрудняют захват содержимого экрана системными средствами. Для отдельных поверхностей аналогичная защита может применяться и на уровне SurfaceView. Такой слой важен для экранов, где отображаются платёжные данные, одноразовые коды, персональная информация и другие чувствительные сведения.
Статья: https://habr.com/ru/companies/hex_team/articles/1025368/
Платформа: Android
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
При обсуждении защиты чувствительных экранов в Android обычно имеют в виду механизмы защищённого вывода изображения. На практике разработчик чаще всего сталкивается с WindowManager.LayoutParams.FLAG_SECURE и близкими средствами платформы, которые запрещают создание обычных скриншотов, ограничивают вывод окна на небезопасные внешние дисплеи и в ряде сценариев затрудняют захват содержимого экрана системными средствами. Для отдельных поверхностей аналогичная защита может применяться и на уровне SurfaceView. Такой слой важен для экранов, где отображаются платёжные данные, одноразовые коды, персональная информация и другие чувствительные сведения.
Статья: https://habr.com/ru/companies/hex_team/articles/1025368/
Платформа: Android
Please open Telegram to view this post
VIEW IN TELEGRAM
•
(iOS En) Все видео try! Swift Tokyo 2026•
(iOS En) iOS 26 Custom Animated Keyboard ToolBar Using SwiftUI•
(iOS En) Liquid Glass Toasts Using SwiftUI•
(iOS En) Q&A: Swift concurrency•
(iOS En) Prepare your app for Accessibility Nutrition Labels•
(And En) How to build apps faster with Android Studio Panda•
(And En) Beginner Course for AI-Assisted Android Development•
(And En) Kotlin Flows: Buffer, Conflate, and Debounce•
(And En) AI-Driven APG 9 Migration using Android Skills and Firebender - KMP Project•
(Dev Ru) Когда API-ключ ушел в свободное плавание: атаки мобильных приложений глазами хакера•
(Dev Ru) Хотел делать игры, а стал руководить тимлидами в Авито•
(Dev Ru) Как копилот генерит код? Идем под капот•
(Anl Ru) Каузальность — почему корреляция врёт, статистика, A/B тесты•
(Dsg En) I've Tried the New Claude Design Tool to Create a PL Coding App•
(Dsg En) Meet DESIGN.md: A new open standard for AI-generated UI•
(Mrk En) Why Nobody Downloads Your AppПрошлогодние видео:
•
(iOS Ru) Работа в Booking, жизнь в Амстердаме, автогонки в Европе•
(iOS Ru) Многопоточность с нуля на примере пиццы•
(iOS Ru) Организация и поддержка нативных UI-тестов в iOS•
(And Ru) Разработка SDK•
(And Ru) Прожарка на код-ревью от Яндекса•
(And Ru) Алиса, открой багажник!•
(And Ru) Зачем нужен виртуальный дисплей в Android•
(And Ru) Находим и увольняем low-перформеровPlease open Telegram to view this post
VIEW IN TELEGRAM
Jetpack Compose — обновление апреля 2026
Google выпустил очередное обновление Jetpack Compose 1.11 - это уже не просто апдейт, а ещё один шаг к окончательному закреплению Compose как основного способа создания UI на Android.
В новой версии заметно усилили стабильность. Всё меньше API остаются экспериментальными, а переходы между версиями становятся более предсказуемыми и безопасными. Это важный сигнал для продакшена: Compose окончательно выходит из стадии «осторожного внедрения» и превращается в стандарт де-факто.
Отдельный акцент сделан на производительности. Улучшения затронули recomposition, работу layout и поведение списков. Интерфейсы стали работать плавнее, особенно в сложных сценариях с большим количеством элементов на экране. Это как раз тот тип изменений, который не всегда видно в changelog, но отлично ощущается в реальных приложениях.
Параллельно развивается и сам UI-слой. Компоненты становятся более гибкими, анимации — более управляемыми, а Material 3 продолжает укрепляться как основа дизайна. Всё это делает Compose более универсальным инструментом, который подходит не только для простых экранов, но и для сложных продуктовых интерфейсов.
Интересно, что Google всё активнее двигается в сторону поддержки разных форм-факторов. Compose всё лучше адаптируется под большие экраны, складные устройства и другие нестандартные сценарии. Это отражает общее направление Android — уход от «только смартфонов» к более широкой экосистеме устройств.
Не забыли и про удобство разработчиков. Инструменты становятся стабильнее, интеграция с Android Studio — глубже, а работа с UI — более предсказуемой. Compose постепенно теряет ощущение «магии» и превращается в понятный и контролируемый инструмент.
Статья:🇺🇸 https://android-developers.googleblog.com/2026/04/jetpack-compose-april-2026-updates.html
Платформа: Android
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
Google выпустил очередное обновление Jetpack Compose 1.11 - это уже не просто апдейт, а ещё один шаг к окончательному закреплению Compose как основного способа создания UI на Android.
В новой версии заметно усилили стабильность. Всё меньше API остаются экспериментальными, а переходы между версиями становятся более предсказуемыми и безопасными. Это важный сигнал для продакшена: Compose окончательно выходит из стадии «осторожного внедрения» и превращается в стандарт де-факто.
Отдельный акцент сделан на производительности. Улучшения затронули recomposition, работу layout и поведение списков. Интерфейсы стали работать плавнее, особенно в сложных сценариях с большим количеством элементов на экране. Это как раз тот тип изменений, который не всегда видно в changelog, но отлично ощущается в реальных приложениях.
Параллельно развивается и сам UI-слой. Компоненты становятся более гибкими, анимации — более управляемыми, а Material 3 продолжает укрепляться как основа дизайна. Всё это делает Compose более универсальным инструментом, который подходит не только для простых экранов, но и для сложных продуктовых интерфейсов.
Интересно, что Google всё активнее двигается в сторону поддержки разных форм-факторов. Compose всё лучше адаптируется под большие экраны, складные устройства и другие нестандартные сценарии. Это отражает общее направление Android — уход от «только смартфонов» к более широкой экосистеме устройств.
Не забыли и про удобство разработчиков. Инструменты становятся стабильнее, интеграция с Android Studio — глубже, а работа с UI — более предсказуемой. Compose постепенно теряет ощущение «магии» и превращается в понятный и контролируемый инструмент.
Статья:
Платформа: Android
Please open Telegram to view this post
VIEW IN TELEGRAM
Pulsar - библиотека тактильной обратной связи
Pulsar - SDK для тактильной обратной связи (haptic feedback) для iOS, Android и React Native. Pulsar предоставляет готовые к использованию предустановки тактильной обратной связи, редактор паттернов для создания кастомных последовательностей и редактор в реальном времени для конструирования обратной связи для жестов.
Фичи:
• Предустановки — библиотека встроенных паттернов (молоток, лай собаки, жужжание, пульсация) и стилей (удары, уведомления, выделение)
• Композитор паттернов — Определение кастомных тактильных паттернов с использованием дискретных событий и непрерывных амплитудно-частотных огибающих
• Композитор в реальном времени — Управление амплитудой и частотой в реальном времени для тактильной обратной связи, управляемой жестами
• Кроссплатформенность — Единый API для iOS (Swift), Android (Kotlin) и React Native (TypeScript)
• Совместимость с ворклетами — Все функции предустановок React Native и методы хуков работают внутри ворклетов Reanimated
Pulsar на GitHub: https://github.com/software-mansion/pulsar
Платформа: iOS/Android
⭐️: 231
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
Pulsar - SDK для тактильной обратной связи (haptic feedback) для iOS, Android и React Native. Pulsar предоставляет готовые к использованию предустановки тактильной обратной связи, редактор паттернов для создания кастомных последовательностей и редактор в реальном времени для конструирования обратной связи для жестов.
Фичи:
• Предустановки — библиотека встроенных паттернов (молоток, лай собаки, жужжание, пульсация) и стилей (удары, уведомления, выделение)
• Композитор паттернов — Определение кастомных тактильных паттернов с использованием дискретных событий и непрерывных амплитудно-частотных огибающих
• Композитор в реальном времени — Управление амплитудой и частотой в реальном времени для тактильной обратной связи, управляемой жестами
• Кроссплатформенность — Единый API для iOS (Swift), Android (Kotlin) и React Native (TypeScript)
• Совместимость с ворклетами — Все функции предустановок React Native и методы хуков работают внутри ворклетов Reanimated
Pulsar на GitHub: https://github.com/software-mansion/pulsar
Платформа: iOS/Android
⭐️: 231
Please open Telegram to view this post
VIEW IN TELEGRAM
Paging 3 хорош. Пока вам не понадобится что-то ещё
Если коротко: пагинация — это когда вы не грузите 100 000 товаров из каталога одним запросом, а показываете их страницами по 20–50 штук и подгружаете следующую порцию, когда пользователь домотал до конца.
Звучит как задача на полдня. На практике — по-разному.
Статья: https://habr.com/ru/articles/1027320/
Платформа: Android
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
Если коротко: пагинация — это когда вы не грузите 100 000 товаров из каталога одним запросом, а показываете их страницами по 20–50 штук и подгружаете следующую порцию, когда пользователь домотал до конца.
Звучит как задача на полдня. На практике — по-разному.
Статья: https://habr.com/ru/articles/1027320/
Платформа: Android
Please open Telegram to view this post
VIEW IN TELEGRAM
Хабр
Paging 3 хорош. Пока вам не понадобится что-то ещё
Вступление, которое можно пропустить, если вы уже делали пагинацию Если коротко: пагинация — это когда вы не грузите 100 000 товаров из каталога одним запросом, а показываете их страницами по 20–50...