Anti-Vocale - транскрибация голосовых сообщений на Android
Anti-Vocale - приложение для Android, позволяющее расшифровывать голосовые сообщения локально на устройстве без подключения к интернету. Anti-Vocale перехватывает аудиофайлы, которыми делятся пользователи (из WhatsApp, Telegram и т. д.), расшифровывает их с помощью встроенных моделей распознавания речи и выводит результат в виде уведомления с возможностью копирования и обратной отправки одним касанием.
Фичи:
• Полностью автономный режим — вся обработка происходит на устройстве, данные не покидают ваш телефон
• Несколько движков ASR — выбирайте между моделями Gemma (LLM), Whisper, Parakeet TDT, Qwen3-ASR или Nemotron 3.5 (потоковая передача)
• Интеграция с функцией обмена — делитесь аудио из любого мессенджера для транскрипции
• Цели обмена для конкретных моделей — выбирайте конкретную модель непосредственно из меню обмена Android
• Повторная транскрипция — повторите любую транскрипцию с другой моделью
• Умные уведомления — скопируйте результат или отправьте его обратно в исходное приложение одним касанием
• Индикатор достоверности — отображает обнаруженный язык и предупреждает о результатах с низкой достоверностью
• Прогрессивное отображение — текст транскрипции отображается по сегментам, вместо ожидания полного результата
• Действия с помощью жестов — проведите пальцем по записям лога, чтобы скопировать, поделиться или удалить
• Постоянный журнал транскрипции — все транскрипции сохраняются в локальной базе данных с возможностью поиска
• Обработка с учетом очереди — обрабатывает несколько одновременных запросов с отображением прогресса
• Оценка времени выполнения на основе калибровки — оценки прогресса улучшаются по мере адаптации модели к вашему устройству
• Статистика производительности — отслеживайте реальную скорость транскрипции для каждой модели на вашем устройстве
• Удаление тихих сегментов VAD — при необходимости удаляйте тихие сегменты перед транскрипцией для более быстрых результатов
• Настраиваемые потоки вывода — автоматическое определение или ручная установка количества потоков для оптимизации производительности
• Настройки для каждого приложения — настройте поведение уведомлений для каждого мессенджера
• Картинка в картинке — смотрите транскрипцию в реальном времени в плавающем окне при использовании других приложений
• Многоязычный интерфейс — интерфейс приложения полностью переведен на английский и итальянский языки
• Автоматическое копирование — при необходимости автоматически копируйте транскрипцию в буфер обмена
• Поддержка задач/автоматизации — запускайте транскрипцию с помощью широковещательных интентов
Anti-Vocale на GitHub: https://github.com/RisorseArtificiali/anti-vocale
Платформа: Android
⭐️: 19
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
Anti-Vocale - приложение для Android, позволяющее расшифровывать голосовые сообщения локально на устройстве без подключения к интернету. Anti-Vocale перехватывает аудиофайлы, которыми делятся пользователи (из WhatsApp, Telegram и т. д.), расшифровывает их с помощью встроенных моделей распознавания речи и выводит результат в виде уведомления с возможностью копирования и обратной отправки одним касанием.
Фичи:
• Полностью автономный режим — вся обработка происходит на устройстве, данные не покидают ваш телефон
• Несколько движков ASR — выбирайте между моделями Gemma (LLM), Whisper, Parakeet TDT, Qwen3-ASR или Nemotron 3.5 (потоковая передача)
• Интеграция с функцией обмена — делитесь аудио из любого мессенджера для транскрипции
• Цели обмена для конкретных моделей — выбирайте конкретную модель непосредственно из меню обмена Android
• Повторная транскрипция — повторите любую транскрипцию с другой моделью
• Умные уведомления — скопируйте результат или отправьте его обратно в исходное приложение одним касанием
• Индикатор достоверности — отображает обнаруженный язык и предупреждает о результатах с низкой достоверностью
• Прогрессивное отображение — текст транскрипции отображается по сегментам, вместо ожидания полного результата
• Действия с помощью жестов — проведите пальцем по записям лога, чтобы скопировать, поделиться или удалить
• Постоянный журнал транскрипции — все транскрипции сохраняются в локальной базе данных с возможностью поиска
• Обработка с учетом очереди — обрабатывает несколько одновременных запросов с отображением прогресса
• Оценка времени выполнения на основе калибровки — оценки прогресса улучшаются по мере адаптации модели к вашему устройству
• Статистика производительности — отслеживайте реальную скорость транскрипции для каждой модели на вашем устройстве
• Удаление тихих сегментов VAD — при необходимости удаляйте тихие сегменты перед транскрипцией для более быстрых результатов
• Настраиваемые потоки вывода — автоматическое определение или ручная установка количества потоков для оптимизации производительности
• Настройки для каждого приложения — настройте поведение уведомлений для каждого мессенджера
• Картинка в картинке — смотрите транскрипцию в реальном времени в плавающем окне при использовании других приложений
• Многоязычный интерфейс — интерфейс приложения полностью переведен на английский и итальянский языки
• Автоматическое копирование — при необходимости автоматически копируйте транскрипцию в буфер обмена
• Поддержка задач/автоматизации — запускайте транскрипцию с помощью широковещательных интентов
Anti-Vocale на GitHub: https://github.com/RisorseArtificiali/anti-vocale
Платформа: Android
⭐️: 19
Please open Telegram to view this post
VIEW IN TELEGRAM
Please open Telegram to view this post
VIEW IN TELEGRAM
Как нарисовать тысячи объектов на карте и не убить FPS: эволюция рендера на Mapbox GL
В прошлой статье про нетривиальные анимации я обещал показать «ту самую карту с облаками, zoom и движением по кривой Безье». Пришло время. Начну, правда, не с самой анимации, а с того, что было до неё: прежде чем что-то красиво анимировать на карте, надо это что-то на карте хотя бы нарисовать.
Контекст: я делал геолокационную соцсеть. На карте – «облака», посты, привязанные к точке на местности. Их может быть много. Очень много. И вся история ниже – про то, как я пять раз упёрся в производительность и что с каждым разом делал.
Статья: https://habr.com/ru/articles/1051362/
Платформа: iOS
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
В прошлой статье про нетривиальные анимации я обещал показать «ту самую карту с облаками, zoom и движением по кривой Безье». Пришло время. Начну, правда, не с самой анимации, а с того, что было до неё: прежде чем что-то красиво анимировать на карте, надо это что-то на карте хотя бы нарисовать.
Контекст: я делал геолокационную соцсеть. На карте – «облака», посты, привязанные к точке на местности. Их может быть много. Очень много. И вся история ниже – про то, как я пять раз упёрся в производительность и что с каждым разом делал.
Статья: https://habr.com/ru/articles/1051362/
Платформа: iOS
Please open Telegram to view this post
VIEW IN TELEGRAM
Хабр
Как нарисовать тысячи объектов на карте и не убить FPS: эволюция рендера на Mapbox GL
В прошлой статье про нетривиальные анимации я обещал показать «ту самую карту с облаками, zoom и движением по кривой Безье». Пришло время. Начну, правда, не с самой анимации, а с того, что было до...
Сетчатые градиенты в Jetpack Compose
Долгие годы сетчатые (mesh) градиенты были той прекрасной вещью, которую мы постоянно заимствовали с других платформ. Вы видели их повсюду — в I****, на обоях Apple, на маркетинговых страницах Stripe, в каждом файле Figma, созданном после 2022 года. SwiftUI добавил MeshGradient ещё в iOS 18. На Android мы обходились хитрыми шейдерными хаками и отличными сторонними библиотеками.
Сейчас это изменится. Jetpack Compose теперь имеет собственный API для создания сетчатых градиентов, встроенный прямо в
Статья: https://apptractor.ru/info/articles/setchatye-gradienty-v-jetpack-compose.html
Платформа: Android
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
Долгие годы сетчатые (mesh) градиенты были той прекрасной вещью, которую мы постоянно заимствовали с других платформ. Вы видели их повсюду — в I****, на обоях Apple, на маркетинговых страницах Stripe, в каждом файле Figma, созданном после 2022 года. SwiftUI добавил MeshGradient ещё в iOS 18. На Android мы обходились хитрыми шейдерными хаками и отличными сторонними библиотеками.
Сейчас это изменится. Jetpack Compose теперь имеет собственный API для создания сетчатых градиентов, встроенный прямо в
androidx.compose.ui. В этой статье мы рассмотрим, что это такое, нарисуем несколько примеров и поговорим о том, чем он отличается как от SwiftUI, так и от решений сообщества, которые вы, возможно, уже используете.Статья: https://apptractor.ru/info/articles/setchatye-gradienty-v-jetpack-compose.html
Платформа: Android
Please open Telegram to view this post
VIEW IN TELEGRAM
SwiftStreamingMarkdown - рендеринг Markdown с поддержкой стриминга
SwiftStreamingMarkdown - библиотека от Microsoft для рендеринга Markdown текста, поддерживающая плавную потоковую обработку.
• Плавные и производительные переходы при поступлении нового текста
• Нативный рендеринг встроенных и блочных формул LaTeX
• Интерфейс встроенных ссылок на источники для ответов LLM
• Гибкая настройка типографики, тем оформления и контекстных меню iOS
• Встроенные инструменты для аналитики и отслеживания взаимодействий
SwiftStreamingMarkdown на GitHub: https://github.com/microsoft/SwiftStreamingMarkdown
Платформа: iOS
⭐️: 223
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
SwiftStreamingMarkdown - библиотека от Microsoft для рендеринга Markdown текста, поддерживающая плавную потоковую обработку.
• Плавные и производительные переходы при поступлении нового текста
• Нативный рендеринг встроенных и блочных формул LaTeX
• Интерфейс встроенных ссылок на источники для ответов LLM
• Гибкая настройка типографики, тем оформления и контекстных меню iOS
• Встроенные инструменты для аналитики и отслеживания взаимодействий
SwiftStreamingMarkdown на GitHub: https://github.com/microsoft/SwiftStreamingMarkdown
Платформа: iOS
⭐️: 223
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
•
(iOS Ru) Архитектура, перформанс, дебаг: как мы делали медиаленту•
(iOS Ru) SwiftSyntax: пишем свой DI framework•
(iOS En) iOS 27 Style Glass Sliders Using SwiftUI•
(iOS En) What's new in Swift and SwiftUI (WWDC 2026)•
(iOS En) Setting up Gemini in Xcode's Coding Agent•
(iOS En) Swift Macros Demystified: Build a Freestanding Expression Macro•
(iOS En) Weather App Style Sticky Scroll Section Using SwiftUI•
(And En) How to understand Play’s expanded billing options and lower fees•
(And En) Is THIS How Android Apps Communicate In Future? - Exploring the NEW AppFunctions•
(And En) NEW Scoped ViewModels API in Jetpack Compose•
(Crs Ru) Как мы внедряли Compose Multiplatform в Я.Team•
(Crs Ru) yx_state + yx_scope + yx_navigation: единый стек Flutter-приложений•
(Dev Ru) T-Shape мобильный разработчик•
(Dev Ru) Найм в эпоху AI — собеседования, IT найм, рынок трудаПрошлогодние видео:
•
(iOS Ru) Молот и наковальня iOS-разработчика•
(iOS Ru) А так ли нужны акторы в Swift Concurrency?•
(iOS Ru) Реактивный Swift Concurrency•
(And Ru) Эти фичи Kotlin меняют правила игры•
(And Ru) Что не так с Android разработкой?•
(And Ru) Эволюция Android тестов с Marathon Test RunnerPlease open Telegram to view this post
VIEW IN TELEGRAM
Composables UI - коллекция компонентов для Jetpack Compose и Compose Multiplatform
Composables UI — это набор современных, accessible компонентов для Jetpack Compose и Compose Multiplatform.
Jetpack Compose построен на основе Material Compose, реализации языка дизайна Google Material Design в Compose. Material Compose — отличная отправная точка для создания приложений с помощью Compose. Но он также воспринимается как библиотека компонентов, разработанная для создания приложений Google. Его сложно настраивать как в плане стиля, так и в плане пользовательского опыта. Вам либо нужно принять дизайнерские решения Material, либо перестраивать те же компоненты самостоятельно.
В то же время Jetpack Compose развивается за пределами Android благодаря Compose Multiplatform от JetBrains. Но Material Design выглядит неуместно за пределами Android, особенно на iOS. Material Compose также не разработан с учетом использования курсора. В результате приложения могут казаться слишком большими на настольных компьютерах и в веб-браузере.
Именно эту проблему решает Composables UI, используя следующие принципы:
• Универсальность: компоненты автоматически адаптируются к возможностям устройства, таким как сенсорный ввод, ввод с мыши и клавиатуры.
• Открытый исходный код: код под лицензией MIT, который легко модифицировать.
• Красивые настройки по умолчанию: авторы тщательно продумывают дизайн, чтобы вы могли создавать современные приложения для всех платформ без специальных навыков проектирования.
• Возможность копирования и вставки: каждый компонент находится в отдельном файле, поэтому вы можете скопировать его напрямую.
Composables UI на GitHub: https://github.com/composablehorizons/composables-ui
Платформа: Android/кроссплатформа
⭐️: 37
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
Composables UI — это набор современных, accessible компонентов для Jetpack Compose и Compose Multiplatform.
Jetpack Compose построен на основе Material Compose, реализации языка дизайна Google Material Design в Compose. Material Compose — отличная отправная точка для создания приложений с помощью Compose. Но он также воспринимается как библиотека компонентов, разработанная для создания приложений Google. Его сложно настраивать как в плане стиля, так и в плане пользовательского опыта. Вам либо нужно принять дизайнерские решения Material, либо перестраивать те же компоненты самостоятельно.
В то же время Jetpack Compose развивается за пределами Android благодаря Compose Multiplatform от JetBrains. Но Material Design выглядит неуместно за пределами Android, особенно на iOS. Material Compose также не разработан с учетом использования курсора. В результате приложения могут казаться слишком большими на настольных компьютерах и в веб-браузере.
Именно эту проблему решает Composables UI, используя следующие принципы:
• Универсальность: компоненты автоматически адаптируются к возможностям устройства, таким как сенсорный ввод, ввод с мыши и клавиатуры.
• Открытый исходный код: код под лицензией MIT, который легко модифицировать.
• Красивые настройки по умолчанию: авторы тщательно продумывают дизайн, чтобы вы могли создавать современные приложения для всех платформ без специальных навыков проектирования.
• Возможность копирования и вставки: каждый компонент находится в отдельном файле, поэтому вы можете скопировать его напрямую.
Composables UI на GitHub: https://github.com/composablehorizons/composables-ui
Платформа: Android/кроссплатформа
⭐️: 37
Please open Telegram to view this post
VIEW IN TELEGRAM
❤1
Хардкорная агентская разработка под iOS, часть 1: отдельный Mac Mini для агентов
Я не раз ловил себя на мысли, что я уже давно только и делаю, что жму “allow”, “allow everytime”, редко вникая в суть того, что спрашивает агент, но полностью доверить агенту делать всё, что ему заблагорассудится, мне как-то боязно. Всё-таки на основном макбуке много личных и рабочих данных, которые агент может случайно (или через prompt injection) удалить или слить в сеть. Стрёмно. Поэтому я какое-то время играл в игру “я типа читаю, что ты у меня спрашиваешь”.
Хотя правильное решение — запуск агента в режиме YOLO (в случае
Это первая статья цикла. Здесь — базовая настройка Mac Mini и вся возня с SSH, чтобы YOLO-агент работал на отдельной машине без ручного ввода паролей и переживал разрывы сети. Специфику iOS-разработки (git worktree, параллельное тестирование, idb, прогон приложения, грабли симулятора и прочее) я вынес в следующие части, так что статья будет полезна не только iOS-разработчикам, но и всем, кто хочет запускать YOLO-агентов и не париться о безопасности. С некоторыми оговорками, разумеется, подробности ниже.
Статья: https://habr.com/ru/articles/1052174/
Платформа: iOS
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
Я не раз ловил себя на мысли, что я уже давно только и делаю, что жму “allow”, “allow everytime”, редко вникая в суть того, что спрашивает агент, но полностью доверить агенту делать всё, что ему заблагорассудится, мне как-то боязно. Всё-таки на основном макбуке много личных и рабочих данных, которые агент может случайно (или через prompt injection) удалить или слить в сеть. Стрёмно. Поэтому я какое-то время играл в игру “я типа читаю, что ты у меня спрашиваешь”.
Хотя правильное решение — запуск агента в режиме YOLO (в случае
claude — с флагом --dangerously-skip-permissions). И тогда при правильной постановке задачи агент может часами сам работать и делать то, что нужно, уведомляя меня только по выполнении.Это первая статья цикла. Здесь — базовая настройка Mac Mini и вся возня с SSH, чтобы YOLO-агент работал на отдельной машине без ручного ввода паролей и переживал разрывы сети. Специфику iOS-разработки (git worktree, параллельное тестирование, idb, прогон приложения, грабли симулятора и прочее) я вынес в следующие части, так что статья будет полезна не только iOS-разработчикам, но и всем, кто хочет запускать YOLO-агентов и не париться о безопасности. С некоторыми оговорками, разумеется, подробности ниже.
Статья: https://habr.com/ru/articles/1052174/
Платформа: iOS
Please open Telegram to view this post
VIEW IN TELEGRAM
Искусственный интеллект провел со мной собеседование на должность iOS-разработчика
Две недели назад я искал новые возможности для заработка и наткнулся на платформу экспертов micro1.
Идея у неё простая: вы используете свои профессиональные знания, чтобы помогать в обучении нового поколения моделей искусственного интеллекта.
Я ввёл в поиске «iOS» и нашёл две вакансии iOS-разработчика. Требования были вполне привычными: знание Swift, UIKit и SwiftUI, несколько лет опыта, почасовая оплата.
Я отправил заявку. В тот момент я ещё не понимал, кто — или что именно — будет проводить со мной собеседование.
Статья: https://apptractor.ru/info/articles/iskusstvennyy-intellekt-provel-so-mnoy-sobesedovanie-na-dolzhnost-ios-razrabotchika.html
Платформа: собеседование
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
Две недели назад я искал новые возможности для заработка и наткнулся на платформу экспертов micro1.
Идея у неё простая: вы используете свои профессиональные знания, чтобы помогать в обучении нового поколения моделей искусственного интеллекта.
Я ввёл в поиске «iOS» и нашёл две вакансии iOS-разработчика. Требования были вполне привычными: знание Swift, UIKit и SwiftUI, несколько лет опыта, почасовая оплата.
Я отправил заявку. В тот момент я ещё не понимал, кто — или что именно — будет проводить со мной собеседование.
Статья: https://apptractor.ru/info/articles/iskusstvennyy-intellekt-provel-so-mnoy-sobesedovanie-na-dolzhnost-ios-razrabotchika.html
Платформа: собеседование
Please open Telegram to view this post
VIEW IN TELEGRAM
Copy-on-Write в Swift: подготовка к собеседованию
За годы я сидел по обе стороны стола: и как кандидат, и как собеседующий — в том числе на позиции в крупные продуктовые компании. И именно Copy-on-Write раз за разом оказывался той темой, на которой видно разницу между «слышал слово» и «понимаю механизм». Тема звучит обманчиво просто — «копируем только при записи», — но крупняк любит докапываться до формулировок: не «массив копируется по значению», а когда именно копируется буфер, что проверяется перед записью, почему у функции проверки именно такая сигнатура. Один неаккуратный оборот — и за него тут же цепляются уточняющим вопросом.
Сразу скажу про планку ожиданий, чтобы снять тревогу: на практике от кандидата редко хотят академически точного описания рантайма Swift до последнего бита. Хотят, чтобы вы держали в голове рабочую модель («struct снаружи, общий буфер с refcount внутри, копия на первой записи в разделяемый буфер») и могли её развернуть на пару уровней вглубь, не плавая в базовых понятиях вроде семантики значения и ссылки. Сидя по другую сторону стола, я отсекаю не тех, кто не знает внутренностей компилятора, а тех, кто путается в фундаменте и выдаёт заученные фразы, под которыми ничего нет. Поэтому статья идёт от фундамента к деталям: сначала то, что обязательно надо понимать, потом то, чем можно приятно удивить.
Статья: https://habr.com/ru/articles/1052522/
Платформа: iOS
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
За годы я сидел по обе стороны стола: и как кандидат, и как собеседующий — в том числе на позиции в крупные продуктовые компании. И именно Copy-on-Write раз за разом оказывался той темой, на которой видно разницу между «слышал слово» и «понимаю механизм». Тема звучит обманчиво просто — «копируем только при записи», — но крупняк любит докапываться до формулировок: не «массив копируется по значению», а когда именно копируется буфер, что проверяется перед записью, почему у функции проверки именно такая сигнатура. Один неаккуратный оборот — и за него тут же цепляются уточняющим вопросом.
Сразу скажу про планку ожиданий, чтобы снять тревогу: на практике от кандидата редко хотят академически точного описания рантайма Swift до последнего бита. Хотят, чтобы вы держали в голове рабочую модель («struct снаружи, общий буфер с refcount внутри, копия на первой записи в разделяемый буфер») и могли её развернуть на пару уровней вглубь, не плавая в базовых понятиях вроде семантики значения и ссылки. Сидя по другую сторону стола, я отсекаю не тех, кто не знает внутренностей компилятора, а тех, кто путается в фундаменте и выдаёт заученные фразы, под которыми ничего нет. Поэтому статья идёт от фундамента к деталям: сначала то, что обязательно надо понимать, потом то, чем можно приятно удивить.
Статья: https://habr.com/ru/articles/1052522/
Платформа: iOS
Please open Telegram to view this post
VIEW IN TELEGRAM
BlazeDB - нативная для Swift встраиваемая база данных для локального хранения данных
BlazeDB - встраиваемая зашифрованная однопроцессная документная база данных для Swift с ACID-транзакциями, восстановлением после сбоев на основе журнала предзаписи и шифрованием AES-256-GCM при хранении. Для каждой базы данных создаётся отдельный зашифрованный файл. Не требует отдельного сервера и обязательных сетевых запросов.
BlazeDB на GitHub: https://github.com/Mikedan37/BlazeDB
Платформа: iOS
⭐️: 13
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
BlazeDB - встраиваемая зашифрованная однопроцессная документная база данных для Swift с ACID-транзакциями, восстановлением после сбоев на основе журнала предзаписи и шифрованием AES-256-GCM при хранении. Для каждой базы данных создаётся отдельный зашифрованный файл. Не требует отдельного сервера и обязательных сетевых запросов.
BlazeDB на GitHub: https://github.com/Mikedan37/BlazeDB
Платформа: iOS
⭐️: 13
Please open Telegram to view this post
VIEW IN TELEGRAM
Лента роликов на iOS: опыт работы с AVPlayer
В T-Инвестициях на iOS лента коротких роликов — это 90% трафика, именно ее оптимизации мы уделяем больше всего внимания. В первой версии пользователи могли ждать старта видео больше 15 секунд. Мы разобрались в ограничениях AVPlayer, оптимизировали буферизацию и снизили задержки на 12% в хвосте распределения. Рассказываю, как мы улучшали пользовательский опыт и почему AVPlayer не лучшее решение для ленты роликов.
Статья: https://habr.com/ru/companies/tbank/articles/1053402/
Платформа: iOS
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
В T-Инвестициях на iOS лента коротких роликов — это 90% трафика, именно ее оптимизации мы уделяем больше всего внимания. В первой версии пользователи могли ждать старта видео больше 15 секунд. Мы разобрались в ограничениях AVPlayer, оптимизировали буферизацию и снизили задержки на 12% в хвосте распределения. Рассказываю, как мы улучшали пользовательский опыт и почему AVPlayer не лучшее решение для ленты роликов.
Статья: https://habr.com/ru/companies/tbank/articles/1053402/
Платформа: iOS
Please open Telegram to view this post
VIEW IN TELEGRAM
Внедрение Gemini Nano в реальное приложение: ограничения, о которых никто не предупреждает
Я выпустил Android-приложение, ежедневные аналитические данные которого формируются Gemini Nano, работающим полностью на телефоне — без облака, без подсказок и вывода данных за пределы устройства. В документации интеграция казалась тривиальной. В производственной среде возникли три сложных момента, которые изменили мою архитектуру. Вот описание, которое я хотел бы иметь до начала работы.
Статья: https://apptractor.ru/info/articles/gemini-nano-real.html
Платформа: Android
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
Я выпустил Android-приложение, ежедневные аналитические данные которого формируются Gemini Nano, работающим полностью на телефоне — без облака, без подсказок и вывода данных за пределы устройства. В документации интеграция казалась тривиальной. В производственной среде возникли три сложных момента, которые изменили мою архитектуру. Вот описание, которое я хотел бы иметь до начала работы.
Статья: https://apptractor.ru/info/articles/gemini-nano-real.html
Платформа: Android
Please open Telegram to view this post
VIEW IN TELEGRAM
Laydr - file-based типобезопасная система навигации
Laydr — это file-based типобезопасная система навигации для Compose Multiplatform и Android-приложений на Compose. Структура приложения описывается через наглядный каталог
Laydr пригодится, когда навигация в Kotlin-приложении превратилась в сеть скопированных строк маршрутов, дублирующейся настройки графа, повторного разбора аргументов, обёрток макетов, реестров вкладок и устаревшего связующего кода. Маршруты становятся понятной структурой каталогов, Laydr генерирует предсказуемую навигационную обвязку, а интерфейс на Compose, состояние, данные, доступ к зависимостям, навигационные элементы и платформенные правила остаются явно описанными в коде приложения.
Laydr на GitHub: https://github.com/mobiletoly/laydr
Платформа: Android/кроссплатформа
⭐️: 7
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
Laydr — это file-based типобезопасная система навигации для Compose Multiplatform и Android-приложений на Compose. Структура приложения описывается через наглядный каталог
routes/, а Laydr генерирует Kotlin-маршруты, билдеры путей, карты маршрутов, локальные Compose-точки входа и интеграцию с Navigation 3 — всё то, что при ручной поддержке со временем обычно начинает расходиться и устаревать.Laydr пригодится, когда навигация в Kotlin-приложении превратилась в сеть скопированных строк маршрутов, дублирующейся настройки графа, повторного разбора аргументов, обёрток макетов, реестров вкладок и устаревшего связующего кода. Маршруты становятся понятной структурой каталогов, Laydr генерирует предсказуемую навигационную обвязку, а интерфейс на Compose, состояние, данные, доступ к зависимостям, навигационные элементы и платформенные правила остаются явно описанными в коде приложения.
Laydr на GitHub: https://github.com/mobiletoly/laydr
Платформа: Android/кроссплатформа
⭐️: 7
Please open Telegram to view this post
VIEW IN TELEGRAM
XCUI, Tests & Robots. Разбираем нативную автоматизацию iOS на винтики. Часть 1
В прошлых статьях мы разобрались, как искать логи и креш‑отчёты на iOS‑устройствах — и делали это вручную. Этот навык остаётся базовым на проекте любого размера: без него невозможно понять причину сбоя. Но есть и вторая часть работы — сами проверки, то есть прогон пользовательских сценариев. Пока приложение небольшое, их можно прокликивать руками. По мере роста проекта количество однотипных проверок увеличивается, и повторять их вручную перед каждым релизом становится всё дороже.
Возникает логичный вопрос: можно ли автоматизировать именно эту рутину, чтобы проверки проходили без нашего участия, а нам лишь оставалось разобраться с причинами сбоев, если такие возникнут? Здесь нам помогут нативные автотесты на XCUITest. Они позволяют системно, а не от случая к случаю, прогонять пользовательские сценарии, отслеживать падения и проверять стабильность.
Этой статьёй мы открываем цикл о UI‑тестировании iOS приложений. Начнём с основ: разберёмся, какое место UI‑тесты занимают в пирамиде тестирования, познакомимся с инструментами и постепенно перейдём к построению устойчивых тестов с применением проверенных паттернов.
Статья: https://habr.com/ru/articles/1053724/
Платформа: iOS
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
В прошлых статьях мы разобрались, как искать логи и креш‑отчёты на iOS‑устройствах — и делали это вручную. Этот навык остаётся базовым на проекте любого размера: без него невозможно понять причину сбоя. Но есть и вторая часть работы — сами проверки, то есть прогон пользовательских сценариев. Пока приложение небольшое, их можно прокликивать руками. По мере роста проекта количество однотипных проверок увеличивается, и повторять их вручную перед каждым релизом становится всё дороже.
Возникает логичный вопрос: можно ли автоматизировать именно эту рутину, чтобы проверки проходили без нашего участия, а нам лишь оставалось разобраться с причинами сбоев, если такие возникнут? Здесь нам помогут нативные автотесты на XCUITest. Они позволяют системно, а не от случая к случаю, прогонять пользовательские сценарии, отслеживать падения и проверять стабильность.
Этой статьёй мы открываем цикл о UI‑тестировании iOS приложений. Начнём с основ: разберёмся, какое место UI‑тесты занимают в пирамиде тестирования, познакомимся с инструментами и постепенно перейдём к построению устойчивых тестов с применением проверенных паттернов.
Статья: https://habr.com/ru/articles/1053724/
Платформа: iOS
Please open Telegram to view this post
VIEW IN TELEGRAM
Хабр
Сам себе Шерлок: 7 способов найти логи и поймать баг на iOS
Привет, Хабр! Меня зовут Максим, и я тестирую мобильные приложения в ATI.SU. Знакома ситуация, когда кнопка не работает, приложение виснет, анимации тормозят, но при этом нет никаких...
Apple Container уже здесь, и он изменит ваш подход к iOS-разработке
Вы уже несколько лет пишете на Swift. Вы досконально знаете Xcode. Но в экосистеме Apple появился новый инструмент, который большинство разработчиков игнорируют — и те, кто очнётся раньше, будут создавать приложения быстрее, выпускать более чистые версии и отлаживать код эффективнее, чем все остальные.
Apple Container — это не просто новый фреймворк. Это значительный сдвиг в мышлении Apple относительно изоляции приложений, управления средами и рабочими процессами разработчиков. Мы разберёмся, что это такое на самом деле, почему это важно и как это реализовать уже сегодня.
Статья: https://apptractor.ru/info/articles/apple-container.html
Платформа: iOS
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
Вы уже несколько лет пишете на Swift. Вы досконально знаете Xcode. Но в экосистеме Apple появился новый инструмент, который большинство разработчиков игнорируют — и те, кто очнётся раньше, будут создавать приложения быстрее, выпускать более чистые версии и отлаживать код эффективнее, чем все остальные.
Apple Container — это не просто новый фреймворк. Это значительный сдвиг в мышлении Apple относительно изоляции приложений, управления средами и рабочими процессами разработчиков. Мы разберёмся, что это такое на самом деле, почему это важно и как это реализовать уже сегодня.
Статья: https://apptractor.ru/info/articles/apple-container.html
Платформа: iOS
Please open Telegram to view this post
VIEW IN TELEGRAM
👎3
Apple Shipkit - готовая инфраструктура релизной инженерии для публикации приложений
Apple Shipkit - инструмент для выпуска релизов приложений для iOS и macOS. Подписание кода, CI через GitHub Actions для запросов на слияние, новые сертификаты для каждого релиза CI, загрузка в TestFlight, отправка в App Store — всё это уже настроено. Не зависит от UI-фреймворка, сетевого стека или уровня хранения данных.
Впервые выпускаете приложение для iOS или Mac? Начните с
Используете ИИ-агентов для разработки приложений (Claude Code, Cursor, Codex и т. д.)? Начните с файла
Apple Shipkit на GitHub: https://github.com/indiagrams/apple-shipkit
Платформа: iOS
⭐️: 15
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
Apple Shipkit - инструмент для выпуска релизов приложений для iOS и macOS. Подписание кода, CI через GitHub Actions для запросов на слияние, новые сертификаты для каждого релиза CI, загрузка в TestFlight, отправка в App Store — всё это уже настроено. Не зависит от UI-фреймворка, сетевого стека или уровня хранения данных.
Впервые выпускаете приложение для iOS или Mac? Начните с
docs/GETTING-STARTED.md — все необходимые условия, все действия Apple, 30–60 минут до первой сборки TestFlight.Используете ИИ-агентов для разработки приложений (Claude Code, Cursor, Codex и т. д.)? Начните с файла
AGENTS.md — инварианты расширяемости при создании форков, карта владения файлами, антипаттерны, которых следует избегать. Независимый от поставщика формат agents.md, один файл для всех основных агентов.Apple Shipkit на GitHub: https://github.com/indiagrams/apple-shipkit
Платформа: iOS
⭐️: 15
Please open Telegram to view this post
VIEW IN TELEGRAM
Как энергосбережение на Android мешало Seamless-авторизации
Недавно, внедряя в приложение новую фичу, мы столкнулись с тем, что она в упор отказывалась работать – но только на Android. Мы дебажили ее полторы недели, перепробовали все возможные варианты и закошмарили всех доступных операторов связи, прежде чем узнали, что все дело было… в энергосбережении.
Статья: https://habr.com/ru/companies/banki/articles/1052378/
Платформа: Android
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
Недавно, внедряя в приложение новую фичу, мы столкнулись с тем, что она в упор отказывалась работать – но только на Android. Мы дебажили ее полторы недели, перепробовали все возможные варианты и закошмарили всех доступных операторов связи, прежде чем узнали, что все дело было… в энергосбережении.
Статья: https://habr.com/ru/companies/banki/articles/1052378/
Платформа: Android
Please open Telegram to view this post
VIEW IN TELEGRAM
👍1
Миграция приложения на Navigation 3: боль, переработки и хотфиксы
В начале 2026 года мы перевели наше Android-приложение, насчитывающее более 170 экранов, с Navigation 2 на Navigation 3.
Navigation 3 предлагает типобезопасные точки назначения, сохраняемые стеки возврата и более современный API навигации. В целом миграция оказалась относительно простой, но по ходу работы мы всё же столкнулись с несколькими неожиданными сложностями — от обработки нижних панелей (bottom sheet) до исправления сбоев, которые проявились только после выпуска приложения.
В этой статье я расскажу, почему мы решили перейти на Navigation 3, как организовали процесс миграции, с какими проблемами столкнулись и какие выводы сделали.
Если вы тоже планируете переход на Navigation 3, наш опыт может сэкономить вам время и избавить от нескольких головных болей.
Статья: https://apptractor.ru/info/articles/migratsiya-prilozheniya-na-navigation-3-bol-pererabotki-i-hotfiksy.html
Платформа: Android
👨🦯➡️ AppFiles: код, инструменты, практики, производительность
В начале 2026 года мы перевели наше Android-приложение, насчитывающее более 170 экранов, с Navigation 2 на Navigation 3.
Navigation 3 предлагает типобезопасные точки назначения, сохраняемые стеки возврата и более современный API навигации. В целом миграция оказалась относительно простой, но по ходу работы мы всё же столкнулись с несколькими неожиданными сложностями — от обработки нижних панелей (bottom sheet) до исправления сбоев, которые проявились только после выпуска приложения.
В этой статье я расскажу, почему мы решили перейти на Navigation 3, как организовали процесс миграции, с какими проблемами столкнулись и какие выводы сделали.
Если вы тоже планируете переход на Navigation 3, наш опыт может сэкономить вам время и избавить от нескольких головных болей.
Статья: https://apptractor.ru/info/articles/migratsiya-prilozheniya-na-navigation-3-bol-pererabotki-i-hotfiksy.html
Платформа: Android
Please open Telegram to view this post
VIEW IN TELEGRAM