<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0" xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:wfw="http://wellformedweb.org/CommentAPI/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:atom="http://www.w3.org/2005/Atom" xmlns:sy="http://purl.org/rss/1.0/modules/syndication/" xmlns:slash="http://purl.org/rss/1.0/modules/slash/">
  <channel>
    <language>ru</language>
    <title>Android</title>
    <description>Материалы для начинающих и продвинутых Android-разработчиков, а также новости из мира популярной мобильной ОС</description>
    <link>https://tproger.ru/tag/android</link>
    <atom:link href="https://tproger.ru/tag/android/feed" rel="self" type="application/rss+xml"/>
    <lastBuildDate>Sun, 18 Oct 2026 00:53:39 GMT</lastBuildDate>
    <sy:updatePeriod>hourly</sy:updatePeriod>
    <sy:updateFrequency>12</sy:updateFrequency>
    <image>
      <title>Android</title>
      <link>https://tproger.ru</link>
      <url>https://tproger.ru/apple-touch-icon.png</url>
    </image>
    <item>
      <title>Google Play задерживал уведомления о покупках на два и четыре часа</title>
      <link>https://tproger.ru/news/google-play-zaderzhival-uvedomleniya-o-pokupkah-na-dva-i-chetyre-cha</link>
      <comments>https://tproger.ru/news/google-play-zaderzhival-uvedomleniya-o-pokupkah-na-dva-i-chetyre-cha?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Tproger]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/google-play-zaderzhival-uvedomleniya-o-pokupkah-na-dva-i-chetyre-cha</guid>
      <description><![CDATA[<p>Две покупки, где eventTimeMillis в RTDN появился через 3 ч 55 мин и 2 ч 11 мин после оплаты; официальный инцидент Play Billing 1 сентября длился три часа.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/google-play-zaderzhival-uvedomleniya-o-pokupkah-na-dva-i-chetyre-cha">Google Play задерживал уведомления о покупках на два и четыре часа</a>»</p>]]></description>
      <category><![CDATA[Android]]></category>
      <category><![CDATA[Мобильная разработка]]></category>
      <category><![CDATA[Google Play]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Thu, 03 Sep 2026 06:00:06 GMT</pubDate>
      <content:encoded><![CDATA[<p>Разработчик под ником Park112 2 сентября <a href="https://support.google.com/googleplay/android-developer/thread/464494337">опубликовал</a> в сообществе Google Play разбор задержек Real-time Developer Notifications (RTDN), уведомлений, которыми Play сообщает серверу приложения о покупках и подписках. В двух случаях поле eventTimeMillis появилось через 3 часа 55 минут и 2 часа 11 минут после того, как пользователь заплатил. Сам платёж при этом проходил штатно, а Developer API позже подтверждал покупку.</p><p>Для приложения с серверной выдачей контента это означает, что пользователь заплатил и несколько часов не получает подписку или покупку. Google <a href="https://status.play.google.com/incidents/n5md7YLZQsKV6rFXFXDG">зафиксировала</a> инцидент Play Billing 1 сентября с 08:54 до 11:43 UTC и объявила о решении в 13:59 UTC, но по данным отчёта задержки продолжались и после закрытия инцидента. Официального комментария Google к отчёту на момент публикации нет.</p><ul><li>Две задержанные транзакции: от покупки до RTDN 3 ч 55 мин 40 с и 2 ч 11 мин 55 с; доставка уже созданного события на сервер заняла 0,6 и 1,4 с.</li><li>Девять нормальных транзакций того же периода: 0,086–0,148 с до eventTimeMillis, доставка 0,3–2,3 с.</li><li>Pub/Sub со стороны разработчика работал: максимум одно неподтверждённое сообщение возрастом до 3 с, push-запросы завершались ack_200, максимальная задержка push 4,5 с.</li><li>Затронуты и одноразовые покупки, и подписки, в нескольких странах и валютах; Россия в отчёте не названа.</li><li>Официальный инцидент Play Billing: 1 сентября, 08:54–11:43 UTC; отчёт утверждает, что задержки были и позже.</li></ul><h2>Где именно терялось время</h2><p>Автор отчёта разложил путь уведомления на два отрезка. Первый: от завершения покупки до момента, когда Google создала событие (это и есть eventTimeMillis, время события в миллисекундах Unix). Второй: от создания события до получения его сервером через Pub/Sub. Второй отрезок оставался быстрым, 0,6 и 1,4 секунды в проблемных случаях. Всё время ушло на первый: уведомление не доходило часами, при том что метрики Pub/Sub со стороны разработчика чистые: очередь пустая, подтверждения приходят, задержка доставки в пределах секунд. На каком именно внутреннем этапе у Google застревало событие, по этим данным установить нельзя.</p><p>Есть оговорка, которую автор делает сам: он не сохраняет внешнее поле publishTime из конверта Pub/Sub, поэтому не может доказать, где именно внутри инфраструктуры Google лежала задержка, до публикации в Pub/Sub или после. Вывод о том, что событие создавалось поздно, сделан по eventTimeMillis.</p><h2>Почему RTDN нельзя считать единственным источником правды</h2><p>Документация Google <a href="https://developer.android.com/google/play/billing/rtdn-reference">требует</a> после получения RTDN вызывать Developer API: уведомление не содержит полного состояния покупки. Этот случай добавляет к этому редакционный вывод: уведомление может прийти поздно или, в худшем сценарии, не прийти вовремя вообще. Если сервер выдаёт доступ только по RTDN, при задержке пользователь остаётся без оплаченного. Если клиент после покупки сам сообщает серверу токен покупки, а сервер проверяет его через Developer API, задержка RTDN ни на что не влияет.</p><h2>Что проверить в своём приложении</h2><ol><li>Убедиться, что клиент после успешной покупки отправляет purchase token на сервер, а сервер подтверждает его через Google Play Developer API, не дожидаясь RTDN.</li><li>Логировать eventTimeMillis и publishTime из конверта Pub/Sub вместе с временем получения, чтобы при следующем инциденте было видно, на каком отрезке задержка.</li><li>Проверить логи за 1–2 сентября на покупки, у которых разница между временем оплаты в клиенте и RTDN больше нескольких минут.</li><li>Не завязывать acknowledge покупки только на RTDN: неподтверждённая в течение трёх дней покупка возвращается пользователю автоматически.</li></ol><p>Отчёт говорит о нескольких странах и валютах, но Россию не называет; учитывая, что оплата в Google Play российскими картами не работает с 2022 года, задержки касаются в первую очередь приложений с зарубежной аудиторией. Что ещё менялось в правилах Play в последние дни: <a href="https://tproger.ru/news/google-play-zastavil-ankidroid-ubrat-ssylku-na-pozhertvovaniya-k">требование к AnkiDroid</a> убрать ссылку на пожертвования и стабильный релиз <a href="https://tproger.ru/news/android-studio-quail-4-vywla-v-stabilnoj-versii-lokalnaya-gemm">Android Studio Quail 4</a>. Появится ли по этому отчёту официальный ответ Google или новая запись в статусе Play Billing, мы проверим.</p><p>Источники: <a href="https://support.google.com/googleplay/android-developer/thread/464494337">Отчёт разработчика в сообществе Google Play</a>, <a href="https://status.play.google.com/incidents/n5md7YLZQsKV6rFXFXDG">Google Play Status Dashboard: инцидент Play Billing</a>, <a href="https://developer.android.com/google/play/billing/rtdn-reference">Справочник RTDN</a></p>]]></content:encoded>
    </item>
    <item>
      <title>Google Play заставил AnkiDroid убрать из приложения ссылку на пожертвования</title>
      <link>https://tproger.ru/news/google-play-zastavil-ankidroid-ubrat-ssylku-na-pozhertvovaniya-k</link>
      <comments>https://tproger.ru/news/google-play-zastavil-ankidroid-ubrat-ssylku-na-pozhertvovaniya-k?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Tproger]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/google-play-zastavil-ankidroid-ubrat-ssylku-na-pozhertvovaniya-k</guid>
      <description><![CDATA[<p>Google Play отклонил обновления AnkiDroid из-за ссылки на Open Collective и пригрозил удалением приложения везде, кроме Индии и России. Хронология переписки, какое правило сработало, что решили мейнтейнеры и что проверить в своём приложении.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/google-play-zastavil-ankidroid-ubrat-ssylku-na-pozhertvovaniya-k">Google Play заставил AnkiDroid убрать из приложения ссылку на пожертвования</a>»</p>]]></description>
      <category><![CDATA[Open Source]]></category>
      <category><![CDATA[Android]]></category>
      <category><![CDATA[Мобильная разработка]]></category>
      <category><![CDATA[Google]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Tue, 01 Sep 2026 17:29:30 GMT</pubDate>
      <content:encoded><![CDATA[<p>Мейнтейнеры <b>AnkiDroid</b>, открытого Android-клиента для карточек Anki, 29 августа <a href="https://github.com/ankidroid/Anki-Android/issues/21656">опубликовали</a> переписку с Google Play: магазин признал ссылку на страницу пожертвований Open Collective нарушением платёжной политики, отклонил обновления и пригрозил удалить приложение 11 сентября везде, кроме Индии и России. 1 сентября тему обсуждали на Hacker News, а команда объявила, что убирает ссылки на донаты из сборки для Play «под протестом».</p><p>История касается не только AnkiDroid. Правило, на которое ссылается Google, запрещает вести пользователей к оплате мимо Google Play Billing; пожертвования допускаются лишь для организаций с подтверждённым налоговым статусом благотворительной и на определённых условиях. У большинства open source-проектов таких документов нет.</p><ul><li>Google Play счёл ссылку AnkiDroid на Open Collective нарушением Payments Policy; первое уведомление пришло 20 июля, документы проекта Google 7 августа не принял.</li><li>Требование: убрать ссылки на платежи вне Google Play Billing или подтвердить статус tax-exempt организации; сам Play Billing для пожертвований таких организаций запрещён.</li><li>Дата удаления при отсутствии исправления: сначала 3 августа, затем 11 сентября 2026 года, оба раза с оговоркой «везде, кроме Индии и России»; причина исключения не объяснена.</li><li>AnkiDroid связан с организацией статуса 501(c)(6), в приложении ничего не продаётся, Open Collective — единственный источник денег; мейнтейнеры убирают ссылки из Play-сборки ветки 2.24.x.</li><li>Разработчикам с кнопкой «поддержать» в бесплатном приложении: ссылка на внешнюю площадку без статуса благотворительной организации — ровно случай AnkiDroid.</li></ul><h2>Что именно нарушил AnkiDroid</h2><p>По тикету Google номер 9-2777000041594, нарушение относится к Payments Policy: внутри приложения была ссылка на Open Collective, платформу, через которую проект собирает пожертвования, а проблема помечена для сборки с version code 122400300. Google предложил два выхода: убрать все ссылки, «направляющие пользователей на оплату через системы, отличные от биллинга Google Play», либо доказать, что AnkiDroid — организация со статусом tax-exempt, освобождённая от налогов по американским правилам.</p><blockquote>Remove any links directing users to make payments using systems other than Google Play's billing system.</blockquote><p>Загвоздка в том, что политика Google одновременно запрещает использовать сам Google Play Billing для пожертвований освобождённым от налогов организациям, а AnkiDroid связан с организацией статуса 501(c)(6), профессиональной ассоциацией, а не благотворительным фондом. То есть донаты через Play невозможны, а ссылка наружу запрещена. Команда отдельно подчёркивает, что в приложении ничего не продаётся, Open Collective — единственный источник финансирования, а сам AnkiDroid не связан с Anki, AnkiWeb, AnkiMobile и AnkiHub.</p><h2>Хронология</h2><ul><li>20 июля 2026 года: первое автоматическое уведомление Google с датой удаления 3 августа «везде, кроме Индии и России».</li><li>7 августа: Google сообщил, что присланные документы нарушение не устранили.</li><li>Позднее уведомление: новая дата удаления 11 сентября 2026 года с той же региональной оговоркой.</li><li>29 августа: мейнтейнеры открыли issue #21656 с просьбой о помощи сообщества и решением убрать ссылки «под протестом».</li><li>1 сентября: обсуждение на Hacker News; изменений в позиции Google в issue нет.</li></ul><h2>Почему Индия и Россия отдельно</h2><p>В уведомлениях Google оба раза называл дату удаления приложения из Play «везде, кроме Индии и России». Причина исключения в переписке не объясняется; в issue нет и подтверждения, что удаление где-либо уже произошло. Для пользователей из России это означает лишь то, что из Play приложение не пропадёт. Для разработчиков, которые распространяют приложение и через RuStore или прямой установкой, напрашивается редакционный вариант: держать ссылки на пожертвования только вне Play-сборки; AnkiDroid подтвердил лишь удаление ссылок из сборки для Play.</p><h2>Что проверить в своём приложении</h2><ul><li>Найдите в приложении все ссылки на внешние платежи: Boosty, Patreon, Open Collective, «Купить кофе», номера кошельков, QR-коды. Ссылка на площадку пожертвований без подтверждённого статуса благотворительной организации — ровно случай AnkiDroid.</li><li>Разделите сборки: в версию для Google Play ссылки не включайте, в сборку для F-Droid, RuStore или прямой загрузки APK оставьте.</li><li>Не рассчитывайте на «объяснить в апелляции»: AnkiDroid отправлял документы, Google 7 августа ответил, что нарушение не устранено.</li><li>Если приложение платное или с подпиской, донаты как отдельный товар возможны только через Google Play Billing с его комиссией, и только если вы не благотворительная организация.</li><li>Держите под рукой историю уведомлений: первое письмо AnkiDroid получил 20 июля, а дедлайн подошёл через шесть недель.</li></ul><h2>Что дальше</h2><p>Ближайшая веха — сборка ветки 2.24.x без ссылок на донаты. Дата 11 сентября покажет, выполнит ли Google угрозу удаления в остальных странах. Реакцию Google на публичность ждать имеет смысл, но на момент публикации в issue никаких изменений позиции магазина нет, а сам Google на запросы в треде не отвечал.</p><p>Источники: <a href="https://github.com/ankidroid/Anki-Android/issues/21656">Issue #21656 в репозитории AnkiDroid</a>, <a href="https://news.ycombinator.com/item?id=49520022">Обсуждение на Hacker News</a></p><p>Изображение на обложке: AnkiDroid</p>]]></content:encoded>
    </item>
    <item>
      <title>Android Studio Quail 4 вышла в стабильной версии с локальной Gemma 4 внутри IDE</title>
      <link>https://tproger.ru/news/android-studio-quail-4-vywla-v-stabilnoj-versii-lokalnaya-gemm</link>
      <comments>https://tproger.ru/news/android-studio-quail-4-vywla-v-stabilnoj-versii-lokalnaya-gemm?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Tproger]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/android-studio-quail-4-vywla-v-stabilnoj-versii-lokalnaya-gemm</guid>
      <description><![CDATA[<p>Google выпустила стабильную Android Studio Quail 4 (2026.1.4): локальная Gemma 4 прямо в IDE, офлайн-рефакторинг без отправки кода, 23 встроенных навыка агента. Требования к памяти, как включить, что ещё вошло в релиз и кому это подойдёт.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/android-studio-quail-4-vywla-v-stabilnoj-versii-lokalnaya-gemm">Android Studio Quail 4 вышла в стабильной версии с локальной Gemma 4 внутри IDE</a>»</p>]]></description>
      <category><![CDATA[Android]]></category>
      <category><![CDATA[Мобильная разработка]]></category>
      <category><![CDATA[Google]]></category>
      <category><![CDATA[IDE]]></category>
      <category><![CDATA[Искусственный интеллект]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Tue, 01 Sep 2026 17:26:07 GMT</pubDate>
      <content:encoded><![CDATA[<p>Google 1 сентября <a href="https://android-developers.googleblog.com/2026/09/leverage-gemma-4-android-studio-quail.html">объявила</a> стабильной <b>Android Studio Quail 4</b>, версию 2026.1.4. Главное в релизе — локальная модель <b>Gemma 4</b>, которая запускается прямо внутри IDE: агент выполняет многофайловые рефакторинги без отправки исходников в облако и без квот на токены. Для команд, которым запрещено отдавать код наружу, это штатный способ пользоваться ИИ-агентом в официальной IDE Android; для остальных — способ не упираться в лимиты облачных моделей.</p><p>Quail 4 — финальный стабильный выпуск линейки Quail, и автор анонса, менеджер продукта Android Studio Амман Фасил Асфав, называет её «готовой к использованию в продакшене». Помимо локальной модели в IDE вошли 23 готовых «навыка» агента под типовые задачи Android, кликабельные ссылки на классы и методы в ответах, индикаторы состояния в списке чатов и сворачиваемый показ рассуждений модели.</p><ul><li>Android Studio 2026.1.4 (Quail 4) стабильна; это последний выпуск линейки Quail.</li><li>Gemma 4 работает локально через встроенный движок инференса; код не покидает машину, лимитов на токены нет.</li><li>Минимум 12 ГБ оперативной памяти для самых маленьких моделей; по словам Google, «машины с 32 ГБ и больше будут работать лучше всего».</li><li>23 встроенных навыка агента (AGP 9 Upgrade, Android Profiler, Navigation 3, Adaptive и другие) выбираются автоматически по запросу и отключаются одним переключателем.</li><li>Локальный режим включается в Agent model selector или в Settings, Tools, AI, Model Providers, Gemma; веса IDE скачивает, проверяет и обновляет сама.</li></ul><h2>Как устроена локальная модель</h2><p>Android Studio сама скачивает веса Gemma 4, проверяет их и обновляет. Внутри IDE работает лёгкий движок инференса, поэтому отдельный сервер вроде Ollama поднимать не нужно. Модель выбирается в переключателе Agent model selector или в настройках: Settings, Tools, AI, Model Providers, Gemma. После этого агент работает локально: анонс подтверждает многофайловые рефакторинги полностью офлайн; остальные сценарии облачного агента Google для локального режима отдельно не перечисляет. Google подчёркивает два свойства: исходный код не покидает локальную машину, и квоты на токены не действуют.</p><blockquote>Your source code never leaves your local machine and you never hit token quota limits.</blockquote><p>Требования к железу компания называет прямо: самые маленькие варианты Gemma 4 стартуют на 12 ГБ оперативной памяти, а лучше всего работают машины с 32 ГБ и больше. На ноутбуке с 16 ГБ, где рядом крутятся эмулятор и Gradle, стоит ожидать, что локальная модель окажется медленнее и заметно проще облачной. Это цена за приватность и отсутствие квот, и оценивать её нужно под свой проект: по нашему опыту, многофайловый рефакторинг на маленькой модели требует больше ручных проверок, чем на облачной.</p><h2>Что такое навыки агента</h2><p>«Навык» здесь — заранее написанная инструкция с контекстом под конкретную задачу Android: как обновить проект на Android Gradle Plugin 9, как читать данные профилировщика, как переехать на Navigation 3 или сделать адаптивную вёрстку под планшеты и складные устройства. В Quail 4 таких навыков 23, и IDE подбирает их по метаданным запроса сама. Если подбор мешает, навыки отключаются общим переключателем в настройках IDE.</p><h2>Что ещё изменилось в интерфейсе агента</h2><ul><li>Ссылки на классы, функции, методы и пути файлов в ответах агента стали кликабельными.</li><li>В списке Recent Chats появились индикаторы: загрузка, ожидание ввода, завершение фоновой задачи.</li><li>Вкладки Task и Walkthrough объединены во вкладку Summary of Changes; по ней стоит проверять правки перед применением.</li><li>Рассуждения моделей с режимом reasoning показываются сворачиваемым блоком.</li></ul><h2>Что менять в проекте и процессе</h2><ul><li>Обновите Android Studio до 2026.1.4 через Check for Updates; проект менять не нужно.</li><li>Если в компании запрещено отправлять код во внешние сервисы, включите Gemma в Model Providers и убедитесь, что облачный провайдер в настройках не выбран.</li><li>Проверьте память: 12 ГБ — заявленный минимум для самых маленьких моделей, 32 ГБ и больше — рекомендация Google; на 16 ГБ закройте эмулятор перед работой агента или пользуйтесь физическим устройством.</li><li>Для миграции на AGP 9 попробуйте одноимённый навык: это задача с сотней мелких правок, где агент экономит время.</li><li>Региональных оговорок в анонсе нет, но доступность загрузки весов из России Google не подтверждает; проверяйте на своей машине. Локальный режим не требует подписки на облачные модели.</li></ul><h2>Контекст</h2><p>Линейка Quail шла к этому весь цикл: в Quail 2 появились параллельные чаты с агентом, затем навыки, интеграция с Firebase и первая поддержка локальных моделей в Canary-сборках. Quail 4 закрывает линейку и делает локальный режим штатным в стабильной версии. Следующая линейка Android Studio получит новое кодовое имя; сохранится ли в ней локальная Gemma как основной сценарий, Google не говорит, и это предположение редакции по тону анонса.</p><p>Источники: <a href="https://android-developers.googleblog.com/2026/09/leverage-gemma-4-android-studio-quail.html">Leverage Android skills and Gemma 4 in Android Studio Quail 4 (Android Developers Blog)</a>, <a href="https://developer.android.com/studio/releases">Android Studio release notes</a></p><p>Изображение на обложке: Google, Android Developers Blog</p>]]></content:encoded>
    </item>
    <item>
      <title>Один фреймворк для Android и iOS: звучит круто, работает?  Нет</title>
      <link>https://tproger.ru/articles/odin-frejmvork-dlya-android-i-ios-zvuchit-kruto-rabotaet-net</link>
      <comments>https://tproger.ru/articles/odin-frejmvork-dlya-android-i-ios-zvuchit-kruto-rabotaet-net?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Роман Новохацкий]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/odin-frejmvork-dlya-android-i-ios-zvuchit-kruto-rabotaet-net</guid>
      <description><![CDATA[<p>Почему единый кроссплатформенный фреймворк для автотестов Android и iOS не работает на практике и когда стоит разделить его на два отдельных проекта.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/odin-frejmvork-dlya-android-i-ios-zvuchit-kruto-rabotaet-net">Один фреймворк для Android и iOS: звучит круто, работает?  Нет</a>»</p>]]></description>
      <category><![CDATA[Java]]></category>
      <category><![CDATA[Тестирование]]></category>
      <category><![CDATA[Android]]></category>
      <category><![CDATA[Git]]></category>
      <category><![CDATA[Распознавание]]></category>
      <category><![CDATA[iOS]]></category>
      <category><![CDATA[Работа]]></category>
      <category><![CDATA[Swift]]></category>
      <category><![CDATA[HR]]></category>
      <category><![CDATA[GitLab]]></category>
      <category><![CDATA[Kotlin]]></category>
      <category><![CDATA[Финтех]]></category>
      <category><![CDATA[QA]]></category>
      <category><![CDATA[Приложение]]></category>
      <category><![CDATA[Сервер]]></category>
      <category><![CDATA[Библиотеки]]></category>
      <category><![CDATA[Разработка]]></category>
      <category><![CDATA[Инфраструктура]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Thu, 23 Jul 2026 13:20:45 GMT</pubDate>
      <content:encoded><![CDATA[<p>Я сделал автотесты на Appium для Android и iOS в одном проекте. Один репозиторий, общий фреймворк, общие Page Objects, общие steps. Красота.</p><p>Потом проект вырос, в команду пришли ещё люди, и стало понятно: этот красивый монолит пора разделять.</p><p>Это было взвешенное решение. В какой-то момент общий фреймворк превратился в поле мерж-конфликтов, где ты уже не тесты пишешь, а разбираешься, кто чей page object сломал и почему Android отвалился после правки для iOS.</p><p>Appium тут ни при чём, как и скорость тестов. Проблема была в архитектуре: один общий слой для двух разных платформ начал мешать сильнее, чем помогать.</p><p>Как говорил один мой коллега, перефразируя классическое “вам шашечки или ехать”:</p><blockquote>Ты сюда страдать пришёл или тесты писать?</blockquote><p>После этого решение разделить Android и iOS на два проекта стало очевидным.</p><p>Сейчас у меня два отдельных проекта: mb-android-tests и mb-ios-tests. И знаете что? Это лучшее архитектурное решение за всё время на этом проекте. Серьёзно.</p><p><b>Контекст: что за проект и почему это важно</b></p><p>Финтех. Нативное приложение. Отдельные кодовые базы, Kotlin на Android, Swift на iOS. И UI там не «три кнопки и список», формы с десятками полей, кастомные контролы, WebView-вставки, платежи, валютные операции, бюджетные переводы. Ну вы поняли.</p><p>Стек: Java 21, TestNG, Appium 2.x, Selenide, Allure, Maven. CI на GitLab, крутится на Mac Mini. 5 Android-эмуляторов, 4 iOS-симулятора, 9 Appium-серверов — по одному на устройство.</p><p>Но это сейчас. А начиналось всё с одного жирного монолита.</p><p><b>Старый проект: 8 модулей и конструктор-монстр</b></p><figure><img src="https://media.tproger.ru/user-uploads/139426/2026-07-07/54be52bb-7e50-4e11-b624-86cc1ce0766b.webp" alt="" /></figure><p>Идея была «как в книжке»: один репозиторий, модульная структура, переиспользование. DRY во все поля. Ну а чё, красиво же.</p><p>8 модулей. Один mvn clean install. Все зависят от mobile-automation-framework, в котором живут DriverFactory, BaseTest, общие Page Objects и слой Steps.</p><p>А DriverFactory принимал <b>11 параметров</b>. Одиннадцать, Карл.</p><p>Половина нужна только Android, другая только iOS. Но метод один. Потому что так более по программистцки, как написано в каждой второй статье про архитектуру автотестов.</p><p>Когда я работал один, было норм. Ты сам знаешь, от куда что идет.</p><p>А потом пришли люди.</p><p><b>Почему с людьми всё навернулось</b></p><p><b>Мерж-конфликты каждый божий день</b></p><p>Вот конкретная ситуация. Один человек правит LoginPage в общем фреймворке, добавляет метод для iOS, меняет локатор. Второй в тот же момент рефакторит этот же LoginPage под новую версию Android-приложения.</p><p>Мерж. Конфликт.</p><p>И тут начинается самое весёлое: какой локатор правильный? Для Android? Для iOS? Для обоих? Кто будет разбираться? Тот, кто мёрджит? А он вообще контекст понимает?</p><p>Это не единичный случай. Это было <b>каждый</b> день. Потому что mobile-automation-framework получился общим модулем, от которого зависят все. И все туда лезут. Постоянно.</p><figure><img src="https://media.tproger.ru/user-uploads/139426/2026-07-07/3866002d-86c5-4894-a441-2522f48dcab1.webp" alt="" /></figure><p><b>Обновление одной библиотеки = блокировка всех</b></p><p>Решил обновить java-client с 7.x на 8.x. Нормальное желание — API поменялся, MobileElement удалили, capabilities переехали на типизированные Options.</p><p>Вот что произошло в реальности:</p><ol><li>Меняю версию в parent pom.xml</li><li>MobileElement удалён → compilation error в DriverFactory, во всех DriverManager’ах</li><li>DesiredCapabilities → UiAutomator2Options / XCUITestOptions → переписываю все менеджеры</li><li>selenide-appium 1.x несовместим с java-client 8.x → обновляю до 2.x</li><li>selenide-appium 2.x требует Selenide 6.x → обновляю Selenide</li><li>Selenide 6.x ломает API page objects → переписываю page objects во всех модулях</li><li>А Selenide 6.x ещё и Java 8 не поддерживает → обновляю Java</li></ol><p>Одна библиотека.</p><p>Задача «обновить одну библиотеку» превратилась в 50+ файлов, 4-5 каскадных обновлений, 2-3 недели работы. И всё это время develop нестабилен. Все заблокированы. Тесты не запускаются.</p><p>Две недели.</p><p>Из-за одной строчки в pom.xml.</p><p><b>Page Objects с if/else — это два page object в одном файле</b></p><p>Общие Page Objects звучат красиво на бумаге: пишем один раз, используем для обеих платформ. А на практике…</p><p>Это не page object. Это два page objects, запиханных в один файл через if/else. И так в каждом методе.</p><p>А сверху ещё слой Steps. Обёртки над page objects «для читаемости». И в steps тоже if (platform), потому что логика взаимодействия разная. На Android ты скроллишь через UiScrollable семантически, «прокрути до элемента с текстом X». На iOS координатами, «двигай палец из точки A в точку B». Один метод в steps, а внутри два разных мира.</p><p>В какой-то момент ловишь себя на мысли: я же не тесты пишу. Я подгоняю pages и steps под две платформы, чтобы фреймворк не развалился. Это уже не автоматизация тестирования, это поддержка фреймворка ради поддержки фреймворка.</p><p><b>Каждый работает в своём темпе и все друг другу мешают</b></p><p>У одного задача покрыть тестами новый экран на Android. У второго пофиксить падающие тесты на iOS. У третьего добавить тестовые данные.</p><p>Все трое лезут в mobile-automation-framework. Все трое меняют pom.xml, BaseTest, page objects. Каждый в своей ветке.</p><p>А потом мёрдж.</p><p><b>Технические причины, которые добили окончательно</b></p><p>Ладно, человеческий фактор. Но были и чисто технические штуки, которые окончательно убедили меня, что кроссплатформа тут бессмысленна.</p><p><b>Локаторы: работай с тем, что дают</b></p><p>Сразу скажу то, о чём мало кто пишет в статьях: в мобильной автоматизации ты работаешь с тем, что дают, а не с тем, что хотелось бы.</p><p>В теории есть AccessibilityID единый локатор для обеих платформ. Звучит хорошо. А на практике? Попробуй попросить мобильных разработчиков расставить одинаковые accessibility-идентификаторы на сотнях экранов. На Kotlin и Swift. Одновременно. Они тебя вежливо пошлют, но скорее всего не вежливо. И будут правы, у них свои спринты, свои дедлайны, и твои автотесты в их приоритетах где-то между «поправить тень у кнопки» и «никогда».</p><p>Так что реальный выбор:</p><p><b>XPath -</b> работает, но на iOS может быть тормозным. На Android через UiSelector быстро, нативно, надёжно. На iOS через NSPredicate тоже ок. А «универсальные» XPath типа //*[@text='Войти' or @label='Войти']  это путь к боли, потому что Page Source на двух платформах два совершенно разных XML-дерева.</p><p><b>Координаты -</b> костыль? Да. Но иногда единственный вариант. Когда у тебя кастомный контрол без accessibility-свойств, а разработчик говорит «это декоративный элемент», ты либо тыкаешь по координатам, либо не тестируешь.</p><p><b>OpenCV</b> - есть ещё вариант с распознаванием элементов по картинке. Для некоторых кейсов реально выручает. Но это отдельная тема на целую статью, может напишу потом.</p><p>Суть в том, что «напиши один локатор и работай на двух платформах» это миф. Page Source на Android это android.widget.Button с resource-id. На iOS  XCUIElementTypeButton с name и label. Разные типы элементов, разные атрибуты, разная глубина вложенности. Разные миры.</p><p><b>StaleElementReferenceException — «подарок» от iOS</b></p><p>Android рендерит UI через Choreographer синхронно с VSYNC. Элемент появился → стабилен → кликаем.</p><p>iOS рендерит через CoreAnimation с неявными анимациями. Элемент есть в дереве, но ещё анимируется. Формально кликабелен, фактически хрен.</p><p>Стандартный WebDriverWait с elementToBeClickable это не ловит. Элемент «кликабелен» по мнению Appium wait завершается. А потом click() падает, потому что DOM изменился между вызовами.</p><p>На Android этой проблемы нет вообще. Тот же тест, тот же wait, тот же код зелёный на Android, красный на iOS. Один и тот же метод, два разных результата. И это не баг это фундаментальное различие платформ.</p><p>Кастомные wait-стратегии для iOS отличаются от Android принципиально. Пихать их в один фреймворк строить leaky abstraction, которая протекает на каждом шаге.</p><p><b>Жесты — два разных мира</b></p><p>Свайп вниз на Android:</p><p>Свайп вниз на iOS:</p><p>Чувствуете разницу? И даже длительность свайпа важна: на Android 200мс это нормальный скролл. На iOS 200мс это fling, и элемент улетает за экран.</p><p>«Кроссплатформенная» обёртка для скролла функция на 40 строк с двумя ветками if (platform), внутри каждой и ещё if для performSwipeDown() vs performSwipeUp(). На 50+ экранах таких обёрток, которых десятки.</p><p>И каждая место для бага.</p><p><b>Решение: разделяй и властвуй</b></p><p>Решение было болезненным. Я реально откладывал, потому что казалось, что это шаг назад. Дублирование кода, нарушение DRY, всё такое. Мозг сопротивлялся.</p><p>А потом я просто сел и разделил.</p><p>Никаких общих page objects. Никаких общих steps. Никакого общего DriverFactory с 11 параметрами. Каждый проект со своим pom.xml, свои зависимости, свой BaseTest, свои локаторы.</p><p>Что осталось общего: подход к структуре (Maven + TestNG + Allure), CI-шаблоны, принципы организации. Но не код. Код полностью раздельный.</p><p><b>Что поменялось на практике</b></p><p>В Android-проекте DriverManager типизирован под AndroidDriver. В iOS под IOSDriver. Не AppiumDriver&lt;MobileElement&gt; с кастами и проверками, а конкретный тип для конкретной платформы. IDE подсказывает только релевантные методы. Компилятор ловит ошибки на этапе сборки, а не в рантайме.</p><p>BaseTest принимает ровно те параметры, которые нужны. Android: deviceName, platformVersion, udid, appPackage, appActivity, systemPort, serverUrl, appPath — 8 штук, все релевантные. iOS: deviceName, platformVersion, udid, appPath, serverUrl, wdaLocalPort — 6. Никаких @Optional("systemPort") со строкой “systemPort” в качестве дефолта.</p><p><b>А мерж-конфликты?</b></p><p>Когда один человек работает в mb-android-tests, а второй в mb-ios-tests то они <b>вообще</b> не пересекаются. Разные репозитории. Конфликт невозможен физически.</p><p>Обновление java-client в Android-проекте не затрагивает iOS. Хочешь обновить, обновляй. iOS продолжает работать на старой версии.</p><p>Добавить новый параметр для iOS? Меняешь BaseTest и testng.xml в iOS-проекте. Android даже не узнает.</p><p>Это прям кайф.</p><p><b>А как же дублирование кода?!</b></p><p>Конечно, конечно. Первый вопрос, который задают: «Но ведь ты пишешь тесты дважды!»</p><p>Нет.</p><p>Я пишу каждый тест один раз и без костылей. Без if (platform) в каждом методе. Да, для одного и того же экрана есть два теста, один для Android, один для iOS. Но каждый из них чистый, понятный, заточенный под свою платформу.</p><p>В старом варианте я тоже «писал один раз», а потом тратил столько же времени на поддержку if/else, мерж-конфликты и каскадные обновления. «Экономия» на создании оборачивалась переплатой на поддержке. С процентами.</p><p><b>Когда кроссплатформа всё-таки ок</b></p><p>Я не топлю за то, что кроссплатформенный фреймворк абсолютное зло. Есть ситуации, где он работает:</p><p>Приложение простое, пара экранов, стандартные контролы, минимум кастомного UI.</p><p>UI реально идентичен на обеих платформах. Бывает, наверное.</p><p>Команда из одиного человека. Сам пишешь, сам мёрджишь, сам разруливаешь. Голова справляется.</p><p>Минимум жестов. Нет сложных свайпов, drag-and-drop, pinch-to-zoom.</p><p>Если у тебя финтех, банк, enterprise-приложение с сотнями экранов, кастомными контролами и тремя+ QA, то два проекта дешевле. Не в строках кода, а во времени. В нервах. В часах, потраченных на мерж-конфликты вместо написания тестов.</p><p><b>Итого</b></p><p>Два проекта это не шаг назад и не двойная работа. Со стороны может выглядеть именно так, но на практике ты пишешь каждый тест один раз, под конкретную платформу, без лишних компромиссов. Потом поддерживаешь его без постоянных мерж конфликтов, каскадных обновлений и if/else в каждом втором методе.</p><p>Кроссплатформенный фреймворк на Appium для сложного нативного приложения часто оказывается иллюзией экономии.</p><p>В следующей статье покажу, как у нас устроена инфраструктура для 9 параллельных устройств на одном Mac Mini: порты, bash скрипты, Appium серверы и workaround’ы, которых нет в документации. Спойлер: там тоже всё не совсем как в гайдах.</p>]]></content:encoded>
    </item>
    <item>
      <title>Kotlin исполнилось 15 лет: что принесут 2.4.0, toolchain и AI-агенты</title>
      <link>https://tproger.ru/articles/kotlin-ispolnilos-15-let-chto-prinesut-2-4-0-toolchain-i-ai-ag</link>
      <comments>https://tproger.ru/articles/kotlin-ispolnilos-15-let-chto-prinesut-2-4-0-toolchain-i-ai-ag?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Евгений Стребков]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/kotlin-ispolnilos-15-let-chto-prinesut-2-4-0-toolchain-i-ai-ag</guid>
      <description><![CDATA[<p>15-летие Kotlin, релиз 2.4.0, Kotlin Toolchain 0.11 и AI-агенты на Koog. Разбираем, что меняется для Android-, backend- и KMP-разработчиков.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/kotlin-ispolnilos-15-let-chto-prinesut-2-4-0-toolchain-i-ai-ag">Kotlin исполнилось 15 лет: что принесут 2.4.0, toolchain и AI-агенты</a>»</p>]]></description>
      <category><![CDATA[Android]]></category>
      <category><![CDATA[Инструменты]]></category>
      <category><![CDATA[Машинное обучение]]></category>
      <category><![CDATA[Kotlin]]></category>
      <category><![CDATA[JetBrains]]></category>
      <category><![CDATA[Разработка]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Wed, 01 Jul 2026 11:28:00 GMT</pubDate>
      <content:encoded><![CDATA[<p>Летом 2026 года Kotlin отмечает 15 лет с момента первого публичного анонса. За это время язык из «ещё одной JVM-альтернативы» превратился в де-факто стандарт Android-разработки, инструмент для backend-сервисов и основу Kotlin Multiplatform. JetBrains подвела итоги весны и начала лета: вышел стабильный <b>Kotlin 2.4.0</b>, появился <b>Kotlin Toolchain 0.11</b>, а фреймворк <b>Koog</b> доведён до первой мажорной версии. Разбираем, что из этого действительно влияет на проекты.</p><p>Для российских разработчиков это особенно близкая история: Kotlin создавался в JetBrains, компании, основанной выпускниками Санкт-Петербургского политехнического университета. Язык, названный в честь острова в Балтийском море, стал одним из самых заметных российских технологических экспортов последнего десятилетия.</p><p><b>15 лет Kotlin.</b> Первый анонс состоялся в июле 2011 года, стабильная 1.0 — в феврале 2016-го.</p><p><b>Kotlin 2.4.0.</b> Стабильные context parameters, explicit backing fields, поддержка Java 26, Swift packages в Kotlin/Native и совместимость с Gradle 9.5.0.</p><p><b>Kotlin Toolchain 0.11.</b> Amper эволюционировал в единый инструментарий: одна команда kotlin для создания, сборки, тестирования и публикации проектов.</p><p><b>Koog 1.0.</b> JetBrains выпустила стабильный фреймворк для AI-агентов на Kotlin и Java с годовой гарантией совместимости ядра.</p><p><b>Compose Multiplatform 1.12.0-beta01</b> и <b>Compose Hot Reload 1.2.0-beta01</b> развивают shared UI и экспериментальный MCP-сервер для AI-агентов.</p><p><b>Гранты Kotlin Foundation 2026.</b> Приём заявок на финансирование open-source библиотек и инструментов открыт до 14 июля 2026 года.</p><h2>Пятнадцать лет: от внутреннего проекта до мейнстрима</h2><p>История Kotlin началась в 2010 году как попытка JetBrains решить собственные проблемы с Java. В 2011-м язык впервые показали публике, а в феврале 2016 года вышла стабильная версия 1.0. Переломным моментом стал Google I/O 2017: Kotlin получил статус первоклассного языка для Android, после чего интерес к нему резко вырос.</p><p>Сегодня Kotlin используется не только в мобильной разработке. На нём пишут backend на Spring и Ktor, делают кроссплатформенные приложения через Kotlin Multiplatform, экспериментируют с Kotlin/Wasm и даже строят AI-агентов. По данным ежегодных опросов JetBrains, доля Kotlin в коммерческих проектах стабильно растёт как в Европе, так и в России, несмотря на санкционные ограничения в части корпоративных лицензий.</p><blockquote>If I were to choose one word to describe Kotlin's design, it would be pragmatism. For us it means caring about the usefulness.</blockquote><h2>Kotlin 2.4.0: что вошло в релиз</h2><p>3 июня 2026 года JetBrains выпустила стабильный <b>Kotlin 2.4.0</b>. Это не инкрементальный патч, а полноценная мажорная версия с изменениями в языке, стандартной библиотеке, компиляторе и всех целевых платформах.</p><ul><li><b>Язык.</b> Стабилизированы context parameters и explicit backing fields, добавлены новые target'ы для аннотаций.</li><li><b>Стандартная библиотека.</b> UUID API вышел из экспериментального статуса, появились функции для проверки отсортированности коллекций.</li><li><b>Kotlin/JVM.</b> Поддержка Java 26 и аннотации в метаданных включены по умолчанию.</li><li><b>Kotlin/Native.</b> Swift packages можно использовать как зависимости, обновлён Swift export, по умолчанию включён CMS GC.</li><li><b>Kotlin/Wasm.</b> Инкрементальная компиляция по умолчанию и поддержка WebAssembly Component Model.</li><li><b>Kotlin/JS.</b> Экспорт value-класс и возможности ES2015 при инлайнинге JS-кода.</li><li><b>Gradle.</b> Совместимость с Gradle 9.5.0.</li><li><b>Maven.</b> Автоматическое выравнивание версий Java и JVM target.</li><li><b>Компилятор.</b> Более предсказуемое поведение inline-функций при компиляции .klib.</li></ul><p>Для практики это означает: если ваш проект живёт на JVM, можно обновляться ради Java 26 и улучшений stdlib; если вы работаете с iOS через Kotlin/Native — стоит посмотреть на Swift packages; для WebAssembly-экспериментов 2.4.0 делает сборку заметно быстрее.</p><h3>Как обновиться</h3><p>Обновление до 2.4.0 проходит через указание версии в Gradle или Maven. В Android Studio и IntelliJ IDEA новая версия уже включена в последние сборки.</p><h2>Kotlin Toolchain 0.11: Amper уходит в прошлое</h2><p>В июне 2026 года JetBrains окончательно переименовала Amper в <b>Kotlin Toolchain</b> и выпустила версию 0.11. Это не просто ребрендинг: инструмент позиционируется как единая точка входа для работы с Kotlin-проектами. Одной командой kotlin можно создать, собрать, протестировать и опубликовать проект.</p><p>В 0.11 появилась возможность публиковать JVM-библиотеки, улучшена разработка плагинов и упрощена начальная настройка. Для российских команд, часть которых уходит от корпоративных Gradle-лицензий к open-source инструментам, Kotlin Toolchain может стать интересной альтернативой для новых проектов и прототипов.</p><p><b>Важно:</b> Kotlin Toolchain пока в статусе Alpha. Для существующих Gradle-проектов массово мигрировать смысла нет — инструмент ещё не покрывает все сценарии зрелых сборок. Но пробовать на небольших сервисах и pet-проектах уже можно.</p><h2>Koog 1.0: AI-агенты на Kotlin</h2><p>Фреймворк <b>Koog</b> от JetBrains вышел в версии 1.0. Он предоставляет примитивы для построения агентных приложений: инструменты, workflow, персистентность, память, observability и интеграции с JVM/KMP-проектами. Главное для Java-команд: Koog теперь предлагает идиоматичный Java API, то есть переходить на Kotlin ради агентов не обязательно.</p><p>Koog интегрируется со <b>Spring AI</b>, что делает его естественным выбором для backend-разработчиков, которые уже используют Spring Boot. Появилась мультиплатформенная observability и годовая гарантия совместимости ядра — это важно для команд, которые рассматривают агентов не как прототип, а как часть продакшена.</p><h2>Compose и инструменты UI</h2><p>Для UI-разработчиков в выпуске два значимых обновления. <b>Compose Multiplatform 1.12.0-beta01</b> продолжает развивать shared UI: новые графические возможности, улучшения accessibility на iOS, обновления поведения UI-тестов и исправления для десктопа, веба и Gradle-плагина.</p><p>Отдельно стоит <b>Compose Hot Reload 1.2.0-beta01</b>. В нём развивается экспериментальный MCP-сервер: AI-агенты получают доступ к логам, ошибкам UI, могут перезапускать приложение и управлять его жизненным циклом. Это ещё не production-ready, но демонстрирует направление: разработка интерфейсов становится более визуальной и интерактивной.</p><h2>Экосистема: библиотеки, гранты и корпоративный опыт</h2><p>В обзоре JetBrains упомянуты три KMP-библиотеки, которые стоит изучить: <b>ComposeMediaPlayer</b> для кроссплатформенного видео, <b>NSExceptionKt</b> для улучшенной обработки крэшей на Apple-платформах и <b>multiplatform-settings</b> для хранения key-value данных в shared-коде.</p><p>Кроме того, Kotlin Foundation открыл <b>грантовую программу 2026</b>. Финансирование могут получить open-source проекты вокруг Kotlin Multiplatform, AI и больших языковых моделей. Заявки принимаются до <b>14 июля 2026 года</b>. Для российских авторов библиотек это реальный способ поддержать проект, особенно если он пользуется спросом у зарубежного комьюнити.</p><p>Ещё один сигнал зрелости экосистемы — история <b>Booking.com</b>. Компания внедрила Kotlin Multiplatform для экспериментальной библиотеки и получила результаты выше ожиданий: улучшилась консистентность между Android и iOS, при этом команды не отказывались от платформенно-специфичной разработки.</p><h2>Обучение: бесплатные курсы на Hyperskill</h2><p>К юбилею JetBrains сделала часть Kotlin-курсов на <b>Hyperskill</b> бесплатными. Это проектно-ориентированная платформа: можно укрепить основы или пойти в сторону мобильной и backend-разработки. Для тех, кто только начинает или переходит с Java, это удобный способ получить практику, а не только теорию.</p><h2>Выводы</h2><p>15 лет Kotlin — это не только юбилей, но и точка, где язык перешёл из фазы «быстрого роста» в фазу «экосистемного инструмента». <b>Kotlin 2.4.0</b> делает язык зрелее на всех платформах, <b>Kotlin Toolchain</b> упрощает вход в экосистему, а <b>Koog</b> и <b>Compose Hot Reload</b> показывают, что Kotlin активно используется в новой волне AI-разработки.</p><p>Для работающих проектов самый безопасный шаг — обновиться до Kotlin 2.4.0 в тестовом окружении и проверить совместимость. Новые инструменты вроде Toolchain и Koog стоит пробовать на pet-проектах, прежде чем тащить в продакшен. А если у вас есть open-source библиотека вокруг Kotlin — грантовая программа Kotlin Foundation может стать хорошим подспорьем.</p><p><b>Источник:</b> <a href="https://blog.jetbrains.com/kotlin/2026/06/kodees-kotlin-roundup-kotlin-turns-15-kotlin-2-4-0-and-the-kotlin-toolchain/">Kodee's Kotlin Roundup: Kotlin Turns 15, Kotlin 2.4.0, and the Kotlin Toolchain</a> — блог JetBrains.</p>]]></content:encoded>
    </item>
    <item>
      <title>Как Android-инженер спроектировал gateway для миллионов пользователей: опыт перехода в инфраструктуру</title>
      <link>https://tproger.ru/articles/kak-android-inzhener-sproektiroval-gateway-dlya-millionov-polzova</link>
      <comments>https://tproger.ru/articles/kak-android-inzhener-sproektiroval-gateway-dlya-millionov-polzova?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Кирилл Соколов]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/kak-android-inzhener-sproektiroval-gateway-dlya-millionov-polzova</guid>
      <description><![CDATA[<p>История перехода из андроид разработки в инфраструктуру. Как мобильный инженер спроектировал gateway для платформы с миллионами пользователей, освоил распределённые системы и научился строить отказоустойчивые сервисы.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/kak-android-inzhener-sproektiroval-gateway-dlya-millionov-polzova">Как Android-инженер спроектировал gateway для миллионов пользователей: опыт перехода в инфраструктуру</a>»</p>]]></description>
      <category><![CDATA[API]]></category>
      <category><![CDATA[Оптимизация]]></category>
      <category><![CDATA[Парсинг]]></category>
      <category><![CDATA[Android]]></category>
      <category><![CDATA[Инструменты]]></category>
      <category><![CDATA[Опрос]]></category>
      <category><![CDATA[Практика]]></category>
      <category><![CDATA[Работа]]></category>
      <category><![CDATA[Tor]]></category>
      <category><![CDATA[Боты]]></category>
      <category><![CDATA[Навыки]]></category>
      <category><![CDATA[HR]]></category>
      <category><![CDATA[Бэкенд]]></category>
      <category><![CDATA[App Store]]></category>
      <category><![CDATA[Игра]]></category>
      <category><![CDATA[Приложение]]></category>
      <category><![CDATA[Сервер]]></category>
      <category><![CDATA[Kubernetes]]></category>
      <category><![CDATA[Инфраструктура]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Tue, 23 Jun 2026 07:41:54 GMT</pubDate>
      <content:encoded><![CDATA[<p><i>Перешёл из Android-разработки в инфраструктуру и спроектировал gateway для платформы с миллионами пользователей. Делюсь опытом: какие пробелы пришлось закрывать, почему мобильный бэкграунд — это преимущество, и с чего начать, если думаете о похожем переходе. </i></p><h2>Почему инфраструктура начинает привлекать больше, чем фичи</h2><p>С фичами всё прозрачно: написал код — увидел результат на экране. Быстрая и понятная обратная связь. Но со временем замечаешь, что проблемы повторяются. Приложение тормозит не из-за плохого кода, а потому что на один экран уходит пять-шесть сетевых вызовов. Логика на клиенте. Хочешь что-то изменить — готовь релиз, проходи App Store Review и жди недели, пока обновление дойдёт до всех.</p><p>Я перешёл в Android-инфраструктуру — начал делать инструменты для других мобильных разработчиков. Это помогло увидеть: главные проблемы не в фичах, а в слое между приложением и бэкендом.</p><p>Возвращаться к фичам стало неинтересно. В инфраструктуре задачи сложнее, результат измеряется метриками — latency, error rate, скорость релизов, — а влияние на всю систему, а не на один экран.</p><h2>Что Android даёт для инфраструктуры — а чему учиться с нуля</h2><p>Мобильный бэкграунд оказался не балластом, а преимуществом. Я понимал ограничения изнутри. Backend-инженер может прочитать, что мобильные сети ненадёжны, память ограничена, а батарея — критичный ресурс. Но прочитать и прочувствовать — разное. Я годами наблюдал, как приложение “захлёбывается” на устройствах среднего сегмента. Знал, что 60% пользователей сидят именно на таких. Видел, как баг, который мы починили за день, продолжает висеть у людей неделями — просто потому, что они не успели обновиться.</p><p>Когда я проектировал gateway, я точно знал, что почувствуют мобильные разработчики, если ошибусь. Добавить ещё один сетевой вызов — это будет не бесплатно. Оставить логику в приложении — значит отдать её на устройство, которое я не контролирую.</p><p><b>Чего именно не хватало?</b> Я неплохо понимал мобильную сторону, но совершенно не ориентировался в распределенных системах. Знал, например, что такое таймаут, но не представлял, как выставить его в цепочке из пяти сервисов так, чтобы одно медленное звено не обрушило весь экран пользователя. Понимал, что сети падают, но не умел проектировать систему, способную оставаться на плаву в таких условиях.</p><p><b>Чему пришлось учиться с нуля? </b>Операционному мышлению. В Android ты выпускаешь релиз — и он либо работает, либо нет. Если крашится, починишь в следующей версии. В инфраструктуре нет «следующей версии». Если gateway падает, всё приложение ложится для миллионов пользователей прямо сейчас.</p><p>Пришлось учиться думать в терминах деградации, частичных отказов, плавного падения.</p><p>Что делать, если один из пяти сервисов не ответил? Как понять, что мы катимся к инциденту, до того, как пользователи начнут жаловаться?</p><p>Этому в мобильной разработке не учат.</p><h2>Как я учился: пробелы, сроки и смена мышления</h2><p>Формального плана у меня не было — учился на практике. Это лучший, хотя и самый стрессовый способ. Пробелы выявляла практика. Столкнулся с нерешаемой задачей — понял, чего не знаю. Пошёл разбираться.</p><p>Учился итеративно, не пытаясь объять необъятное сразу. Gateway начинался как простой прокси. Затем добавили агрегацию ответов, потом — конфигурационные определения экранов. Каждый такой шаг вынуждал осваивать следующий уровень: circuit breakers, стратегии повторов, observability, планирование мощностей.</p><p>По срокам: техническая база уложилась в несколько месяцев. Паттерны осваиваются быстрее, чем кажется, особенно если сразу применять их к живой задаче. Гораздо дольше происходила смена образа мышления. Перейти от вопроса «работает ли фича?» к вопросу «что случится, когда это упадёт в три часа ночи?» — вот что заняло основное время.</p><h2>Что означает «выдающийся уровень» в инфраструктуре</h2><p><i>Когда говорят «спроектировать gateway с нуля и перевести на него живую платформу», за этими словами стоит не один навык, а целых три, и каждый требует совершенно разной подготовки.</i></p><p>Проектирование с нуля — это не рисование квадратиков на доске и не выбор модного стека. Это в первую очередь определение границ: что система будет делать, а что — категорически нет, и как с ней станут взаимодействовать десятки команд. Настоящая сложность здесь в том, чтобы предвидеть, что именно сломается, и заложить защиту от этого ещё до того, как написан хоть один файл с кодом.</p><p>Затем — миграция живой системы, где права на ошибку практически нет. Приложение нельзя выключить или отрепетировать в реальном масштабе. Остаётся только постепенный перевод трафика: shadow mode → 1% → 5% → 25% → 50% → 100%, с автоматическим откатом при любом росте ошибок. И всё это — пока миллионы пользователей активно работают с продуктом, не подозревая, что под капотом идёт замена двигателя на ходу. Такой уровень дисциплины и инструментации приходит только с практикой.</p><p>Наконец, владение надёжностью. Gateway — единая точка отказа: упал он, упало всё. Годы уходят на то, чтобы сделать его скучным и предсказуемым: резервирование, автомасштабирование, circuit breakers, режимы деградации, еженедельный пересмотр мощностей. Высший пилотаж — когда о системе просто не думаешь, потому что она работает.</p><h2>Почему путь в инфраструктуру доступнее, чем кажется?</h2><p>Карьерные траектории в инфраструктуре редко бывают чётко описаны. Здесь нет готового чек-листа в духе «диплом по Computer Science, пять лет в бэкенде, обязательное знание Kafka и Kubernetes». С одной стороны, такая неопределённость пугает. С другой — именно она и делает этот путь более доступным, чем принято думать.</p><p>Когда перед тобой лежит жёсткий список формальных требований, люди часто отсеивают себя сами, даже не попробовав. А в инфраструктуре по-настоящему важно только одно: можешь ли ты решать задачи. Я пришёл сюда без профильного диплома и учился ровно тому, что требовалось в моменте, потому что задачи сами подталкивали к этому.</p><p>Индустрия, к слову, до сих пор не слишком хорошо умеет проверять те навыки, которые на этом уровне оказываются решающими: умение видеть ограничения на стыке систем, предвидеть сценарии отказов, двигать людей к соглашению. Всему этому учатся не до начала работы, а непосредственно в процессе.</p><p>Поэтому если вы мобильный инженер и размышляете, можно ли перейти в инфраструктуру, — вопрос не в том, правильный ли у вас бэкграунд. Вопрос в другом: готовы ли вы учиться тому, чего пока не знаете, и способны ли обратить то, что уже понимаете, в собственное преимущество. Если ответ «да» — путь для вас открыт. Просто указателей на нём пока не расставили.</p><h2>Мобильный бэкграунд как преимущество архитектора</h2><p>Считаю ли я, что мобильный опыт сделал меня лучшим архитектором для mobile-first продуктов? Безоговорочно, да.</p><p>Я помнил, как ощущается медленный экран на устройстве среднего сегмента. Помнил, что случается, когда API возвращает слегка неправильные данные и приложение падает при парсинге. Помнил то чувство, когда баг уже в проде, а ты ждёшь App Store Review и ничего не можешь исправить.</p><p>Поэтому когда я проектировал gateway, я не занимался абстрактной «оптимизацией перформанса». Я опирался на совершенно конкретный опыт. Знал, что убрать один сетевой round trip — это подарок каждому мобильному разработчику. Знал, что перенос логики на сервер означает перенос в место, где я могу починить всё за минуты, а не за недели.</p><p>Лучшая инфраструктура для мобильных продуктов строится теми, кто сам их создавал и знает все узкие места не понаслышке. Этот опыт даёт верное направление: ты чувствуешь, где настоящие проблемы, потому что сталкивался с ними лично. Такому не учат по книгам.</p><h2>Коротко: что делать, если думаете о переходе</h2><ul><li>Найдите промежуточный шаг. Не прыгайте сразу в бэкенд. Начните с задач на стыке: оптимизация API, инструменты для мобильных разработчиков, улучшение сетевого слоя.</li><li>Используйте мобильный контекст как рычаг. Вы понимаете то, о чём бэкенд-инженеры только догадываются. Говорите об этом вслух.</li><li>Учитесь измерять невидимое. В инфраструктуре результат — это метрики: latency, error rate, скорость релизов. Учитесь рассказывать историю через цифры.</li><li>Проектируйте под отказ, а не тушите пожары. Senior-уровень — это определить, что сломается и кто за это отвечает, до того, как оно сломается.</li><li>Не ждите разрешения. Путь не размечен, но он открыт. Начните с малого — и двигайтесь туда, где задачи становятся интереснее.</li></ul>]]></content:encoded>
    </item>
    <item>
      <title>Локализация через Enum, неожиданный Дзен, быстрее только телепатия</title>
      <link>https://tproger.ru/articles/lokalizaciya-cherez-enum-neozhidannyj-dzen-bystree-tolko-telepat</link>
      <comments>https://tproger.ru/articles/lokalizaciya-cherez-enum-neozhidannyj-dzen-bystree-tolko-telepat?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Самир Гёзалов]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/lokalizaciya-cherez-enum-neozhidannyj-dzen-bystree-tolko-telepat</guid>
      <description><![CDATA[<p>Надоело плодить JSON/ARB файлы при локализации Flutter-приложения? Автор делился личным опытом и показал, как элегантно настроить локализацию через Enum без внешних зависимостей, генераторов кода и боли в рантайме.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/lokalizaciya-cherez-enum-neozhidannyj-dzen-bystree-tolko-telepat">Локализация через Enum, неожиданный Дзен, быстрее только телепатия</a>»</p>]]></description>
      <category><![CDATA[API]]></category>
      <category><![CDATA[Алгоритмы и структуры данных]]></category>
      <category><![CDATA[Java]]></category>
      <category><![CDATA[Массивы и строки]]></category>
      <category><![CDATA[Красивый хак]]></category>
      <category><![CDATA[Android]]></category>
      <category><![CDATA[Мобильная разработка]]></category>
      <category><![CDATA[JSON]]></category>
      <category><![CDATA[Работа]]></category>
      <category><![CDATA[Flutter]]></category>
      <category><![CDATA[Dart]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Thu, 04 Jun 2026 04:45:17 GMT</pubDate>
      <content:encoded><![CDATA[<p>Решил давеча добавить локализацию в свое приложение на Flutter. Задачка-то простая: пара кнопок, пару десятков переменных. Казалось бы, делов на пять минут. Но Flutter «из коробки» сразу попытался всучить мне какую-то дичь в виде ARB и JSON файлов. Хмм, из прошлого с такими реализациями лишь печаль, так что…</p><h2>Попытка №1. Путь в лоб: Классы и интерфейсы</h2><p>Самый очевидный способ - создать родительский класс с переменными, а языки сделать его наследниками. Но это просто… фиаско. Даже если не писать from/toJson, процесс выглядит так:</p><ol><li>Объявил переменную в родителе.</li><li>Прописал её в конструкторе.</li><li>Повторил то же самое для всех дочерних классов (всех языков).</li></ol><p>Если бы я работал на аутсорсе в Индии и мне платили за количество строк кода - это был бы идеальный вариант. Но я хотел, чтобы одной строки при объявлении было достаточно.</p><h2>Попытка №2. Стандарт (ARB/JSON)</h2><p>Я поплевался, но решил попробовать - «стандарт» всё-таки. Мало ли, может чего поменялось за годы. Вроде всё завелось, но сам процесс… это боль. Бегать по разным файлам, чтобы добавить одну строчку - так себе удовольствие.</p><p>Почему я от него окончательно отказался? Когда данных становится реально много (десятки языков, тысячи строк), ты попадаешь в ловушку: тебе нужно эту махину либо целиком держать в памяти, либо постоянно подгружать и парсить. Ради смены одного слова на кнопке заставлять девайс ворочать тяжелые JSON-ы в рантайме - так себе затея для производительности.</p><h2>Попытка №3. Таблицы и костыли</h2><p>Подумал: «Окей, почему бы не подтянуть старый добрый CSV или вообще закинуть всё в табличку?». И тут официальный пакет локализации сказал: «Извини, мужик, тут наши полномочия всё».</p><p>Ну, я тоже не пальцем деланный. Решил припахать нейросеть, чтобы она написала мне собственный генератор. Флоу получился такой:</p><ol><li>Добавляю строку в таблицу.</li><li>Запускаю генератор.</li><li>Он лепит «родительский» файл.</li><li>После Freezed генерит toJson, fromJson…</li></ol><p>Короче, весело не было. Мало того, я понимал: если языков станет много, мне придется добавлять их все разом и единовременно, иначе в рантайме всё начнет плеваться ошибками. Плюс та же проблема с памятью: таблица - это структура, которую надо парсить и хранить.</p><h2>Красный флаг для программиста</h2><p>Но главная проблема даже не в этом. Необходимость запускать генератор после добавления каждой переменной - это для любого программиста красный флаг.</p><p>Что происходит на практике? Когда ты пишешь код и тебе нужно добавить одну несчастную строку, тебе лень (читать: нехочется выходить из потока творения) запускать весь этот цикл с генерацией. Ты просто её хардкодишь в надежде «потом скопом всё добавлю одним махом». А «потом» наступает тогда, когда уже весь проект завален хардкодом, и вычищать его - то еще удовольствие. Даже нейросетки с такими запросами помогают не с первого раза, и с сомнительной эффективностью.</p><p>Нутром чуял - флоу неправильный. В итоге я пришел к тому, что называю идеальной локализацией.</p><h2>Эволюция лени: почему Enum победил интерфейсы</h2><p>Я начал мучить нейросеть разными вариантами реализации. Для меня в первую очередь был важен флоу работы: мне было тупо лень писать больше одной строки кода, чтобы добавить переменную.</p><p>Моя философия проста: строку захардкодить - моментально. Добавление даже одной строки в другом файле требует доп. действий. НО, если действий минимум, то кодер поймет, что выигрыш во времени сейчас мизерный против больших потерь в будущем, и исправно добавит строку в правильное место. Этого не произойдет, если для добавления строки нужно «отчитаться» в десяти местах.</p><h2>Попытка №4. Рекорды (Records)</h2><p>Присматривался к рекордам. С ними удобно: не нужно писать конструкторы. Но есть подвох: как только ты добавил переменную в один язык, компилятор тут же сходит с ума и требует добавить её во все остальные прямо сейчас. Никакой гибкости и возможности оставить «на потом».</p><h2>Идеальный костыль: Enum</h2><p>В итоге я пришел к самому, казалось бы, «неправильному» способу, который оказался идеальным. Enum. Само название намекает на перечисления и цифры, но оказалось, что хранить в нем буквы и целые фразы - это лучший путь для локализации.</p><p>Знаете, мне моё решение так понравилось, что я пошел к нейросетям и проверил его со всех сторон. Все модели  остались в полном восторге. Под это дело я даже подготовил монументальную «нейро-статью» на полтора часа внимательного чтения, со всеми графиками, бенчмарками и анализом производительности.</p><p>Но потом я заглянул в правила Хабра, прислушался к голосу разума и понял: никто не хочет читать полтора часа сухой статистики. Лучше я просто расскажу вам свою историю «от первого лица», как я докатился до такой жизни. Ну, а если вы совсем уж фанаты цифр - просто скормите этот текст любой нейронке, она вам перескажет всё в лучших академических тонах с графиками на любой вкус.</p><p>А здесь мы будем говорить по делу.</p><p>Ниже я выкатываю сам код. Код тут не для зубрежки, а лишь чтобы указать направление / идею. Самая большая прелесть этой системы в том, что она оставляет гигантское пространство для любого типа реализации. Это архитектурный каркас, который чертовски сложно сломать. Главное — уловить принцип.</p><h2>Реализация</h2><p>Принцип разделения:</p><ul><li>enum Strings → типизированный контракт (что существует).</li><li>translator → источник данных (откуда берётся текст).</li></ul><p>Структура файлов - минимальная. Никаких внешних зависимостей:</p><h2>Ядро - strings.dart</h2><p>Весь контракт локализации в одном enum. Два режима - хардкод switch и серверный кеш - за одним и тем же</p><p>. Даже сообщения об ошибках локализации — сами локализованы:</p><h2>Список языков - languages_enum.dart</h2><p>Каждый язык - самодостаточная единица: знает свой код, название, направление текста и как себя загрузить:</p><p>Хотите грузить с сервера? Одна строка + loader. И</p><p>- тоже одна строка, потому что</p><p>уже является registry:</p><h2>Переводчик - i18n/russian.dart</h2><p>Как это выглядит в жизни (и почему я перестал хардкодить) Я намеренно не привожу здесь код оберток виджетов или конкретных стейт-менеджеров. Всё это - чистая «вкусовщина». Для работы системы нужен лишь элементарный вещатель событий (Notifier), повешенный на метод смены языка.</p><p>Но главное - это мой ежедневный флоу. Сейчас, чтобы добавить строку в UI, я просто вызываю нужный мне ключ: Strings.someKey(). Без контекста, везде.</p><p>А если ключа еще нет? Я тупо иду в Strings и добавляю одну строчку в Enum. Всё.</p><p>Благодаря дефолтному конструктору, приложению абсолютно плевать, что у меня там еще 100 языков не переведены. Оно компилируется и работает здесь и сейчас. А дальше в дело вступают гит-хуки: при комите нейросетка сама подхватывает изменения и заполняет недостающие поля в переводчиках.</p><p>Знаете, какое самое странное чувство? Мне сейчас реально проще и быстрее завести переменную в локализации, чем хардкодить строку в коде. Кажется, это и есть признак здоровой архитектуры - когда делать «правильно» становится физически удобнее, чем делать «быстро» и криво.</p><p>Собственно если в кратце это все о чем я хотел рассказать. Если тема зайдет или кто-то сам не сможет допереть, как прикрутить это к своей архитектуре - пишите в комментариях, разберемся.</p><p>Надеюсь, мой опыт сэкономит вам пару литров нервных клеток. Всех благ и чистого кода без «магических строк»!</p>]]></content:encoded>
    </item>
    <item>
      <title>OwnCloud – аналог Nextcloud: для чего использовать и как настроить облачное хранилище</title>
      <link>https://tproger.ru/articles/owncloud-analog-nextcloud-dlya-chego-ispolzovat-i-kak-nastroi</link>
      <comments>https://tproger.ru/articles/owncloud-analog-nextcloud-dlya-chego-ispolzovat-i-kak-nastroi?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Oksana Karelina]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/owncloud-analog-nextcloud-dlya-chego-ispolzovat-i-kak-nastroi</guid>
      <description><![CDATA[<p>ownCloud vs Nextcloud, что лучше? Какое облачное хранилище выбрать? Как может помочь связка S3 с ownCloud?
</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/owncloud-analog-nextcloud-dlya-chego-ispolzovat-i-kak-nastroi">OwnCloud – аналог Nextcloud: для чего использовать и как настроить облачное хранилище</a>»</p>]]></description>
      <category><![CDATA[Linux]]></category>
      <category><![CDATA[Android]]></category>
      <category><![CDATA[Опрос]]></category>
      <category><![CDATA[MySQL]]></category>
      <category><![CDATA[Конференции]]></category>
      <category><![CDATA[IDE]]></category>
      <category><![CDATA[SQL]]></category>
      <category><![CDATA[Windows]]></category>
      <category><![CDATA[iOS]]></category>
      <category><![CDATA[Работа]]></category>
      <category><![CDATA[Tor]]></category>
      <category><![CDATA[Боты]]></category>
      <category><![CDATA[Rust]]></category>
      <category><![CDATA[HR]]></category>
      <category><![CDATA[Docker]]></category>
      <category><![CDATA[macOS]]></category>
      <category><![CDATA[ICO]]></category>
      <category><![CDATA[Redis]]></category>
      <category><![CDATA[Маркетинг]]></category>
      <category><![CDATA[QA]]></category>
      <category><![CDATA[Мессенджер]]></category>
      <category><![CDATA[Персональные данные]]></category>
      <category><![CDATA[Сервер]]></category>
      <category><![CDATA[Дизайн]]></category>
      <category><![CDATA[Машин]]></category>
      <category><![CDATA[1C]]></category>
      <category><![CDATA[Бизнес]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Thu, 07 May 2026 08:40:02 GMT</pubDate>
      <content:encoded><![CDATA[<p>Вы когда-нибудь задумывались, сколько информации производит человечество?</p><p>Если верить статистике, сейчас ежедневно создается около <a href="https://explodingtopics.com/blog/data-generated-per-day">402,74</a> миллионов терабайт данных.</p><p>Согласитесь, довольно внушительная цифра.</p><p>В этих реалиях, когда объем данных постоянно растет, у каждого из нас рано или поздно может возникнуть вопрос – где хранить рабочие и личные файлы, да еще и так, чтобы сохранить абсолютный контроль над ними.</p><p>Меня зовут Оксана, я маркетолог в Beget и в этой статье хочу поделиться решением, которое мы выбрали у себя в отделе для хранения файлов, когда заметили, что их стало слишком много.</p><p>Мы решили перейти на гибкое объектное хранилище S3 – чтобы централизовано хранить и управлять текстами, креативами, отчетами и другими маркетинговыми материалами с удобным доступом внутри команды, ведь S3 позволяет хранить файлы любого типа и объема и масштабируется автоматически. Осталось только выбрать ПО для хранения файлов в облаке, к которому можно подключить S3.</p><p>Ранее у нас был опыт использования Nextcloud, однако его функционал, подобный швейцарскому ножу (встроенные календарь, конференции, таск-трекер и т. д.), оказался слишком объемен для нашей, по сути, скромной задачи – удобного и стабильного хранения файлов.</p><p>Вот почему мы подыскали аналог Nextcloud – ownCloud. В отличие от более функционального <a href="https://beget.com/ru/cloud/marketplace/nextcloud">Nextcloud</a>, ownCloud заточен исключительно на работу с файлами. И при этом он поддерживает подключение облачного объектного хранилища S3. Поэтому для нас в сравнении Nextcloud vs ownCloud выбор был очевиден.</p><p>В этой статье я расскажу, какие возможности есть у ownCloud, почему это ПО может быть полезно и как настроить связку ownCloud и S3. Если вы хотите организовать безопасное, контролируемое хранение и обмен данными на работе или дома, то этот материал будет для вас полезен.</p><h2>Что может ownCloud</h2><p>Для начала – буквально несколько слов об ownCloud и его возможностях.</p><p>Это программное обеспечение с открытым исходным кодом для хранения, синхронизации и обмена файлами появилось в 2010 году благодаря усилиям разработчика KDE Франка Карличека, который <a href="https://ru.wikipedia.org/wiki/OwnCloud">стремился</a> создать бесплатную альтернативу коммерческим облачным сервисам хранения данных.</p><h3>OwnCloud позволяет:</h3><ol><li>получать доступ к данным из любой точки мира и хранить файлы на собственном сервере – под вашим полным контролем;</li><li>синхронизировать данные между устройствами – доступ к файлам возможен с компьютеров (Windows, macOS, Linux), смартфонов (iOS, Android) и через браузер, изменения на одном устройстве мгновенно появляются на всех остальных;</li><li>делиться файлами и папками по ссылке, настраивая права доступа, пароли и срок действия ссылок;</li><li>совместно работать с документами, отслеживать историю изменений и возвращаться к любой предыдущей версии файла.</li></ol><blockquote>Только ownCloud сочетает в себе полный контроль над данными с простыми в использовании функциями обмена файлами, делая совместную работу более эффективной и безопасной.</blockquote><p>Сегодня ownCloud используют <a href="https://owncloud.com/customers/">компании</a> (Philips, Nationwide, Zeppelin и др.) в самых разных сферах (IT, машиностроение, медицина и т. д.).</p><p>При этом решение подходит не только для работы, но и для личных целей, когда нужно обменяться фото и видео с родственниками и друзьями, ведь, по мнению пользователей, среди преимуществ ownCloud – <a href="https://www.capterra.com/p/176602/ownCloud/reviews/">простота настройки</a> и <a href="https://www.temjournal.com/content/102/TEMJournalMay2021_954_960.pdf">удобная синхронизация с различными гаджетами</a>.</p><blockquote>С ownCloud мне не нужно слепо доверять какой-то неопределенной организации. Я контролирую, как происходит обмен файлами, и ownCloud помогает мне на каждом этапе.</blockquote><p>OwnCloud позволяет решать самые разные задачи, связанные с работой с файлами, – расскажем на примере трех кейсов, как это облачное хранилище помогает нам в отделе маркетинга.</p><h2>Для каких задач мы используем ownCloud и S3</h2><h3>1. Централизованное управление материалами</h3><p>Мы часто работаем с текстами, изображениями и презентациями. Дизайнеры и авторы загружают эти материалы в ownCloud, файлы автоматически сохраняются в S3, а для удобства поиска у нас настроены теги.</p><p>В итоге каждый член команды может видеть версии файлов (это важно для правок), нет хаоса в почте и мессенджерах.</p><h3>2. Безопасное взаимодействие с подрядчиками</h3><p>Связка ownCloud и S3 позволяет выгружать внешним специалистам материалы и получать результаты работ без прямого доступа к внутренней сети компании. Мы создали папку с публичной ссылкой, но жесткими ограничениями – паролем, сроком жизни ссылки в течение нескольких дней и разрешением на загрузку файлов без права просмотра папки.</p><p>На практике это работает так: менеджер создает ссылку и отправляет подрядчику, подрядчик переходит по ссылке и загружает архив с готовыми материалами, файл попадает в ownCloud, а его содержимое сохраняется в S3. Таким образом, подрядчик не видит, какие еще файлы лежат в папке, а мы контролируем, кто, что и когда загрузил.</p><h3>3. Долгосрочный архив креативов и отчетов</h3><p>По закону (152-ФЗ в РФ или GDPR в Европе) компания обязана хранить персональные данные клиентов, а также отчеты о рассылках и рекламных акциях на протяжении определенного времени.</p><p>Для решения этой задачи мы настроили правило: файлы старше 90 дней автоматически перемещаются в S3 Glacier (холодное хранилище) – этот класс снижает стоимость хранения, а если, например, юристу понадобится скачать какой-нибудь отчет спустя 2–3 года, он просто выгрузит его из ownCloud буквально за 5–10 минут.</p><p>Теперь – в деталях и по шагам о том, как начать использовать ownCloud в связке с S3.</p><h2>Как развернуть ownCloud и подключить S3</h2><p>OwnCloud удобно использовать с объектным хранилищем S3 – таким образом можно:</p><ol><li>масштабировать систему – S3 расширяется автоматически и не имеет ограничений по объему и количеству размещаемых данных и файлов;</li><li>оптимизировать затраты – можно платить не за дорогую конфигурацию виртуального сервера с большим объемом диска, а лишь за фактически занимаемое место, по модели pay as you go (оплата по мере потребления);</li><li>повысить надежность хранения – за счет встроенной в S3 тройной репликации данных (файлы хранятся в 3 копиях и размещаются на независимых серверах в разных стойках для абсолютной сохранности данных).</li></ol><h3>Итак, разберем, как настроить связку ownCloud и S3.</h3><p>Разработчики ownCloud предлагают два варианта установки. Можно скачать ownCloud и установить его вручную или использовать Docker-контейнеры. Мы выберем второй вариант.</p><p>Для размещения ownCloud в нашем примере создадим виртуальный сервер на базе <a href="https://beget.com/ru/cloud/marketplace/docker">готового решения Docker</a>.</p><p>Можно подключиться к серверу по SSH или с помощью терминала в панели управления.</p><p>Для размещения файлов создайте бакет объектного хранилища S3. Реквизиты доступа к нему будут в карточке бакета в панели:</p><figure><img src="https://media.tproger.ru/user-uploads/105012/2026-04-29/ee49d00b-7e32-4b8d-8ad4-bbbaeb0c3bb0.webp" alt="" /></figure><p>Создайте директорию для размещения конфигурационных файлов проекта и перейдите в нее:</p><p>Затем вставьте в файл docker-compose.yml следующее содержимое с помощью любого текстового редактора:</p><p>После этого создайте файл .env, в котором будут храниться значения переменных. Шаблон файла следующий:</p><p>Теперь необходимо отредактировать эти строки:</p><ol><li>ownCloud_DOMAIN и ownCloud_TRUSTED_DOMAINS – укажите домен (так как ownCloud будет размещен за обратным прокси, указывать рабочий порт здесь не требуется);</li><li>ADMIN_USERNAME – логин администратора;</li><li>ADMIN_PASSWORD – пароль администратора.</li></ol><p><i>Обратите внимание! Изменение ADMIN_USERNAME и ADMIN_PASSWORD уже после развертывания контейнеров не возымеет эффекта. Изменить пароль администратора вы можете в настройках пользователя в веб-интерфейсе.</i></p><p>Далее необходимо указать параметры подключения к S3.</p><ul><li>ownCloud_OBJECTSTORE_BUCKET – имя бакета S3;</li><li>ownCloud_OBJECTSTORE_ENDPOINT – эндпоинт хранилища (например, https://s3.ru1.storage.beget.cloud);</li><li>ownCloud_OBJECTSTORE_REGION – регион (ru1 для Beget);</li><li>ownCloud_OBJECTSTORE_KEY – Access key бакета;</li><li>ownCloud_OBJECTSTORE_SECRET – Secret key бакета.</li></ul><p>Сохраните файл.</p><p>Остается лишь добавить файл конфигурации для Caddy – обратного прокси, через который пользователи будут получать доступ к ownCloud.</p><p>Создайте директорию config:</p><p>После чего создайте в ней файл конфигурации Caddyfile. Добавьте в него следующее содержимое, указав вместо ownCloud.betutorial.ru ваш домен ownCloud:</p><p><i>Обратите внимание! Caddy выпустит SSL-сертификат на домен автоматически.</i></p><p>Все запросы к домену будут проксироваться в контейнер ownCloud_server.</p><p>На этом настройка конфигурационных файлов завершена, можно запускать контейнеры:</p><p>Потребуется несколько минут, чтобы docker загрузил образ и развернул контейнеры.</p><p>После запуска перейдите по домену, чтобы проверить работу хранилища:</p><figure><img src="https://media.tproger.ru/user-uploads/105012/2026-04-29/934faf67-2939-40f3-840e-88af18ebfde3.webp" alt="" /></figure><p>Выполните вход со стандартными доступами.</p><p><i>Обратите внимание! Если ownCloud недоступен или вы получаете ошибку при входе со стандартными доступами, проверьте корректность конфигурационных файлов. После внесения изменений перезапустите контейнеры.</i></p><p>После входа вы попадете на главную страницу ownCloud. Перед началом работы мы крайне рекомендуем сменить стандартный пароль администратора. Сделать это можно, нажав на кнопку с именем пользователя в верхней правой части страницы и открыв раздел настроек.</p><figure><img src="https://media.tproger.ru/user-uploads/105012/2026-04-29/9f93c25a-3922-4223-b3bd-b45aaaf61edf.webp" alt="" /></figure><p>Теперь проверим работу объектного хранилища – перейдем на главную страницу и загрузим файлы:</p><figure><img src="https://media.tproger.ru/user-uploads/105012/2026-04-29/51a6e16f-ee9b-4e96-9a5c-7ef765f62286.webp" alt="" /></figure><p>Файлы также появились и в объектном хранилище:</p><figure><img src="https://media.tproger.ru/user-uploads/105012/2026-04-29/16e65ad7-28f9-462c-9af6-990d2cf3c878.webp" alt="" /></figure><p><i>Обратите внимание! Файлы, которые вы удалите в ownCloud, будут перемещены в корзину и останутся в S3. Для их полного удаления очистите корзину ownCloud.</i></p><p>Чтобы делиться паролями с новыми пользователями, необходимо настроить отправку почты в ownCloud, сделать это можно в разделе Settings&gt;General.</p><p>В нашем примере мы настроим отправку через SMTP:</p><figure><img src="https://media.tproger.ru/user-uploads/105012/2026-04-29/45e39a41-4bb1-4d19-9bfe-1e1db3afc4a6.webp" alt="" /></figure><p>После указания данных введите тестовый email и нажмите “Send email”. Если отправка успешна, вы получите уведомление об этом:</p><figure><img src="https://media.tproger.ru/user-uploads/105012/2026-04-29/5a22786d-3995-4e86-9b48-0a17363c8a18.webp" alt="" /></figure><p>А на почтовый ящик поступит письмо:</p><figure><img src="https://media.tproger.ru/user-uploads/105012/2026-04-29/f4043b49-9a17-42ed-a627-34502c2a16e8.webp" alt="" /></figure><p>На этом настройка завершена – можно начинать работать с файлами, используя связку ownCloud и S3.</p><h2>Заключение</h2><p>Если вы ловите себя на мысли, что данных стало настолько много, что поиск нужного файла порой происходит дольше, чем работа с ним (особенно если одни файлы хранятся на почте или в мессенджере, а другие – на ноутбуке или флешке), облачное хранилище может вам помочь.</p><p>Подобное ПО пригодится как для личных целей, так и для бизнеса – недаром в 2025 году в нашей стране был <a href="https://www.kommersant.ru/doc/8178724">зафиксирован</a> рост интереса крупного и среднего бизнеса к технологии облачного хранилища.</p><p>Надеюсь, эта статья была для вас полезна, а облачные хранилища помогут сделать ежедневную работу комфортнее.</p>]]></content:encoded>
    </item>
    <item>
      <title>Как я написал E2EE-мессенджер на Spring Boot и WebCrypto — и почему сервер не видит сообщения</title>
      <link>https://tproger.ru/articles/kak-ya-napisal-e2ee-messendzher-na-spring-boot-i-webcrypto-i-poch</link>
      <comments>https://tproger.ru/articles/kak-ya-napisal-e2ee-messendzher-na-spring-boot-i-webcrypto-i-poch?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Евгений Василенков]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/kak-ya-napisal-e2ee-messendzher-na-spring-boot-i-webcrypto-i-poch</guid>
      <description><![CDATA[<p>Разбор архитектуры E2EE-мессенджера на Spring Boot 3, React и WebCrypto: X3DH, symmetric ratchet, AES-GCM, WebSocket, multi-device и ограничения реализации.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/kak-ya-napisal-e2ee-messendzher-na-spring-boot-i-webcrypto-i-poch">Как я написал E2EE-мессенджер на Spring Boot и WebCrypto — и почему сервер не видит сообщения</a>»</p>]]></description>
      <category><![CDATA[API]]></category>
      <category><![CDATA[JavaScript]]></category>
      <category><![CDATA[Java]]></category>
      <category><![CDATA[Android]]></category>
      <category><![CDATA[Stack Overflow]]></category>
      <category><![CDATA[Git]]></category>
      <category><![CDATA[Безопасность]]></category>
      <category><![CDATA[Опрос]]></category>
      <category><![CDATA[IDE]]></category>
      <category><![CDATA[SQL]]></category>
      <category><![CDATA[iOS]]></category>
      <category><![CDATA[Работа]]></category>
      <category><![CDATA[Tor]]></category>
      <category><![CDATA[GitHub]]></category>
      <category><![CDATA[Базы данных]]></category>
      <category><![CDATA[HR]]></category>
      <category><![CDATA[React]]></category>
      <category><![CDATA[Docker]]></category>
      <category><![CDATA[MIT]]></category>
      <category><![CDATA[Алиса]]></category>
      <category><![CDATA[Redis]]></category>
      <category><![CDATA[QA]]></category>
      <category><![CDATA[Мессенджер]]></category>
      <category><![CDATA[5g]]></category>
      <category><![CDATA[Приложение]]></category>
      <category><![CDATA[Взлом]]></category>
      <category><![CDATA[Сервер]]></category>
      <category><![CDATA[1C]]></category>
      <category><![CDATA[PostgreSQL]]></category>
      <category><![CDATA[Grafana]]></category>
      <category><![CDATA[Разработка]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Tue, 05 May 2026 05:35:02 GMT</pubDate>
      <content:encoded><![CDATA[<figure><img src="https://media.tproger.ru/user-uploads/137649/2026-04-29/240e412b-4307-49f9-b24f-bde7e0a7fd9a.webp" alt="" /></figure><p>Я Java-разработчик и в основном работаю с backend: Spring Boot, базы данных, интеграции, авторизация, WebSocket — всё то, что обычно находится за интерфейсом.</p><p>В какой-то момент я поймал себя на мысли: я каждый день пользуюсь мессенджерами, но плохо понимаю, как они устроены внутри. Окей, JWT, WebSocket, PostgreSQL, Redis — это понятно. Но что технически означает фраза "end-to-end encryption"? Как сервер доставляет сообщения, если он не должен их читать? Где живут ключи? Что хранится в базе? Что происходит, если у пользователя два устройства?</p><p>Решил разобраться через практику. Написал мессенджер с нуля. Назвал Chaos Messenger.</p><p>Сразу честно: криптографическую часть я изучал вместе с Claude и ChatGPT — читал спецификации X3DH и Double Ratchet, разбирал примеры, задавал вопросы, пока не сложилась цельная картина. Frontend тоже делался с активной помощью ChatGPT: я backend-разработчик, React для меня не основная среда. Но архитектура, backend, интеграция WebCrypto, модель конвертов, хранение сообщений и принципиальные решения — мои.</p><p>Для меня AI здесь был не заменой понимания, а инструментом — примерно как документация, Stack Overflow и ревью коллег. Без понимания threat model и архитектуры такой проект всё равно не собрать.</p><p>В статье расскажу, как работает E2EE изнутри: как устанавливается сессия через X3DH, как каждое сообщение получает отдельный ключ через Symmetric Ratchet, почему сервер хранит только зашифрованные конверты, и какие ошибки я допустил по дороге.</p><p>Стек: Spring Boot 3, React 18, WebCrypto API, PostgreSQL, Redis, WebSocket/STOMP, Prometheus, Grafana.</p><figure><img src="https://media.tproger.ru/user-uploads/137649/2026-04-29/4b028f37-2de1-46ea-a247-567f74fb3081.webp" alt="" /></figure><h2>Важная оговорка про web-E2EE</h2><p>Когда я говорю, что сервер не может прочитать сообщения, я имею в виду backend, базу данных, WebSocket-слой и уже сохранённые ciphertext-конверты. У них нет ключей и plaintext.</p><p>Но у web-E2EE есть отдельная проблема: frontend-код тоже приходит с сервера. Теоретически скомпрометированный сервер может отдать изменённый JavaScript, который украдёт ключи или plaintext до шифрования. Это ограничение не конкретно моего проекта, а браузерной модели в целом.</p><p>Поэтому корректная формулировка такая: backend не получает ключи и не может расшифровать уже переданные или сохранённые сообщения. Защита от подмены клиентского кода — отдельный слой безопасности: подпись сборок, независимая верификация клиента, desktop/mobile-приложения, reproducible builds.</p><h2>Почему обычный подход не работает</h2><p>Большинство "мессенджеров" на GitHub выглядят примерно так:</p><p>Сервер знает всё. Видит каждое сообщение. Если БД утекла — утекла вся переписка. Если сервер взломали — читай что хочешь. Если завтра компания решит продать данные — технически ничего не мешает.</p><p>E2EE решает это радикально: backend не получает ключи и не хранит plaintext. Сообщение шифруется на устройстве отправителя до отправки в сеть, а расшифровывается только на устройстве получателя.</p><p>Это уже не вопрос политики конфиденциальности в стиле "мы обещаем не читать". Это архитектурное ограничение: если у сервера нет ключа, он не может превратить ciphertext обратно в текст.</p><p>Звучит как магия. На самом деле — два протокола и немного WebCrypto.</p><h2>Главная идея: конверты</h2><p>Представь что Алиса хочет написать Бобу. Вместо того чтобы положить письмо на стол и надеяться что никто не прочитает — она кладёт его в запечатанный конверт. Конверт может открыть только Боб своим ключом. Сервер просто передаёт конверт не заглядывая внутрь.</p><p>Именно так это работает в коде. В базе данных у меня это выглядит так:</p><p>Когда я впервые увидел</p><p>в своей БД вместо текста — стало понятно, что модель наконец работает правильно: сервер создал сообщение, доставил его, сохранил метаданные, но так и не узнал содержимое.</p><p>А вот что сервер возвращает при запросе списка чатов через API:</p><p>Не</p><p>. Не</p><p>. Буквально</p><figure><img src="https://media.tproger.ru/user-uploads/137649/2026-04-29/b466ad91-20da-4e64-8b78-f6e08d2851d5.webp" alt="" /></figure><p>(DevTools → Network → ответ API с</p><p>)</p><h2>Откуда берутся ключи: X3DH</h2><p>Главный вопрос: как Алиса и Боб получают общий секрет, если они никогда раньше не общались? И как сделать это так, чтобы сервер только помог передать публичные данные, но сам не смог вычислить итоговый ключ?</p><p>Для этого используется X3DH — Extended Triple Diffie-Hellman, протокол из экосистемы Signal. Его задача — установить общий секрет между двумя устройствами, используя долгосрочные и временные ключи.</p><h2>Что хранится на сервере</h2><p>Когда пользователь регистрирует устройство, он загружает на сервер пакет публичных ключей:</p><p>На сервер уходят только публичные части. Приватные ключи сериализуются и хранятся локально в браузере — и никогда не покидают устройство в сеть.</p><p>Здесь важно сказать честно: хранение приватных ключей в</p><p>Более строгий вариант — использовать Web Crypto API с</p><p>, чтобы приватный ключ жил внутри браузерного crypto runtime и его нельзя было экспортировать в байты. Но у этого подхода есть практическая сложность: ключи нужно переживать между перезагрузками страницы, синхронизировать с IndexedDB, аккуратно восстанавливать состояние устройства и не сломать UX.</p><p>В браузерных E2EE-приложениях обычно приходится выбирать между несколькими вариантами:</p><ul><li>Сериализуемые ключи в localStorage или IndexedDB — проще реализовать, но нужно очень серьёзно относиться к XSS и целостности frontend-кода.</li><li>extractable: false + IndexedDB — безопаснее, но сложнее в реализации и восстановлении состояния.</li><li>Нативное secure storage вроде Android Keystore или iOS Secure Enclave — лучший вариант для мобильных клиентов, но он недоступен обычному web-приложению.</li></ul><p>В текущей версии Chaos Messenger используется первый вариант. Это осознанный компромисс для pet/open-source проекта и удобного запуска в браузере. Переход на non-extractable ключи и более строгую модель хранения стоит в roadmap.</p><p>Ключевой момент: backend всё равно не получает приватные ключи и не может расшифровать сохранённые ciphertext-конверты. Но защита ключей на клиенте — отдельная задача, и её нельзя честно замалчивать.</p><h2>Установка сессии</h2><p>Когда Алиса открывает переписку с Бобом впервые, происходит следующее:</p><p>В классическом X3DH четвёртая DH-операция с one-time prekey опциональна: она выполняется, если сервер выдал доступный OPK получателя. В моей реализации устройство публикует набор one-time prekeys при регистрации, поэтому первое сообщение обычно использует DH4. Если OPK закончились, сессию всё равно можно установить через остальные DH-компоненты, но это уже менее сильный вариант.</p><p>Боб, получив конверт с эфемерным публичным ключом Алисы, повторяет те же операции со своими приватными ключами и получает тот же самый</p><p>. Математика симметрична.</p><p>Сервер в этот момент видит только публичные ключи и зашифрованный конверт. Он помогает устройствам найти друг друга, но не участвует в вычислении секрета.</p><p>Получить</p><figure><img src="https://media.tproger.ru/user-uploads/137649/2026-04-29/e7bbacf3-4fd2-4710-863a-2c710b1f6759.webp" alt="" /></figure><h2>Как шифруется каждое сообщение: Symmetric Ratchet</h2><p>X3DH даёт нам стартовый</p><p>. Но использовать один и тот же ключ для всех сообщений — плохая идея. Если использовать один ключ для всей переписки, компрометация этого ключа сразу открывает весь поток сообщений.</p><p>Решение — симметричный ratchet. После каждого сообщения цепочка ключей продвигается вперёд:</p><p>Визуально это выглядит так:</p><p>используется для шифрования одного сообщения через AES-GCM, после чего уничтожается. Если атакующий компрометирует</p><p>— он прочитает только второе сообщение.</p><p>В рамках такой симметричной цепочки это даёт forward secrecy назад по цепочке: зная текущий или отдельный</p><figure><img src="https://media.tproger.ru/user-uploads/137649/2026-04-29/939a74f7-60c5-4816-85f0-05b5afdc9845.webp" alt="" /><figcaption>(диаграмма схемы chainKey → messageKey)</figcaption></figure><p>Само шифрование сообщения:</p><p>А вот что уходит на сервер — живой пример из DevTools:</p><p>Сервер получает</p><p>и</p><p>. Расшифровать без</p><figure><img src="https://media.tproger.ru/user-uploads/137649/2026-04-29/b5e24cda-6fd9-4b15-9f27-3eb9b4f843b0.webp" alt="" /></figure><h2>Важная оговорка: это ещё не полный Double Ratchet</h2><p>В этом проекте реализован Symmetric Ratchet — цепочка, где из</p><p>для каждого сообщения выводится отдельный</p><p>Это защищает прошлые сообщения: если атакующий узнает текущий ключ или отдельный</p><p>, он не сможет откатить HMAC назад и получить старые ключи.</p><p>Но это не полный Double Ratchet из Signal Protocol.</p><p>В полном Double Ratchet есть ещё DH ratchet step: стороны периодически выполняют новый Diffie-Hellman обмен и обновляют root key. Это даёт break-in recovery — возможность восстановить безопасность будущих сообщений после компрометации части состояния.</p><p>В моей реализации DH ratchet step пока нет. Если атакующий получит актуальное состояние сессии на устройстве и сможет продолжать его читать, он сможет расшифровывать будущие сообщения до переустановки сессии. Это честное ограничение текущей версии, и оно стоит первым пунктом в roadmap.</p><h2>Мультиустройство: один пользователь, несколько конвертов</h2><p>Первый неочевидный момент: в E2EE сообщение адресуется не просто пользователю, а конкретным устройствам пользователя.</p><p>Если у Боба два устройства — телефон и ноутбук — нужен отдельный encrypted envelope для каждого устройства. Сервер не может взять один конверт, расшифровать его и "переупаковать" для второго устройства: у него нет ключей и он не знает plaintext.</p><p>Значит при отправке сообщения нужно зашифровать его отдельно для каждого устройства каждого участника чата.</p><p>Для чата где у каждого по 2 устройства — 4 конверта на одно сообщение. Для группы из 10 человек — потенциально 20 конвертов. Это нормально, это цена безопасности.</p><h2>Сервер: хранение и доставка конвертов</h2><p>На сервере сообщение создаётся с контентом</p><p>, а конверты сохраняются отдельно:</p><p>После сохранения — fanout по WebSocket. Каждое устройство получает свой конверт и только его:</p><p>Это важное отличие от обычного WebSocket-чата. В обычном чате сервер рассылает одно и то же событие всем участникам. В E2EE-чате сервер рассылает разные события разным устройствам: payload для каждого устройства содержит свой</p><p>Топик</p><p>— строго персональный. Устройство А не получает конверт устройства Б. Никакого broadcast — только адресная доставка.</p><h2>Архитектура целиком</h2><figure><img src="https://media.tproger.ru/user-uploads/137649/2026-04-29/de0e3257-d893-459f-86ed-7ed8eace5d56.webp" alt="" /></figure><h2>Баг который долго не замечал</h2><p>В панели чатов показывается превью последнего сообщения. Я реализовал это через</p><p>Запускаю — в списке чатов у всех написано</p><p>.</p><p>Конечно. Сервер же не знает что там написано.</p><p>Я полчаса думал как решить это на сервере. Потом дошло: нельзя решить это на сервере — у него нет ключей. Решение только на клиенте.</p><p>После того как пользователь открыл чат и сообщения расшифровались — кешируем последнее в памяти:</p><p>Это хороший пример того, как E2EE меняет привычное мышление backend-разработчика. В обычном приложении preview — это поле в SQL-запросе. В E2EE-приложении preview — это локальное клиентское состояние, потому что только клиент видел plaintext.</p><p>Простое решение. Но чтобы к нему прийти нужно было полностью принять идею что сервер здесь просто не при делах — и перестать пытаться решить задачу на его стороне.</p><h2>Rate limiting: дыра которую легко не заметить</h2><p>Эндпоинт</p><p>отправляет SMS с кодом. Без защиты любой скрипт может дёргать его тысячи раз — это называется SMS pumping fraud, SMS стоят реальных денег.</p><p>Redis у нас уже был для хранения онлайн-статусов. Добавил rate limiting поверх него:</p><p>При превышении — HTTP 429 с заголовком</p><p>. Клиент знает через сколько секунд можно повторить.</p><p>Важный нюанс: в текущей реализации, если Redis недоступен, сервис не блокирует авторизацию полностью. Для pet-проекта это приемлемый компромисс: лучше рискнуть одним лишним SMS, чем положить вход в приложение.</p><p>В production я бы сделал строже: fallback in-memory лимит на инстанс, отдельные лимиты по IP и телефону, антифрод-логику и алерты на всплески отправки кодов.</p><h2>Авторизация WebSocket</h2><p>Отдельная история — авторизация WebSocket соединений. HTTP-эндпоинты защищены Spring Security автоматически, но WebSocket — другое дело. STOMP-соединение устанавливается один раз, и нужно проверять JWT при каждом подключении.</p><p>Отдельно важно не только проверить JWT, но и связать WebSocket-соединение с конкретным устройством. Пользователь может быть один, но устройств у него несколько, а encrypted envelope адресован именно</p><p>Поэтому при подключении я проверяю не только токен, но и</p><p>: устройство должно быть зарегистрировано и принадлежать текущему пользователю. Иначе легко случайно превратить per-device E2EE-доставку обратно в обычный broadcast по пользователю.</p><h2>Что получилось — живые скрины</h2><figure><img src="https://media.tproger.ru/user-uploads/137649/2026-04-29/1fdfa006-f5c6-4731-a40f-50559be8832d.webp" alt="" /></figure><figure><img src="https://media.tproger.ru/user-uploads/137649/2026-04-29/c99164a5-021c-49ac-bcc4-3e38f9cd1c31.webp" alt="" /></figure><p>Что реализовано:</p><ul><li>E2EE-модель с per-device encrypted envelopes</li><li>X3DH session setup + Symmetric Ratchet + AES-GCM</li><li>Мультиустройство</li><li>Личные и групповые чаты</li><li>Realtime доставка через WebSocket/STOMP</li><li>Статусы SENT → DELIVERED → READ</li><li>Редактирование и soft delete сообщений</li><li>Online presence, typing indicator</li><li>Фото-вложения</li><li>Поиск пользователей</li><li>Rate limiting на SMS через Redis</li><li>Prometheus метрики + Grafana дашборд</li><li>Swagger UI с JWT авторизацией</li><li>24 backend-теста на Testcontainers, 12 frontend на Vitest, E2E на Playwright</li><li>GitHub Actions CI</li></ul><p>Что ещё не сделано:</p><ul><li>Полный Double Ratchet с DH ratchet step и break-in recovery</li><li>Ротация signed prekey и аккуратное пополнение one-time prekeys</li><li>Более строгая модель хранения приватных ключей на клиенте: non-extractable CryptoKey + IndexedDB</li><li>Защита от подмены frontend-кода: подпись сборок, независимая верификация клиента, reproducible builds</li><li>Android-клиент с Android Keystore</li><li>Реальный SMS-провайдер вместо кода в backend-логах</li><li>Push-уведомления без утечки содержимого сообщений</li><li>Более строгая metadata-модель для групповых чатов</li></ul><h2>Главный инсайт</h2><p>E2EE — это архитектурное решение, а не библиотека.</p><p>Нельзя взять обычный Spring Boot чат и просто "включить шифрование". Нужно с самого начала проектировать систему так, чтобы backend не был участником доверенной зоны: он не должен получать plaintext, не должен иметь ключи и не должен уметь пересобирать сообщение из данных в базе.</p><p>Это меняет почти всё:</p><ul><li>структуру БД — вместо текста появляются encrypted envelopes</li><li>API — сервер отдаёт [encrypted], а не preview сообщения</li><li>WebSocket — доставка идёт не по пользователю, а по конкретному устройству</li><li>мультиустройство — одно сообщение превращается в несколько ciphertext-конвертов</li><li>frontend — становится полноценной криптографической частью системы, а не просто UI</li></ul><p>Второй инсайт: мессенджер — это не "чат с WebSocket". В E2EE-модели это система доставки зашифрованных конвертов с адресацией по устройствам. Как только это принимаешь, многие странные на первый взгляд решения становятся логичными.</p><h2>Репозиторий</h2><p>Код открыт: <a href="https://github.com/vaazhen/chaos-messenger">github.com/vaazhen/chaos-messenger</a></p><p>В репозитории есть README на русском и английском, диаграммы, скриншоты, security audit, Docker Compose и запуск одной командой.</p><p>Проект не претендует на уровень production-криптомессенджера вроде Signal. Это учебный и инженерный open-source прототип, цель которого — показать, как E2EE меняет архитектуру backend, frontend и realtime-доставки.</p><p>Если вы делали что-то похожее — особенно интересно сравнить подходы к ротации prekey-ов, хранению non-extractable ключей в браузере и реализации DH ratchet step. Вопросы и критика приветствуются.</p>]]></content:encoded>
    </item>
    <item>
      <title>Podroid запускает Linux-контейнеры на Android без root</title>
      <link>https://tproger.ru/news/google-vypustila-gemma-4---pervuyu-model-serii-pod-apache-2-0</link>
      <comments>https://tproger.ru/news/google-vypustila-gemma-4---pervuyu-model-serii-pod-apache-2-0?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Евгений Стребков]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/google-vypustila-gemma-4---pervuyu-model-serii-pod-apache-2-0</guid>
      <description><![CDATA[<p>Podroid запускает Podman-контейнеры на Android без root через QEMU и Alpine Linux VM. Работает на любом ARM64-устройстве с Android 8.0+. Попробуйте — один APK.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/google-vypustila-gemma-4---pervuyu-model-serii-pod-apache-2-0">Podroid запускает Linux-контейнеры на Android без root</a>»</p>]]></description>
      <category><![CDATA[Linux]]></category>
      <category><![CDATA[Android]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Mon, 06 Apr 2026 15:42:09 GMT</pubDate>
      <content:encoded><![CDATA[<p>Android умеет запускать Linux-терминал с виртуализацией — но только на Pixel и части устройств с Exynos. Для остальных телефонов альтернатив не было. <a href="https://github.com/ExTV/Podroid">Podroid</a> решает эту проблему: приложение запускает полноценный контейнерный рантайм <a href="https://podman.io/">Podman</a> на любом ARM64-устройстве с Android 8.0+, без root и без <a href="https://termux.dev/">Termux</a>.</p><p>Проект набрал 686 звёзд на GitHub и <a href="https://news.ycombinator.com/item?id=47633131">попал на главную Hacker News</a>.</p><ul><li>Podroid запускает Linux-контейнеры на Android без root — через QEMU TCG и Alpine Linux VM</li><li>Встроенный Podman: docker-совместимый рантайм с персистентным хранилищем</li><li>Работает на любом ARM64-устройстве с Android 8.0+ — не требует Pixel или KVM</li><li>Порт-форвардинг, SSH, пресеты для Pi-hole, Nginx, Gitea, Grafana</li><li>Open source под GPL v2, один APK без внешних зависимостей</li></ul><h2>Зачем это нужно</h2><p>Встроенный Linux-терминал Android (из Developer Settings) использует аппаратную виртуализацию KVM — и поэтому <a href="https://news.ycombinator.com/item?id=47633131">работает только на Pixel</a>. Формально его поддерживают и некоторые устройства с Exynos, но Samsung часто блокирует функцию через Knox. На Snapdragon-чипах (а это большинство Android-телефонов) терминал недоступен из-за отсутствия поддержки non-protected VM.</p><p>Podroid обходит это ограничение за счёт программной эмуляции через QEMU TCG. Это медленнее, чем KVM, но работает везде. Для задач вроде запуска скриптов, Pi-hole, лёгкого веб-сервера или SSH-туннеля производительности достаточно.</p><h2>Как это работает</h2><p>Podroid поднимает лёгкую виртуальную машину <a href="https://alpinelinux.org/">Alpine Linux</a> через <a href="https://www.qemu.org/">QEMU</a> TCG (без аппаратной виртуализации KVM). Внутри VM работает <a href="https://podman.io/">Podman</a> — docker-совместимый контейнерный рантайм с rootless-архитектурой по умолчанию.</p><p>При загрузке QEMU монтирует Linux-ядро и initramfs. Двухфазный init поднимает персистентный ext4-диск как overlayfs — всё, что вы установите или скачаете, сохраняется между перезапусками.</p><h2>Что внутри</h2><p><b>Контейнерный рантайм.</b> <a href="https://podman.io/">Podman</a> с crun, netavark и slirp4netns. Rootless по умолчанию — без демона с root-привилегиями. Контейнеры запускаются одной командой:</p><p><b>Терминал.</b> Полная VT100/xterm-эмуляция на базе <a href="https://termux.dev/">Termux</a>. Настоящий PTY с поддержкой job control, сигналов и escape-последовательностей. 114 цветовых тем (Dracula, Nord, Solarized, Tokyo Night, Catppuccin, Gruvbox), 13 шрифтов (JetBrains Mono, Fira Code, Cascadia Code), поддержка мыши для TUI-приложений — btop, htop, mc, vim.</p><p><b>Сеть.</b> Интернет из коробки через QEMU SLIRP. Порт-форвардинг с горячим добавлением через QMP — можно пробросить порты VM на Android-устройство прямо во время работы. Готовые пресеты для <a href="https://pi-hole.net/">Pi-hole</a>, <a href="https://nginx.org/">Nginx</a>, <a href="https://about.gitea.com/">Gitea</a> и <a href="https://grafana.com/">Grafana</a>. Встроенный SSH на порту 9922.</p><p><b>Хранилище.</b> Размер диска на выбор: 2, 4, 8, 16, 32 или 64 ГБ. Папка Downloads с Android монтируется в VM через virtio-9p.</p><h2>Требования и установка</h2><ul><li>ARM64-устройство (большинство телефонов с 2018 года)</li><li>Android 8.0+ (API 26)</li><li>~150 МБ для приложения + выбранный размер диска VM</li></ul><p>Установка — один APK из <a href="https://github.com/ExTV/Podroid/releases">GitHub Releases</a>. Никаких внешних зависимостей, Termux не нужен. Открыть приложение → нажать Start VM → подождать ~20 секунд → Open Terminal.</p><p>Podroid — не замена полноценному серверу, но для локальной разработки, self-hosted сервисов и экспериментов на ходу — рабочий вариант. Исходный код — на <a href="https://github.com/ExTV/Podroid">GitHub</a> под лицензией GPL v2.</p>]]></content:encoded>
    </item>
    <item>
      <title>Почему ваш канал связи — не ваш. История о том, как паранойя заставила меня написать свой мессенджер с нуля.</title>
      <link>https://tproger.ru/articles/pochemu-vaw-kanal-svyazi---ne-vaw--istoriya-o-tom--kak-paranojya-zas</link>
      <comments>https://tproger.ru/articles/pochemu-vaw-kanal-svyazi---ne-vaw--istoriya-o-tom--kak-paranojya-zas?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[igrym]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/pochemu-vaw-kanal-svyazi---ne-vaw--istoriya-o-tom--kak-paranojya-zas</guid>
      <description><![CDATA[<p>Вернул UIN-ы из нулевых и завернул всё в PWA: как я писал свой мессенджер, балансируя между ностальгией и Highload</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/pochemu-vaw-kanal-svyazi---ne-vaw--istoriya-o-tom--kak-paranojya-zas">Почему ваш канал связи — не ваш. История о том, как паранойя заставила меня написать свой мессенджер с нуля.</a>»</p>]]></description>
      <category><![CDATA[Интернет]]></category>
      <category><![CDATA[API]]></category>
      <category><![CDATA[Android]]></category>
      <category><![CDATA[Безопасность]]></category>
      <category><![CDATA[iOS]]></category>
      <category><![CDATA[Бэкенд]]></category>
      <category><![CDATA[Мессенджер]]></category>
      <category><![CDATA[Приложение]]></category>
      <category><![CDATA[Песочница]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Sat, 04 Apr 2026 14:35:02 GMT</pubDate>
      <content:encoded><![CDATA[<p>В какой-то момент я понял неприятную вещь: если твой канал связи живет по чужому настроению, политической погоде, сбою в чужом облаке или очередной внезапной любви регулятора к кнопке «запретить» — это не твой канал связи. Это аренда с правом внезапного выселения.</p><p>Мне эта модель быстро наскучила.</p><p>Поэтому я сделал то, что обычно делают люди с нездоровой смесью инженерной паранойи, скуки и профессиональной деформации: психанул и начал писать свой мессенджер.</p><p>Сразу зафиксируем рамки, чтобы не плодить фантомные ожидания:</p><p>- это не убийца Telegram;</p><p>- это не презентация для инвестора с KPI и growth loops;</p><p>- это не проповедь о том, как всем теперь жить.</p><p>Это мой личный цифровой бункер, моя песочница, мой учебный полигон и мой инженерный аттракцион. Я строю это прежде всего для себя: как резервный канал связи, как способ не зависеть от чужих решений и как честный highload-эксперимент, в котором можно не рассуждать про real-time в теории, а ловить его за горло руками.</p><p>И вот здесь началось смешное.</p><p>Я рассчитывал на бодрую гаражную поделку. Но эта штука оказалась заметно живее, упрямее и интереснее, чем я ожидал. Поэтому я и притащил ее на TProger. Не за аплодисментами. За самым ценным, что здесь умеют делать лучше многих: находить слабое место раньше, чем автор успевает самодовольно сказать «ну вроде едет».</p><h2>Что это вообще такое</h2><p>На текущем этапе это PWA-мессенджер.</p><p>Да, PWA. Да, осознанно. Да, я знаю весь стандартный набор комментариев про ограничения платформы, кривые пуши, фоновые ограничения и то, что</p><p>«настоящие пацаны пишут только натив». Можете не разогреваться, я это всё уже сам себе рассказал.</p><p>Почему все равно PWA:</p><p>- мне нужен был короткий путь от идеи до живого клиента;</p><p>- мне нужен был быстрый цикл выката без ритуальных танцев с</p><p>магазинами приложений;</p><p>- мне нужен был клиент, который можно быстро ломать, чинить,</p><p>пересобирать и снова кидать в бой;</p><p>- мне нужно было что заработает на разных платформах;</p><p>- мне нравится, что PWA живет в браузерной песочнице, а не лезет в телефон как хозяин квартиры.</p><p>У PWA есть реальные потолки:</p><p>- нет такой свободы по платформенным API, как у нативного клиента;</p><p>- фон, пуши и некоторые сценарии мобильной жизни работают хуже, чем</p><p>хотелось бы;</p><p>- нет нормальных VoIP-пушей (звонки работают только когда приложение</p><p>открыто), нет нормальной интеграции со списком вызовов телефона;</p><p>- по голой производительности натив его обгоняет.</p><p>И, да, Service Workers иногда ведут себя как подростки в пубертате, а iOS местами режет фоновую жизнь PWA так, будто лично обиделась на идею веб-клиента. Я в курсе. Выживаем с тем, что есть.</p><p>Но для моей задачи PWA дал главное: скорость эволюции. А в экспериментальном проекте это иногда важнее, чем стерильная идеология.</p><p>И да, работает эта штука подозрительно хорошо. Лучше, чем я ожидал, если честно.</p><h2>Зачем вообще писать еще один мессенджер, когда мир и так ими забит</h2><p>Потому что «и так забит» — плохой аргумент, когда существующие варианты в любой момент могут начать вести себя как полуживые.</p><p>Потому что я люблю контролировать инфраструктуру, а не молиться на чужую.</p><p>Потому что читать статьи про очереди, ретраи, доставку, порядок сообщений и борьбу с race condition — это теория. А написать свое, увидеть, где оно течет, и потом руками это затыкать — уже ремесло.</p><p>Потому что мне скучно.</p><p>Да, это тоже важная часть правды. На обычной работе мозг периодически начинает зевать от предсказуемости. А когда ты в одиночку пытаешься собрать живой real-time-сервис, где есть сессии, доставка сообщений, поиск, синхронизация состояния, очереди и weird cases мобильной сети —</p><p>то зевота быстро заканчивается.</p><p>То есть да: это учебный проект. Но из тех учебных проектов, которые в какой-то момент говорят: «всё, детский сад закончился, теперь давай как взрослые».</p><p>Где начинаются не разговоры про highload, а настоящая инженерная жизнь</p><p>Пока не собираешь такое сам, кажется, что мессенджер — это просто чатик.</p><p>Ну текстик, ну websocket, ну кнопка «отправить», господи. А потом начинается взрослая часть спектакля.</p><h3>1. Сообщение должно не просто уйти, а дойти правильно</h3><p>Самая скучная и самая дорогая ошибка — считать, что «отправил» значит</p><p>«доставил».</p><p>Нет. В реальной жизни между клиентом, сетью, сервером и хранилищем полно мест, где всё может стать интересно:</p><p>- клиент послал пакет, но сеть моргнула;</p><p>- сервер принял, но клиент не получил подтверждение;</p><p>- клиент решил, что ничего не дошло, и отправил повторно;</p><p>- внезапно у тебя уже не просто доставка, а идемпотентность,</p><p>дедупликация, подтверждения, ретраи и очень неприятные разборки с</p><p>дублями.</p><p>И это только один кусок.</p><h3>2. Порядок сообщений — штука гораздо более капризная, чем кажется</h3><p>Пользователь хочет простой магии: чтобы сообщения были в нужном порядке, статусы не врали, а история не прыгала, как пьяный курсор.</p><p>Инженерная реальность куда веселее:</p><p>- локальный optimistic update на offline-first клиенте хочет быть</p><p>быстрым;</p><p>- серверная истина хочет быть правильной;</p><p>- база хочет жить в своей временной линии;</p><p>- несколько устройств одного пользователя могут в это время смотреть на</p><p>мир разными глазами.</p><p>Как только начинаешь совмещать низкую задержку с внятной консистентностью, выясняется, что ты не «чатик пишешь», а торгуешься с физикой и распределенными состояниями.</p><h3>3. Race condition — это когда баг уже произошел, но ты еще не знаешь, где именно тебя унизили</h3><p>Race conditions — мой любимый жанр инженерного фольклора. Это когда всё прекрасно, пока ты смотришь. И ломается ровно в тот момент, когда отвлекся налить кофе.</p><p>Условно:</p><p>- один поток думает, что пользователь в онлайне;</p><p>- второй уже считает, что он отвалился;</p><p>- третий в это время честно пишет новое состояние;</p><p>- четвертый с невинным лицом отдает клиенту вчерашнюю правду.</p><p>А потом ты сидишь и объясняешь себе, почему в 99.7% случаев всё идеально, а в оставшихся 0.3% система внезапно начинает разговаривать голосами. А когда еще и пытаешься заставить работать реалтайм систему еще в кластере, то все сложности возводятся в квадрат.</p><h4>4. Любая «маленькая фича» очень быстро приходит за твоей архитектурой с ножом</h4><p>Захотел новую механику? Например, необычную резервацию UIN еще до регистрации? На бумаге выглядит забавно. На бэкенде начинается вечеринка:</p><p>- появляется состояние для еще не существующего пользователя;</p><p>- нужно резервировать ресурс так, чтобы его не вымели любопытные и жадные боты;</p><p>- нужно думать о TTL, освобождении, гонках, повторных запросах и кривом клиентском поведении;</p><p>- нужно следить, чтобы веселая фича не превратилась в атаку на собственную логику.</p><p>И вот так почти всё. В продуктовых презентациях фича может подаваться как «геймификация входа». В серверной реальности — «еще один слой боли, зато красиво».</p><h3>5. Поиск и история сообщений сначала кажутся простыми. Потом ты взрослеешь</h3><p>Пока данных мало, Postgres прощает тебе оптимизм. Потом история растет, индексы начинают намекать, что дружба дружбой, а latency по расписанию, и любой неаккуратный запрос внезапно становится личным конфликтом с CPU.</p><p>И тут выясняется, что в реальном мессенджере мало просто «хранить сообщения». Нужно еще:</p><p>- быстро искать;</p><p>- не ломать горячий путь доставки;</p><p>- не превращать сервер в печку под нагрузкой;</p><p>- думать наперед, где потом начнется горизонтальное масштабирование, а</p><p>где сначала будет боль, потом переписывание, потом снова боль.</p><p>Чтобы это не выглядело как очередная литература про «сложности highload», вот живой пример. Это кусок поиска по групповым сообщениям в моем бекенде: с проверкой доступа, выборкой только текстовых сообщений и сортировкой по релевантности.</p><p>Под этот запрос у меня лежит не молитва, а вполне конкретная опора: partial GIN index по выражению`(content-&gt;&gt;'text') gin_trgm_ops`.Иначе такая красота очень быстро превращает сервер в отопление стойки за счет тупого перебора JSONB.</p><p>А вот так тот же самый функционал очень часто пишут новички — вроде работает, пока данных смешно мало:</p><p>Проблема тут не в эстетике. Проблема в том, что верхний вариант ищет по нужному полю, умеет нормально ранжировать результат и опирается на индекс. Нижний часто уезжает в тяжелый scan по JSONB, ищет по строковому представлению всего объекта и под нагрузкой начинает жечь CPU просто потому, что автору было лень договориться с базой по-хорошему.</p><p>На реальном объеме истории в проде разница здесь может быть уже не в процентах, а на порядок и выше. То есть это очень быстро превращается не в «чуть-чуть быстрее», а в 10x+, а дальше всё зависит от размера истории, доли текстовых сообщений, партиций и того, насколько сильно вы любите мучить PostgreSQL.</p><p>И это еще сравнительно добрый пример. В по-настоящему наивной реализации люди (да часто и нейросети в руках новичков) иногда забывают не только про индекс и ранжирование, но и про нормальную проверку членства в чате — и тогда у тебя получается не просто медленный поиск, а еще и билет в секцию «как я сам себе устроил privacy-инцидент».</p><h3>6. Очереди, ретраи и backpressure — это не украшения, а повод спать чуть спокойнее</h3><p>В сетевом сервисе нельзя жить по принципу «ну отправили и ладно». Когда клиентов много, а сеть у части из них вечно в состоянии «между EDGE и молитвой», тебе нужны механизмы, которые умеют не только гнать трафик, но и не убивать систему собственным рвением.</p><p>То есть нужны:</p><p>- очереди (Kafka, или что вы там предпочитаете);</p><p>- повторные попытки (retry-логика);</p><p>- backpressure;</p><p>- вменяемая реакция на временную деградацию (graceful degradation);</p><p>- circuit breaker чтобы какой-нибудь маленький и вроде бы некритичный сервис не мог каскадно положить бы всю инфраструктуру;</p><p>- архитектура, которая умеет признавать, что мир не идеален.</p><p>Красиво это звучит только в статьях. В коде это обычно выглядит как серия компромиссов, которые ты принимаешь с лицом человека, только что подписавшего договор с хаосом. И все это когда у тебя нет сотен высокопроизводительных серверов в кармане, которые уже лишь за счет их мощности могли бы прощать многое.</p><h2>Интерфейс я подсматривал у Telegram. И да, специально</h2><p>Я не стал устраивать дизайнерский карнавал ради уникальности. У пользователя уже есть мышечная память. Она дороже моего самолюбия.</p><p>Если человек открывает новый мессенджер, он хочет быстро разобраться и написать сообщение. Ему не нужен артхаус-квест «найди кнопку отправки, автор так видит».</p><p>Поэтому UI здесь знакомый. Не потому что я беден фантазией, а потому что я делаю инструмент связи, а не выставку интерфейсного концептуализма.</p><figure><img src="https://media.tproger.ru/user-uploads/136500/2026-03-17/d42e785c-1951-43a6-b560-bc03d1f503a2.webp" alt="" /></figure><figure><img src="https://media.tproger.ru/user-uploads/136500/2026-03-17/7f9a0d02-7637-41c9-8ca1-408153554887.webp" alt="" /></figure><h2>Моя любимая инженерная шалость: UIN-рулетка до регистрации</h2><p>Тут я, конечно, немного похулиганил.</p><p>Я сделал резервацию UIN еще до этапа регистрации. То есть можно зайти, поймать красивый номер, а уже потом решить, нужен тебе вообще этот зоопарк или нет.</p><p>С человеческой стороны это фан, ностальгия и немного ICQ-вайба.</p><p>С серверной стороны это пачка вопросов:</p><p>- как хранить состояние для «почти-пользователя»;</p><p>- как не раздать красивые номера слишком щедро;</p><p>- как не дать мимо проходящему ботнету выгрести пул;</p><p>- как освобождать резервы и не плодить мусор;</p><p>- как не застрелить логическую целостность ради красивой игрушки.</p><p>С практической точки зрения миру, возможно, и не нужна эта фича. С инженерной — она просто слишком вкусная, чтобы я прошел мимо.</p><h2>Про безопасность — без дешевой магии и без сказок для инвестора</h2><p>Нет, я не изобретал свою криптографию. Я вообще считаю, что желание «сейчас быстренько придумаю свой защищенный протокол» должно автоматически активировать тревожную сирену. Да, создать защищенный протокол возможно, но это сложнее и дольше чем кажется из-за необходимости учета множества edge-cases; и в реальности сделанные на коленке протоколы чаще ненадежны, и, что еще хуже, об их уязвимостях могут знать лишь немногие пронырливые и порой не самые добросовестные люди.</p><p>Поэтому мой подход скучный, взрослый и не очень годится для красивых презентаций:</p><p>- транспорт закрыт современным TLS 1.3 (который на текущий момент, март 2026, взломать прямым криптографическим методом практически невозможно);</p><p>- клиент живет как PWA в браузерной песочнице, какая уже сама по себе имеет ряд уровней защиты;</p><p>- поверх этого я стараюсь не творить откровенной дичи;</p><p>Но важная оговорка, и она принципиальна: проект развивается быстро, агрессивно и временами как лаборатория под кофеином. Некоторые части еще могут отваливаться на ходу. Какие-то углы я уже вижу. Какие-то, уверен, еще нет.</p><p>Поэтому, несмотря на базово вменяемый современный уровень безопасности приложения, я не рекомендую сейчас доверять системе особо чувствительные данные.</p><p>Если вам нужна зрелая крепость для деликатной переписки — берите зрелые решения, которым вы уже доверяете.</p><p>Если вам нужен живой инженерный эксперимент, резервный канал связи и объект для вдумчивого краш-теста — вот он.</p><h2>Почему я вообще тащу это именно на TProger</h2><p>Потому что TProger — это место, где тексту мало быть наглым. Здесь за дерзость прощают только одно: если под ней есть мясо.</p><p>А у меня как раз тот случай, когда мне интереснее не «собрать лайки», а получить нормальную техническую реакцию:</p><p>- где архитектура выглядит спорно;</p><p>- где логика доставки сообщений может начать чудить;</p><p>- где PWA упрется в реальные ограничения платформы;</p><p>- где резервация UIN создает лишнюю поверхность атаки;</p><p>- где под нагрузкой начнет хрустеть то, что в одиночных тестах ведет себя прилично;</p><p>- где в протоколе, порядке событий, ретраях или кешировании я недооценил крайний случай.</p><p>Мне не нужен хор в духе «вау, круто».</p><p>Мне нужен ваш внутренний вредный сеньор. Тот самый тип, который открывает статью, хмыкает, а потом начинает мысленно разбирать чужую систему на части.</p><p>Вот ему я и пишу.</p><h2>Что я от вас хочу</h2><p>По сути — честной драки, но умной.</p><p>- Хотите проверить, как это переживает плохую сеть — отлично.</p><p>- Хотите посмотреть, как выглядит поведение в edge-cases — вообще прекрасно.</p><p>- Хотите понять, насколько легко читается логика протокола — давайте.</p><p>- Хотите найти баг в порядке сообщений, в кеше, в подтверждениях, в резервации UIN, в клиентском поведении — тем более.</p><p>Только давайте без детского жанра «я что-то молча сломал и ушел сиять в закат». Если найдете слабое место, баг, странность, дыру, подозрительный сценарий или красивый способ заставить систему вести себя не так, как я планировал, — пишите.</p><p>Мне это полезнее, чем аплодисменты.</p><p>И да: я не заявляю, что построил новый и единственно верный мессенджер.</p><p>Я заявляю другое. Я собрал свой рабочий велосипед, уже довольно злой и живой, и мне интересно, где именно TProger попробует вставить ему отвертку в спицы, и на какой секунде этот велосипед упадет.</p><p>Что можно делать прямо сейчас</p><p>- Если вы параноик или устали от мейнстрима и навязанных решений — держите это как запасной канал связи.</p><p>- Если вы соскучились по временам красивых UIN — приходите ловить UIN-номер.</p><p>- Если вы любите sniff, разбор трафика и сетевые игры — смотрите что идет по проводу.</p><p>- Если у вас профессиональная привычка первым делом искать edge-cases — вот, собственно, ради вас всё это и принесено.</p><p>И если что-то положите, вскроете или красиво разберете — пришлите детали. Я не обидчивый. Я, строго говоря, именно ради этого и открыл двери.</p><h2>Что дальше</h2><p>Планы без корпоративной шелухи, но вполне понятные:</p><p>- дальше допиливаю PWA-версию;</p><p>- нативные Android и iOS-клиенты — в планах, но пока не в приоритете;</p><p>- клиентскую часть, вероятно, позже открою, когда там станет меньше творческого барокко;</p><p>- идея с SDK / библиотекой для кастомных клиентов мне нравится отдельно: если люди захотят писать свои оболочки, это будет уже совсем красивый уровень игры.</p><p>Исходники сейчас закрыты. Не потому что я жадничаю или прячу священный секретный соус, а потому что местами там еще такой авторский лофт из боевых решений, экспериментов, временных костылей и честной инженерной импровизации, что сначала я предпочту сам это немного причесать.</p><h2>Итог</h2><p>На сегодня это экспериментальный PWA-мессенджер, который родился из упрямства, паранойи, скуки и любви к инженерным задачам, от которых нормальные люди обычно стараются держаться подальше.</p><p>Я делал его в первую очередь для себя. Но он уже дорос до стадии, когда его интересно не только строить, но и показывать наружу.</p><p>Если будете пробовать — лучше сразу добавить его на домашний экран (PWA так устанавливается). Так приложению жить будет заметно удобнее: платформа позволит заработать пуш-уведомлениям, появится нормальное кеширование, а оффлайн-режим перестанет быть декоративной надписью.</p><p>Если хотите просто еще один канал связи — пожалуйста.</p><p>Если хотите посмотреть и проверить, насколько крепок мой цифровой эксперимент, — тем более пожалуйста.</p><p>Если хотите проверить заодно и собственные навыки на живой системе, которая не притворяется идеальной, — вот, собственно, и весь смысл этой публикации.</p><p>Добро пожаловать.</p><p>Посмотрим, кто кого утомит первым: вы — мой сервер, я — ваши попытки его удивить, или реальность — нас обоих.</p><p><b>PS:</b></p><p>Меня там можно найти по нику IGRYM или по UIN 10001. Также есть внутренняя группа для первых пользователей (Early Birds, доступна на экране списка чатов через «+» вверху экрана)</p><p>Ссылки:</p><p>- Приложение: https://beta.plumb-app.ru/</p><p>- Телеграм-канал с новостями проекта: https://t.me/plumb_channel</p><p>- Телеграм-группа обсуждения: https://t.me/plumb_group</p>]]></content:encoded>
    </item>
    <item>
      <title>Google обязала всех Android-разработчиков пройти верификацию — 62 организации выступили против</title>
      <link>https://tproger.ru/news/google-obyazala-vseh-android-razrabotchikov-projti-verifikaciyu---6</link>
      <comments>https://tproger.ru/news/google-obyazala-vseh-android-razrabotchikov-projti-verifikaciyu---6?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Алексей Михайлишин]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/google-obyazala-vseh-android-razrabotchikov-projti-verifikaciyu---6</guid>
      <description><![CDATA[<p>Google требует верификацию личности для всех Android-разработчиков — не только в Play Store. F-Droid под угрозой, 62 организации против. Разбираем последствия.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/google-obyazala-vseh-android-razrabotchikov-projti-verifikaciyu---6">Google обязала всех Android-разработчиков пройти верификацию — 62 организации выступили против</a>»</p>]]></description>
      <category><![CDATA[Open Source]]></category>
      <category><![CDATA[Android]]></category>
      <category><![CDATA[Мобильная разработка]]></category>
      <category><![CDATA[Google]]></category>
      <category><![CDATA[Google Play]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Tue, 31 Mar 2026 06:26:16 GMT</pubDate>
      <content:encoded><![CDATA[<p>Если вы публикуете Android-приложения за пределами Google Play — приготовьтесь к верификации. 30 марта 2026 года Google <a href="https://android-developers.googleblog.com/2026/03/android-developer-verification-rolling-out-to-all-developers.html">открыла регистрацию</a> в программе Android Developer Verification для всех разработчиков. С 30 сентября 2026 незарегистрированные приложения начнут блокироваться на сертифицированных устройствах.</p><p>Программа обязывает <b>всех</b> разработчиков Android-приложений пройти верификацию личности — независимо от того, распространяют ли они приложения через Google Play, сторонние магазины или напрямую через APK. 62 организации из 19 стран, включая EFF, F-Droid и Tor Project, <a href="https://keepandroidopen.org/open-letter/">подписали открытое письмо</a> против программы, назвав её угрозой открытости Android.</p><p>— Google требует верификацию личности для всех Android-разработчиков — не только в Play Store</p><p>— С 30 сентября 2026 незарегистрированные приложения блокируются в 4 странах, в 2027 — глобально</p><p>— F-Droid заявляет, что программа фактически уничтожает проект</p><p>— 62 организации (EFF, Tor Project, Proton, KDE) подписали открытое письмо против</p><p>— Для хобби-разработчиков предусмотрен бесплатный аккаунт с лимитом в 20 устройств</p><p>Android Developer Verification — программа верификации разработчиков, <a href="https://android-developers.googleblog.com/2026/03/android-developer-verification.html">анонсированная Google</a> во второй половине 2025 года. До сих пор верификация требовалась только для публикации в Google Play. Новая программа распространяет это требование на <b>все каналы дистрибуции</b>: сторонние магазины (F-Droid, Galaxy Store, Amazon Appstore), прямую загрузку APK и любой другой способ установки на сертифицированные Android-устройства (то есть практически все телефоны с Google Play Services — более 95% активных Android-устройств за пределами Китая).</p><h2>Что требуется для верификации</h2><p>Google предлагает два типа аккаунтов (регистрация — на <a href="https://developer.android.com/developer-verification">developer.android.com/developer-verification</a>):</p><ul><li><b>Full Distribution ($25)</b> — полная верификация: юридическое имя, адрес, email, телефон, загрузка государственного удостоверения личности. Для организаций — дополнительно D-U-N-S-номер (бесплатный бизнес-идентификатор Dun &amp; Bradstreet, но получение занимает до 28 рабочих дней)</li><li><b>Limited Distribution (бесплатно)</b> — упрощённая верификация без госдокументов, только email. Ограничение: не более 20 устройств. Запуск в июне 2026</li></ul><p>Для разработчиков, уже верифицированных в Google Play Console, ничего не меняется — Google автоматически зарегистрирует подавляющее большинство существующих приложений.</p><h2>Что происходит с незарегистрированными приложениями</h2><p>С <b>30 сентября 2026</b> года в Бразилии, Индонезии, Сингапуре и Таиланде незарегистрированные приложения будут <b>заблокированы для установки и обновления</b> на сертифицированных Android-устройствах. В 2027 году требование распространится глобально.</p><p>В апреле 2026 на все сертифицированные устройства (Android 7+) через Google Play Services будет установлен системный сервис <b>«Android Developer Verifier»</b> — он и будет проверять регистрацию разработчика при каждой установке.</p><p>Для установки незарегистрированных приложений пользователю нужно пройти <b>«расширенный режим»</b> (advanced flow):</p><ol><li>Включить режим разработчика в настройках</li><li>Подтвердить, что установка добровольная (защита от социальной инженерии)</li><li>Перезагрузить телефон (обрывает потенциальный удалённый доступ)</li><li>Подождать <b>24 часа</b> (обязательный «период охлаждения»)</li><li>Пройти биометрическую аутентификацию</li><li>Установить приложение — с постоянной меткой «от неверифицированного разработчика»</li></ol><p>Установка через ADB (для разработки и тестирования) по-прежнему работает без ограничений.</p><h2>Почему Google это делает</h2><p>Google ссылается на собственное исследование: вредоносное ПО из сайдлоуд-источников <a href="https://android-developers.googleblog.com/2026/03/android-developer-verification-rolling-out-to-all-developers.html">встречается в 90 раз чаще</a>, чем из Google Play. Главная проблема — анонимность: разработчик, пойманный на распространении малвари, может удалить аккаунт и мгновенно зарегистрировать новый. Верификация привязывает дистрибуцию к реальной личности. 24-часовой «период охлаждения» в advanced flow направлен против сценариев социальной инженерии — когда жертву дистанционно вынуждают установить вредоносное приложение под давлением:</p><blockquote>В течение этих 24 часов атакующему становится значительно сложнее удержать жертву. За это время вы, вероятно, выясните, что ваш близкий на самом деле не в тюрьме и что ваш банковский счёт не под угрозой.</blockquote><h2>Почему 62 организации против</h2><p>В феврале 2026 года коалиция из 62 организаций опубликовала <a href="https://keepandroidopen.org/open-letter/">открытое письмо</a> на имя Сундара Пичаи, Ларри Пейджа и Сергея Брина. Среди подписантов:</p><ul><li><a href="https://www.eff.org/">EFF</a> (Electronic Frontier Foundation)</li><li><a href="https://f-droid.org/">F-Droid</a> — крупнейший альтернативный магазин свободного ПО</li><li><a href="https://www.torproject.org/">Tor Project</a></li><li><a href="https://proton.me/">Proton</a> (ProtonMail, ProtonVPN)</li><li><a href="https://kde.org/">KDE</a>, <a href="https://www.gnome.org/">GNOME Foundation</a></li><li><a href="https://lineageos.org/">LineageOS</a>, <a href="https://nextcloud.com/">Nextcloud</a>, <a href="https://vivaldi.com/">Vivaldi</a></li><li><a href="https://www.fsf.org/">FSF</a>, <a href="https://fsfe.org/">FSFE</a>, Software Freedom Conservancy</li><li>Chaos Computer Club, La Quadrature du Net, Privacy Guides</li></ul><h3>Главная претензия: F-Droid под угрозой закрытия</h3><p><a href="https://f-droid.org/">F-Droid</a> — альтернативный магазин приложений, который компилирует программы из открытого исходного кода и подписывает их собственным ключом. По новым правилам F-Droid <b>не может зарегистрировать чужие приложения от своего имени</b> (это означало бы ложное заявление на владение), и <b>не может обязать тысячи волонтёров-разработчиков</b> лично регистрироваться в Google.</p><p>F-Droid <a href="https://f-droid.org/2026/02/24/open-letter-opposing-developer-verification.html">заявил напрямую</a>: если Google реализует программу в текущем виде, это <b>фактически уничтожает проект</b>. Аналогичная проблема у IzzyOnDroid и других репозиториев свободного ПО.</p><h3>Шесть претензий открытого письма</h3><ol><li><b>Гейткипинг за пределами Play</b> — Google становится единственным арбитром, кто может распространять ПО для Android</li><li><b>Барьеры входа</b> — D-U-N-S-номер, госдокументы, $25 — непропорциональная нагрузка на инди-разработчиков</li><li><b>Приватность</b> — централизация данных обо всех разработчиках у Google</li><li><b>Произвольное применение</b> — Google может отозвать верификацию по своему усмотрению</li><li><b>Антиконкурентная разведка</b> — Google получает данные обо всех приложениях конкурирующих экосистем</li><li><b>Регуляторные риски</b> — возможный конфликт с DMA (Digital Markets Act) в ЕС</li></ol><h2>Хронология</h2><ul><li><b>2025</b> — программа анонсирована</li><li><b>30 марта 2026</b> — регистрация открыта для всех разработчиков</li><li><b>Апрель 2026</b> — «Android Developer Verifier» устанавливается на все сертифицированные устройства через Play Services</li><li><b>Июнь 2026</b> — запуск бесплатных Limited Distribution аккаунтов</li><li><b>Август 2026</b> — глобальный запуск advanced flow для пользователей</li><li><b>30 сентября 2026</b> — <b>начало блокировок</b> в Бразилии, Индонезии, Сингапуре и Таиланде</li><li><b>2027</b> — глобальное распространение</li></ul><h2>Что не затронуто</h2><ul><li>Установка через <b>ADB</b> — без ограничений</li><li><b>Корпоративные managed-устройства</b> (Enterprise MDM) — освобождены</li><li><b>Альтернативные AOSP-прошивки</b> (GrapheneOS, LineageOS, /e/OS) — не затронуты (нет Play Services)</li><li><b>Разработка и тестирование</b> — не требует регистрации</li></ul><h2>Выводы</h2><p>Android Developer Verification — самое значительное ограничение открытости Android за всю историю платформы. Google аргументирует его борьбой с малварью (90x чаще из сайдлоуда), но критики указывают: программа превращает Android в подобие iOS, где единственный арбитр дистрибуции — владелец платформы.</p><p>Для разработчиков, публикующихся через Google Play, ничего не меняется. Для тех, кто распространяет приложения за его пределами — F-Droid, прямые APK, корпоративные решения — начинается обратный отсчёт до 30 сентября 2026.</p>]]></content:encoded>
    </item>
    <item>
      <title>Разработчик декомпилировал приложение Белого дома — нашёл обход пейволлов, GPS-трекинг и JS с чужого GitHub</title>
      <link>https://tproger.ru/news/razrabotchik-dekompiliroval-prilozhenie-belogo-doma---nawyol-obhod-</link>
      <comments>https://tproger.ru/news/razrabotchik-dekompiliroval-prilozhenie-belogo-doma---nawyol-obhod-?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Алексей Михайлишин]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/razrabotchik-dekompiliroval-prilozhenie-belogo-doma---nawyol-obhod-</guid>
      <description><![CDATA[<p>Разработчик декомпилировал приложение Белого дома: GPS-трекинг, обход GDPR-баннеров и пейволлов, загрузка JS с GitHub Pages. Полный технический разбор находок.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/razrabotchik-dekompiliroval-prilozhenie-belogo-doma---nawyol-obhod-">Разработчик декомпилировал приложение Белого дома — нашёл обход пейволлов, GPS-трекинг и JS с чужого GitHub</a>»</p>]]></description>
      <category><![CDATA[Android]]></category>
      <category><![CDATA[Мобильная разработка]]></category>
      <category><![CDATA[Безопасность]]></category>
      <category><![CDATA[Информационная безопасность]]></category>
      <category><![CDATA[Уязвимость]]></category>
      <category><![CDATA[Персональные данные]]></category>
      <category><![CDATA[Кибербезопасность]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Sun, 29 Mar 2026 04:30:18 GMT</pubDate>
      <content:encoded><![CDATA[<p>Если вы думаете, что официальное приложение правительства США — это образец безопасности и приватности, у разработчика <a href="https://blog.thereallo.dev/blog/decompiling-the-white-house-app">thereallo.dev</a> есть для вас неприятные новости. Он декомпилировал Android-приложение Белого дома и нашёл инжектор обхода пейволлов, GPS-трекинг каждые 4,5 минуты и загрузку JavaScript с чьего-то персонального GitHub Pages.</p><p>Приложение <b>White House</b> (gov.whitehouse.app, версия 47.0.1) — официальный Android-клиент Белого дома, доступный в <a href="https://play.google.com/store/apps/details?id=gov.whitehouse.app">Google Play</a>. Под капотом — React Native на Expo SDK 54 с движком Hermes. Бэкенд — WordPress, который отдаёт контент через REST API на whitehouse.gov.</p><p>— Приложение содержит JavaScript-инжектор, который скрывает cookie-баннеры, GDPR-диалоги, пейволлы и логин-стены на любых сайтах, открытых через встроенный браузер</p><p>— В коде заложена инфраструктура GPS-трекинга через OneSignal: опрос координат каждые 4,5 минуты при активном использовании и каждые 9,5 минут в фоне</p><p>— YouTube-плеер загружает HTML-страницу с GitHub Pages мейнтейнера сторонней библиотеки — компрометация аккаунта позволит выполнить произвольный код</p><p>— В продакшен-сборке остались артефакты разработки: URL localhost, IP разработчика и экспортированная Activity</p><h2>Что из себя представляет приложение</h2><p>Приложение Белого дома — по сути, обёртка над WordPress. Весь контент загружается через REST API с эндпоинтами вида /wp-json/whitehouse/v1/*. Вот основные разделы:</p><ul><li>/home — главный экран</li><li>/news/articles — новости</li><li>/wire — лента «The Wire»</li><li>/live — прямые трансляции</li><li>/galleries — фотогалереи</li><li>/issues и /priorities — политические приоритеты</li><li>/achievements — «достижения»</li><li>/media-bias — раздел «предвзятость СМИ»</li><li>/social/x — прокси ленты X/Twitter</li></ul><p>Среди контента — разделы «THE TRUMP EFFECT», «Greatest President Ever!», «Text President Trump» (с номером 45470) и ссылки на TrumpRx.gov, TrumpAccounts.gov, а также форма доноса ICE. Конфиг Expo указывает владельца forty-five-press — судя по всему, это медиа-команда, а не государственное агентство.</p><h2>Инжектор обхода cookie-баннеров и пейволлов</h2><p>Самая неожиданная находка — JavaScript-код, который <b>инжектируется в каждый сайт</b>, открытый через встроенный WebView приложения. Пейволл (paywall) — это платная стена, блокирующая доступ к контенту для неподписчиков. Скрипт использует механизм injectedJavaScript в React Native WebView.</p><p>Что именно скрывает инжектор:</p><ul><li>Cookie-баннеры (по CSS-селекторам *cookie*, *Cookie*)</li><li>GDPR-диалоги согласия (*consent*, *gdpr*, *GDPR*)</li><li>Баннеры OneTrust (*onetrust*)</li><li>Баннеры приватности (*privacy-banner*)</li><li>Логин-стены (*login-wall*, *loginWall*)</li><li>Стены регистрации (*signup-wall*, *signupWall*)</li><li>Апсейл-блоки (*upsell*, *Upsell*)</li><li>CMP-боксы (.cmpboxBtnYes, .cmpbox)</li><li>Любые элементы с aria-label, содержащим «cookie» или «consent»</li></ul><p>Скрипт работает в два этапа. Сначала создаёт CSS-правило display: none !important для всех элементов, соответствующих селекторам. Затем устанавливает MutationObserver, который отслеживает любые изменения DOM и скрывает новые элементы с соответствующими классами. Дополнительно принудительно снимает блокировку прокрутки: body { overflow: auto !important }.</p><p>По сути, приложение Белого дома <b>обходит GDPR-требования и пейволлы</b> на сторонних сайтах. Для государственного приложения это, мягко говоря, неожиданно.</p><h2>Инфраструктура GPS-трекинга</h2><p>В конфиге Expo есть плагин withNoLocation, который, казалось бы, отключает геолокацию. Однако в скомпилированном коде присутствует полноценная инфраструктура трекинга через <b>OneSignal SDK</b>.</p><h3>Константы опроса координат</h3><p>В классе LocationConstants жёстко заданы интервалы опроса:</p><ul><li>FOREGROUND_UPDATE_TIME_MS = 270000 — <b>4,5 минуты</b> при активном использовании</li><li>BACKGROUND_UPDATE_TIME_MS = 570000 — <b>9,5 минут</b> в фоне</li><li>TIME_FOREGROUND_SEC = 300 — 5-минутный порог для переднего плана</li><li>TIME_BACKGROUND_SEC = 600 — 10-минутный порог для фона</li></ul><h3>Как работает трекинг</h3><p>Класс GmsLocationController использует Google Fused Location API. При каждом опросе запрашивает координаты с приоритетом PRIORITY_BALANCED_POWER_ACCURACY (код 102) и устанавливает maxWaitTime в полтора раза больше интервала.</p><p>Перехваченные координаты обрабатывает LocationCapturer: широта, долгота, точность, временная метка, флаг фоновой работы и тип (грубый/точный). Всё сохраняется в PropertiesModel и отправляется на серверы OneSignal (api.onesignal.com).</p><p>Есть и фоновый сервис LocationBackgroundService, который продолжает собирать координаты даже когда приложение свёрнуто.</p><h3>Защита — есть, но условная</h3><p>Формально GPS-трекинг защищён гейтом: флаг _isShared по умолчанию false. Трекинг активируется только после вызова setLocationShared(true). Плагин withNoLocation по идее не должен его включать. Но вся инфраструктура скомпилирована в приложение. Поскольку трекинг реализован в нативном коде (Java), простое OTA-обновление JavaScript-бандла его не активирует. Однако если в приложении есть bridge-вызов к setLocationShared из JS — достаточно серверного конфига для включения без обновления через Google Play.</p><h2>Риски цепочки поставок</h2><h3>JavaScript с чужого GitHub Pages</h3><p>Для YouTube-плеера используется библиотека react-native-youtube-iframe, которая загружает HTML-страницу с GitHub Pages пользователя <b>lonelycpp</b> — мейнтейнера этой библиотеки:</p><p>Если аккаунт lonelycpp на GitHub будет скомпрометирован, злоумышленник сможет подменить эту страницу и <b>выполнить произвольный JavaScript</b> в WebView приложения Белого дома. Это классическая supply-chain атака (атака через цепочку поставок — компрометация стороннего компонента для проникновения в целевую систему). Хостинг ресурсов на GitHub Pages вместо CDN с <a href="https://developer.mozilla.org/en-US/docs/Web/Security/Subresource_Integrity">Subresource Integrity</a> — плохая практика для любого приложения, тем более государственного.</p><h3>Виджеты Elfsight</h3><p>Приложение загружает JavaScript-платформу Elfsight с CDN:</p><p>Elfsight — это виджет-платформа для социальных сетей. Никакой песочницы — скрипт исполняется в том же контексте, что и основное приложение.</p><h3>Сторонние сервисы вместо госинфраструктуры</h3><p>Ни один из сторонних сервисов не является государственной инфраструктурой:</p><ul><li><b>Mailchimp</b> (whitehouse.us10.list-manage.com) — обработка email-подписок. Адреса пользователей уходят на серверы Mailchimp</li><li><b>Uploadcare</b> (ucarecdn.com) — хостинг контентных изображений через 6 захардкоженных UUID</li><li><b>Truth Social</b> — захардкоженный embed с профилем Трампа, аватаркой со static-assets-1.truthsocial.com и кнопкой «Follow»</li><li><b>Facebook</b> — плагин страницы через iframe facebook.com/plugins/page.php</li></ul><h2>Профилирование пользователей через OneSignal</h2><p><a href="https://documentation.onesignal.com/docs">OneSignal</a> SDK в приложении — это не просто пуш-уведомления. Платформа предоставляет широкие возможности для профилирования пользователей:</p><ul><li>addTag — тегирование пользователей для сегментации</li><li>addSms — привязка номеров телефонов к профилям</li><li>addAliases — кросс-девайсная идентификация пользователей</li><li>addOutcomeWithValue / addUniqueOutcome — отслеживание действий и конверсий</li><li>Полный цикл in-app сообщений: WillDisplay, DidDisplay, WillDismiss, DidDismiss, inAppMessageClicked</li><li>Отслеживание изменений состояния: подписки, разрешения, пользовательский профиль</li></ul><p>Локальная SQLite-база хранит таблицы notification (с полями notification_id, opened, dismissed, title, message, full_data) и in_app_message (с отслеживанием показов и кликов).</p><h2>Артефакты разработки в продакшен-сборке</h2><p>В релизной версии приложения остались следы, которых там быть не должно:</p><ul><li>URL http://localhost:8081/wp-json/whitehouse/v1/galleries?page= — захардкоженный адрес локального дев-сервера</li><li>IP-адрес разработчика 10.4.4.109 — прописан в strings.xml как react_native_dev_server_ip</li><li>Пакеты expo-dev-client, expo-devlauncher, expo-devmenu — средства разработки Expo</li><li>Иконка дев-меню dev_menu_fab_icon.png</li><li>Экспортированная PreviewActivity из Compose UI Tooling — <b>доступна другим приложениям</b> через android:exported="true"</li></ul><p>Экспортированная Activity — это потенциальный вектор атаки. Любое приложение на устройстве может запустить PreviewActivity через Intent.</p><h2>Отсутствие certificate pinning</h2><p>Certificate pinning (закрепление сертификата) — это метод защиты от атак «человек посередине» (MITM), при котором приложение принимает только заранее известные сертификаты сервера. Приложение Белого дома использует стандартный Android Trust Manager <b>без закрепления сертификатов</b>. Это означает, что при использовании скомпрометированного Wi-Fi или корпоративного прокси трафик между приложением и серверами whitehouse.gov может быть перехвачен и прочитан.</p><h2>Разрешения и файловый доступ</h2><p>Манифест запрашивает следующие разрешения:</p><ul><li>INTERNET — доступ к сети</li><li>VIBRATE — вибрация</li><li>ACCESS_NETWORK_STATE — состояние сети</li><li>POST_NOTIFICATIONS — отправка уведомлений</li><li>WAKE_LOCK — предотвращение засыпания</li><li>RECEIVE_BOOT_COMPLETED — автозапуск при загрузке</li><li>C2DM.RECEIVE — облачные пуш-уведомления</li><li>CHECK_LICENSE — проверка лицензии Google Play</li></ul><p>Конфигурация FileProvider описывает путь external-path name="shared" path="." — приложение может <b>предоставлять любые файлы из внешнего хранилища</b> другим приложениям через FileProvider. Это не означает чтение чужих данных, но расширяет поверхность атаки при взаимодействии между приложениями.</p><h2>Полный стек зависимостей</h2><p>Список SDK внутри приложения впечатляет:</p><ul><li><b>Фреймворк:</b> React Native, Expo SDK 54, Hermes JS engine</li><li><b>Пуш/вовлечение:</b> OneSignal, Firebase Cloud Messaging, Firebase Installations</li><li><b>Аналитика:</b> Firebase Analytics, Google Data Transport, OpenTelemetry</li><li><b>Сеть:</b> OkHttp 3, Apollo GraphQL, Okio</li><li><b>Изображения:</b> Fresco, Glide, Coil 3, Uploadcare CDN</li><li><b>Видео:</b> ExoPlayer (Media3), Expo Video</li><li><b>ML:</b> Google ML Kit Vision (сканирование штрих-кодов), модель Barhopper</li><li><b>Криптография:</b> Bouncy Castle</li><li><b>Хранилище:</b> Expo Secure Store, React Native Async Storage</li><li><b>WebView:</b> React Native WebView (с инжектором)</li><li><b>DI:</b> Koin</li><li><b>Сериализация:</b> GSON, Wire (Protocol Buffers)</li><li><b>Лицензия:</b> PairIP license check (Google Play Verification)</li></ul><h2>Что делать пользователям</h2><ol><li>Не открывать ссылки через встроенный браузер приложения — копировать URL и открывать в Chrome/Firefox, где cookie-баннеры отображаются корректно</li><li>Проверить разрешения приложения в настройках Android: Настройки → Приложения → White House → Разрешения — убедиться, что геолокация отключена</li><li>Учитывать, что RECEIVE_BOOT_COMPLETED запускает сервисы приложения при каждой загрузке устройства — даже если вы не открывали приложение</li><li>Для параноиков: использовать отдельный рабочий профиль Android (Настройки → Система → Несколько пользователей) для изоляции</li></ol><h2>Чеклист для разработчиков: что не должно попадать в прод</h2><p>Этот случай — хороший повод проверить собственные приложения. Вот что стоит убрать перед релизом:</p><ol><li>URL localhost и IP-адреса разработчиков — искать в strings.xml, конфигах и коде</li><li>Дев-пакеты (expo-dev-client, devmenu) — исключать из релизных сборок через build flavors</li><li>Экспортированные Activity для отладки — убирать android:exported="true" у дев-компонентов</li><li>Внешние JS-зависимости без SRI — хостить критичные ресурсы на собственном CDN</li><li>Избыточные SDK-модули — если не используете геолокацию, исключить модуль из сборки, а не просто «отключить» флагом</li><li>Широкие пути в FileProvider — ограничивать до конкретных директорий вместо path="."</li><li>Certificate pinning — добавить для всех критичных эндпоинтов через network_security_config.xml</li></ol><h2>Выводы</h2><blockquote>Приложение Белого дома — это React Native обёртка над WordPress с инжектором обхода cookie и пейволлов, инфраструктурой GPS-трекинга через OneSignal и JavaScript-зависимостями с GitHub Pages стороннего разработчика. Без certificate pinning.</blockquote><p>Этот разбор показывает, что даже государственные приложения могут содержать сомнительные практики: от обхода GDPR-баннеров до supply-chain зависимостей от случайных разработчиков. Полная инфраструктура GPS-трекинга, встроенная в код, но формально «отключённая» — это бомба замедленного действия, которая может быть активирована без обновления приложения.</p><p>Оригинальный анализ доступен в <a href="https://blog.thereallo.dev/blog/decompiling-the-white-house-app">блоге thereallo.dev</a>.</p><p>А вы проверяли, какие разрешения у государственных приложений на вашем телефоне?</p>]]></content:encoded>
    </item>
    <item>
      <title>Android 17 Beta 1 вышла с новыми API камеры и изменениями интерфейса</title>
      <link>https://tproger.ru/news/android-17-beta-1-vywla-s-novymi-api-kamery-i-izmeneniyami-interf</link>
      <comments>https://tproger.ru/news/android-17-beta-1-vywla-s-novymi-api-kamery-i-izmeneniyami-interf?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Булат Яббаров]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/android-17-beta-1-vywla-s-novymi-api-kamery-i-izmeneniyami-interf</guid>
      <description><![CDATA[<p>Android 17 Beta 1 вышла для Pixel: новые API камеры, обязательная адаптивность интерфейсов и постепенные изменения дизайна</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/android-17-beta-1-vywla-s-novymi-api-kamery-i-izmeneniyami-interf">Android 17 Beta 1 вышла с новыми API камеры и изменениями интерфейса</a>»</p>]]></description>
      <category><![CDATA[API]]></category>
      <category><![CDATA[Android]]></category>
      <category><![CDATA[Производительность]]></category>
      <category><![CDATA[Google]]></category>
      <category><![CDATA[Дизайн интерфейсов и UX]]></category>
      <category><![CDATA[Бета]]></category>
      <category><![CDATA[Дизайн]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Fri, 13 Feb 2026 17:20:07 GMT</pubDate>
      <content:encoded><![CDATA[<p>Google <a href="https://www.androidauthority.com/android-17-beta-1-delayed-rollout-3640969/">запустила</a> первую бета-версию Android 17 для устройств Pixel.</p><p>Релиз немного задержался — компания в последний момент отложила старт тестирования, пообещав, что обновление выйдет «скоро». В итоге пауза продлилась всего несколько дней.</p><p>Бета уже распространяется «по воздуху» для участников Android Beta Program. Владельцы актуальных Pixel получат обновление автоматически.</p><h2>Обязательная адаптивность и доработанная камера</h2><p>Одно из ключевых изменений — обязательная поддержка адаптивных интерфейсов для приложений, ориентированных на Android 17.</p><p>Разработчикам придется корректно обрабатывать разные размеры экранов и форм-факторы, включая складные устройства и планшеты. Формально это не то чтобы революция. Но теперь за игнорирование адаптивности можно будет заплатить совместимостью.</p><p>Вторая важная новинка — обновленные API камеры. Они должны устранить рывки и пропуски кадров при переключении режимов съемки. Это как раз та категория проблем, которую достаточно сложно показать на презентации, но которая напрямую влияет на пользовательский опыт.</p><p>Также в системе появились визуальные правки интерфейса. Google продолжает постепенно дорабатывать дизайн, не меняя радикально общую концепцию.</p><figure><img src="https://media.tproger.ru/user-uploads/111041/2026-02-13/c690325a-75d9-41e1-aa65-c96b3d7425e6.webp" alt="" /></figure><h2>Как установить и когда ждать релиз</h2><p>Участники программы тестирования получат Android 17 Beta 1 автоматически. Тем, кто не хочет устанавливать бета-версию, нужно выйти из программы и дождаться стабильной сборки.</p><p>Финальный релиз Android 17 ожидается во II квартале 2026 года. Судя по первой бете, Google делает ставку не на громкие функции, а на стабильность, производительность и требования к качеству приложений.</p><p>Для экосистемы это может оказаться важнее любой эффектной анимации.</p>]]></content:encoded>
    </item>
    <item>
      <title>Google анонсировала скорый старт тестирования Android 17. Какие устройства получат его первыми</title>
      <link>https://tproger.ru/news/google-anonsirovala-skoryj-start-testirovaniya-android-17--kakie-</link>
      <comments>https://tproger.ru/news/google-anonsirovala-skoryj-start-testirovaniya-android-17--kakie-?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Булат Яббаров]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/google-anonsirovala-skoryj-start-testirovaniya-android-17--kakie-</guid>
      <description><![CDATA[<p>Google готовит Android 17 Beta 1: первыми обновление получат смартфоны Pixel, стабильный релиз ожидается во II квартале 2026 года</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/google-anonsirovala-skoryj-start-testirovaniya-android-17--kakie-">Google анонсировала скорый старт тестирования Android 17. Какие устройства получат его первыми</a>»</p>]]></description>
      <category><![CDATA[Android]]></category>
      <category><![CDATA[Google]]></category>
      <category><![CDATA[Бета]]></category>
      <category><![CDATA[Смартфоны]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Wed, 11 Feb 2026 08:37:32 GMT</pubDate>
      <content:encoded><![CDATA[<p>Google подтвердила: первая бета-версия <b>Android 17</b> выйдет «уже скоро».</p><p>Об этом компания <a href="https://www.reddit.com/r/android_beta/comments/1r1fzhu/android_17_beta_1_around_the_corner/" rel="nofollow">сообщила</a> в соответствующем Reddit-треде, параллельно выкатив обновление <b>Android 16 QPR3 Beta 2.1 </b>для совместимых устройств.</p><p>Пока деталей немного — <b>Android 17 Beta 1</b> сосредоточится на исправлении багов, повышении производительности и общей стабильности системы. Но сам факт анонса означает, что цикл тестирования стартует по привычному для Google графику.</p><h2>Кто получит Android 17 первым</h2><p>Традиционно первыми доступ к новым версиям Android получают смартфоны линейки Google Pixel. Обновление автоматически придёт пользователям, уже зарегистрированным в программе Android Beta.</p><p>С высокой вероятностью Android 17 Beta 1 станет доступен для следующих моделей:</p><ul><li>Pixel 9 / 9 Pro / 9 Pro Fold / 9a;</li><li>Pixel 8 / 8 Pro / 8a;</li><li>Pixel 7 / 7 Pro / 7a;</li><li>Pixel Fold.</li></ul><p>Официальный список Google пока не опубликовала, но именно эти устройства сейчас участвуют в бета-программе Android 16.</p><p>Внутреннее кодовое имя Android 17 — Cinnamon Bun. Google продолжает гастрономическую традицию, хотя публично названия десертов больше не использует.</p><h2>Как выйти из беты без потери данных</h2><p>Если вы участвуете в программе Android Beta, Android 17 Beta 1 установится автоматически. Тем, кто не хочет переходить на новую ветку тестирования, нужно:</p><ol><li>Выйти из программы бета-тестирования сейчас.</li><li>Проигнорировать уведомление об обновлении с пометкой Downgrade.</li><li>Дождаться стабильной версии Android 16 QPR3.</li></ol><p>Если же установить Android 17 Beta и потом передумать, вернуться без полного сброса устройства не получится до окончания бета-цикла — ориентировочно до июня 2026 года.</p><h2>Когда выйдет стабильная версия</h2><p>Ожидается, что финальный релиз Android 17 состоится во II квартале 2026 года. Google обещает улучшения производительности, новые игровые функции и системные доработки.</p>]]></content:encoded>
    </item>
    <item>
      <title>*WhatsApp переписал медиадвижок на Rust и выкинул 160 тысяч строк C++</title>
      <link>https://tproger.ru/news/-whatsapp-perepisal-mediadvizhok-na-rust-i-vykinul-160-tysyach-stro</link>
      <comments>https://tproger.ru/news/-whatsapp-perepisal-mediadvizhok-na-rust-i-vykinul-160-tysyach-stro?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Булат Яббаров]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/-whatsapp-perepisal-mediadvizhok-na-rust-i-vykinul-160-tysyach-stro</guid>
      <description><![CDATA[<p>*WhatsApp переписал медиадвижок на Rust, убрав 160 тыс строк C++, чтобы снизить уязвимости и повысить безопасность медиа</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/-whatsapp-perepisal-mediadvizhok-na-rust-i-vykinul-160-tysyach-stro">*WhatsApp переписал медиадвижок на Rust и выкинул 160 тысяч строк C++</a>»</p>]]></description>
      <category><![CDATA[C++]]></category>
      <category><![CDATA[Android]]></category>
      <category><![CDATA[Производительность]]></category>
      <category><![CDATA[iOS]]></category>
      <category><![CDATA[Rust]]></category>
      <category><![CDATA[Мессенджер]]></category>
      <category><![CDATA[Библиотеки]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Thu, 29 Jan 2026 02:14:21 GMT</pubDate>
      <content:encoded><![CDATA[<p>*Meta тихо <a href="https://engineering.fb.com/2026/01/27/security/rust-at-scale-security-whatsapp/">провернула</a> одну из самых крупных миграций на Rust в пользовательском софте.</p><p>*WhatsApp заменил более 160 000 строк C++-кода на Rust в критически важной части приложения — обработке медиафайлов. Новый код уже развернут на миллиардах устройств: от Android и iOS до веба, десктопа и носимых гаджетов.</p><p>Цель проста и прагматична: снизить класс уязвимостей, которые годами преследуют мессенджеры — ошибки управления памятью.</p><h2>Откуда вообще взялась проблема</h2><p>История тянется с 2015 года и уязвимости Stagefright в Android. Тогда выяснилось неприятное: достаточно отправить специально собранный видеофайл и он выполнит код на устройстве жертвы еще до того, как пользователь что-то нажмет.</p><p>Проблема была в системных медиабиблиотеках операционной системы. Именно поэтому приложения вроде *WhatsApp не могли решить ее самостоятельно.</p><p>После этого в *WhatsApp появился собственный C++-модуль wamedia, который проверял медиафайлы на соответствие стандартам, чтобы не скормить ОС заведомо опасный контент.</p><p>Все это работало, но с оговоркой: код автоматически обрабатывал недоверенные данные, а значит сам становился идеальной мишенью для эксплойтов.</p><h2>Почему именно Rust</h2><p>В *WhatsApp довольно рано сделали неприятный, но честный вывод: значительная часть критических багов связаны с банальными ошибками работы с памятью в C и C++. Rust эту категорию проблем убирает на уровне языка.</p><p>Вместо аккуратного «подкручивания гаек», разработчики пошли чуть более радикальным путем: переписали медиабиблиотеку целиком, параллельно поддерживая две реализации — на C++ и на Rust.</p><p>Их прогоняли через дифференциальный фаззинг, тесты и сравнение поведения, пока результаты не совпали.</p><figure><img src="https://media.tproger.ru/user-uploads/111041/2026-01-29/fdbeec47-e345-4933-b0d8-8ba73ae9944a.webp" alt="" /></figure><h2>Что получилось на выходе</h2><p>Итог оказался даже лучше ожидаемого. 160 000 строк на C++ превратились примерно в 90 000 строк на Rust. И это уже с тестами.</p><p>Производительность не просела, а потребление памяти в ряде сценариев даже снизилось. Основные сложности были не в коде, а вокруг него: размер бинарников из-за стандартной библиотеки Rust и сборка под десятки платформ.</p><p>Тем не менее, библиотеку полностью выкатили в прод. Сейчас этот Rust-код ежемесячно доставляется на миллиарды устройств, включая *WhatsApp, *Messenger и *Instagram.</p><p>В *Meta прямо называют это крупнейшим клиентским деплоем Rust, о котором им известно.</p><h2>Зачем это пользователю, который «просто шлет мемы»</h2><p>Новая система, внутри компании получившая имя Kaleidoscope, проверяет файлы еще до того, как ими займутся системные библиотеки.</p><p>Она отсекает битые и нестандартные структуры, ловит подмену типов (когда «картинка» на деле исполняемый файл), отдельно помечает рискованные форматы вроде PDF со скриптами и вложениями.</p><p>По сути, это еще один слой защиты. Пользователь его не видит, но это и не нужно.</p>]]></content:encoded>
    </item>
    <item>
      <title>Google публично раскрыла уязвимость в *WhatsApp — *Meta не уложилась в срок с патчем</title>
      <link>https://tproger.ru/news/google-publichno-raskryla-uyazvimost-v--whatsapp----meta-ne-ulozhi</link>
      <comments>https://tproger.ru/news/google-publichno-raskryla-uyazvimost-v--whatsapp----meta-ne-ulozhi?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Булат Яббаров]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/google-publichno-raskryla-uyazvimost-v--whatsapp----meta-ne-ulozhi</guid>
      <description><![CDATA[<p>Google раскрыла уязвимость в WhatsApp на Android после срыва дедлайна Meta: атака без кликов через автозагрузку медиа</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/google-publichno-raskryla-uyazvimost-v--whatsapp----meta-ne-ulozhi">Google публично раскрыла уязвимость в *WhatsApp — *Meta не уложилась в срок с патчем</a>»</p>]]></description>
      <category><![CDATA[Android]]></category>
      <category><![CDATA[Google]]></category>
      <category><![CDATA[iOS]]></category>
      <category><![CDATA[Мессенджер]]></category>
      <category><![CDATA[Уязвимость]]></category>
      <category><![CDATA[Сервер]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Tue, 27 Jan 2026 06:54:30 GMT</pubDate>
      <content:encoded><![CDATA[<p>Команда <b>Google Project Zero</b> публично <a href="https://www.neowin.net/news/whatsapp-has-a-big-security-issue-and-google-has-exposed-it/" rel="nofollow">раскрыла</a> <b>уязвимость в Android-версии *WhatsApp</b> после того, как *Meta не уложилась в <b>стандартный 90-дневный срок</b> на выпуск исправления.</p><p>Речь идет о баге, который позволяет атаковать пользователя без его участия — достаточно добавить его в специально подготовленный групповой чат.</p><p>Уязвимость затрагивает <b>механизм автоматической загрузки медиафайлов</b> в *WhatsApp-группах. В худшем сценарии злоумышленнику не нужно отправлять ссылки или заставлять жертву что-то открывать: вредоносный файл загружается на устройство сам.</p><h2>Как работает атака</h2><p>По описанию исследователя Project Zero Брендона Тишки, атака начинается с создания группы *WhatsApp.</p><p>В нее добавляют жертву и одного из ее контактов, после чего контакт назначают администратором. Затем в чат отправляется специально сформированный медиафайл.</p><p>Если у пользователя включена автозагрузка медиа, файл автоматически сохраняется в системную базу MediaStore. Дальше все зависит от содержимого файла: при наличии дополнительного эксплойта он может попытаться выйти за пределы песочницы и выполнить произвольный код.</p><p>Ключевая особенность уязвимости — отсутствие взаимодействия с пользователем. Жертве не нужно нажимать на вложение или даже открывать чат.</p><h2>Почему Google раскрыла баг публично</h2><p>Project Zero уведомила *Meta о проблеме 1 сентября 2025 года. По правилам программы, у компании было 90 дней на выпуск исправления. К 30 ноября полноценного патча не появилось, и Google опубликовала детали уязвимости.</p><p>Позже *Meta внедрила частичное серверное ограничение, которое снижает риск эксплуатации, но не устраняет саму проблему. Полноценного клиентского патча на момент публикации все еще нет.</p><p>Именно из-за этого Google решила не продлевать дедлайн и раскрыть информацию публично.</p><h2>Кто под угрозой и что делать пользователям</h2><p>Уязвимость касается только *WhatsApp на Android. О версиях для iOS и других платформ Project Zero не сообщает.</p><p>Чтобы снизить риск, Google рекомендует:</p><ul><li>включить расширенную приватность чатов в группах;</li><li>отключить автоматическую загрузку медиафайлов;</li><li>внимательнее относиться к неожиданным добавлениям в групповые чаты.</li></ul><p>При этом исследователи отмечают, что в некоторых сценариях пользователь может быть добавлен в группу и атакован еще до изменения настроек.</p><p><i>*Компания Meta и ее продукты признаны экстремистскими, их деятельность запрещена на территории РФ</i></p>]]></content:encoded>
    </item>
    <item>
      <title>В Android-троянах начали использовать ИИ для обхода защиты и «умного» кликфрода</title>
      <link>https://tproger.ru/news/v-android-troyanah-nachali-ispolzovat-ii-dlya-obhoda-zashhity-i--um</link>
      <comments>https://tproger.ru/news/v-android-troyanah-nachali-ispolzovat-ii-dlya-obhoda-zashhity-i--um?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Булат Яббаров]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/v-android-troyanah-nachali-ispolzovat-ii-dlya-obhoda-zashhity-i--um</guid>
      <description><![CDATA[<p>В Android-троянах начали использовать ИИ для кликфрода и обхода защиты: вредоносные приложения анализируют интерфейсы почти как человек</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/v-android-troyanah-nachali-ispolzovat-ii-dlya-obhoda-zashhity-i--um">В Android-троянах начали использовать ИИ для обхода защиты и «умного» кликфрода</a>»</p>]]></description>
      <category><![CDATA[JavaScript]]></category>
      <category><![CDATA[Android]]></category>
      <category><![CDATA[Инструменты]]></category>
      <category><![CDATA[Машинное обучение]]></category>
      <category><![CDATA[Google]]></category>
      <category><![CDATA[Искусственный интеллект]]></category>
      <category><![CDATA[Хакеры]]></category>
      <category><![CDATA[Spotify]]></category>
      <category><![CDATA[Xiaomi]]></category>
      <category><![CDATA[WebRTC]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Fri, 23 Jan 2026 02:36:56 GMT</pubDate>
      <content:encoded><![CDATA[<p>Мобильные трояны сделали очередной шаг вперед: вместо примитивных скриптов они начали использовать <b>машинное обучение</b> для анализа интерфейсов и взаимодействия с рекламой почти как человек.</p><p>Новую волну вредоносных Android-приложений <a href="https://forum.drweb.com/index.php?showtopic=339666#entry923156">обнаружили</a> специалисты <b>Dr.Web</b>.</p><h2>Как работают «умные» трояны</h2><p>В основе новой схемы — <b>TensorFlow.js</b>. Это open-source библиотека от <b>Google</b>, которая позволяет запускать модели машинного обучения прямо в JavaScript. Вместо заранее заданных правил, троян анализирует изображение экрана и сам определяет, куда «нажать».</p><p>Сценарий выглядит так:</p><ul><li>троян загружает обученную ML-модель с удаленного сервера;</li><li>открывает сайт с рекламой во встроенном скрытом WebView;</li><li>делает скриншоты виртуального экрана;</li><li>модель распознает нужные элементы (кнопки, видео, баннеры);</li><li>вредоносное ПО имитирует реальные действия пользователя.</li></ul><p>За счет визуального анализа, троян лучше адаптируется к современным рекламным форматам: динамической верстке, iframe, видео и постоянно меняющимся шаблонам.</p><h2>Два режима работы: автономный и ручной</h2><p>По данным Dr.Web, трояны используют сразу два режима.</p><p><b>Phantom-режим.</b> Это полностью автоматический вариант, когда вредоносный код работает в фоне. Пользователь ничего не видит, а клики по рекламе выглядят максимально естественно.</p><p><b>Signalling-режим.</b> Это уже более опасный вариант, при котором через WebRTC троян транслирует экран виртуального браузера операторам атаки. Злоумышленники могут в реальном времени нажимать, скроллить и вводить текст, управляя устройством удаленно.</p><h2>Где распространяется вредоносное ПО</h2><p>Часть зараженных приложений попала даже в <b>Xiaomi GetApps</b> — официальный магазин приложений компании. Схема классическая: сначала на площадку загружается «чистая» игра, а вредоносный функционал появляется позже, через обновление.</p><p>Среди выявленных приложений — мобильные игры с десятками тысяч установок. Параллельно трояны активно распространяются через сторонние APK-сайты и «моды» популярных сервисов вроде Spotify и YouTube, а также через Telegram-каналы и Discord-серверы.</p><figure><img src="https://media.tproger.ru/user-uploads/111041/2026-01-23/36cb2110-ac67-4ad8-9f54-10b6fe4c4362.webp" alt="" /></figure><h2>Почему это опаснее обычного кликфрода</h2><p>Формально такие трояны не крадут пароли и не вытаскивают личные данные. Но их скрытность делает их особенно неприятными:</p><ul><li>пользователь не видит подозрительных действий;</li><li>ускоряется разряд батареи и износ устройства;</li><li>растет расход мобильного трафика;</li><li>рекламные системы получают фейковую «человеческую» активность, которую сложнее отфильтровать.</li></ul><p>Главное же — это сигнал: ИИ все чаще используют не только для защиты, но и для атак. Вредоносное ПО постепенно перенимает те же инструменты, что и легальные разработчики.</p><h2>Что делать пользователям</h2><p>Рекомендации остаются простыми и банальными, но от этого не менее важными:</p><ul><li>не устанавливать APK из сторонних источников;</li><li>избегать модов и бесплатных премиум-версий приложений;</li><li>внимательно относиться даже к альтернативным официальным магазинам;</li><li>регулярно обновлять систему и защитное ПО.</li></ul>]]></content:encoded>
    </item>
    <item>
      <title>OpenAI без лишнего шума запустила онлайн-переводчик ChatGPT Translate</title>
      <link>https://tproger.ru/news/openai-bez-liwnego-wuma-zapustila-onlajn-perevodchik-chatgpt-translate</link>
      <comments>https://tproger.ru/news/openai-bez-liwnego-wuma-zapustila-onlajn-perevodchik-chatgpt-translate?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Булат Яббаров]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/openai-bez-liwnego-wuma-zapustila-onlajn-perevodchik-chatgpt-translate</guid>
      <description><![CDATA[<p>OpenAI запустила ChatGPT Translate — онлайн-переводчик без подписки, с контекстным переводом, изображениями и ИИ-голосом</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/openai-bez-liwnego-wuma-zapustila-onlajn-perevodchik-chatgpt-translate">OpenAI без лишнего шума запустила онлайн-переводчик ChatGPT Translate</a>»</p>]]></description>
      <category><![CDATA[Android]]></category>
      <category><![CDATA[Google]]></category>
      <category><![CDATA[Искусственный интеллект]]></category>
      <category><![CDATA[iOS]]></category>
      <category><![CDATA[OpenAI]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Thu, 15 Jan 2026 08:46:35 GMT</pubDate>
      <content:encoded><![CDATA[<p>OpenAI тихо расширила линейку своих сервисов, запустив веб-переводчик <b>ChatGPT Translate</b>. Без пресс-релизов и сценических демо.</p><p>Компания просто дала доступ к сервису всем желающим по адресу <a href="http://chatgpt.com/translate">chatgpt.com/translate</a>. Причем доступен он буквально всем — даже тем, у кого нет платной подписки.</p><p>По интерфейсу ChatGPT Translate сильно напоминает браузерную версию <b>Google Translate</b>, но на этом сходство быстро заканчивается.</p><h2>Чем ChatGPT Translate отличается от классических переводчиков</h2><p>Формально это «переводчик». Но по сути — отдельный режим ChatGPT, заточенный под работу с переводом. Пользователь может:</p><ul><li>вставить или набрать текст;</li><li>загрузить файл;</li><li>прикрепить изображение с текстом (например, меню или вывеску);</li><li>продиктовать фразу голосом.</li></ul><p>Сервис автоматически определяет язык. Но если надо — он также позволяет выбрать исходный и целевой вручную.</p><p>Главное отличие — перевод не буквальный. ChatGPT Translate старается сохранить смысл, контекст и интонацию.</p><h2>Перевод с учетом аудитории и контекста</h2><p>После перевода диалог не обрывается. Пользователь может сразу уточнить: сделать текст более формальным, адаптировать его под деловую переписку, академический стиль или, наоборот, объяснить «как ребенку».</p><h2>На базе какой модели это работает — неизвестно</h2><p>OpenAI не раскрывает, какая именно модель используется в ChatGPT Translate.</p><p>Возможно, это GPT-5.2 Auto с кастомным системным промптом под перевод. Возможно — отдельная оптимизированная версия. Компания никак это не комментирует.</p><h2>Почему это важный шаг для OpenAI</h2><p>Запуск Translate хорошо вписывается в текущую стратегию OpenAI. Компания все больше уходит в массовые потребительские продукты, в то время как Anthropic концентрируется на корпоративных клиентах и разработчиках.</p><p>ChatGPT Translate — прямой удар по нише, которую годами считали съеденной Google Translate. Но вместо очередного клона, OpenAI предложила просто другой подход. В ее сервисе перевод — это скорее лишь начало работы с текстом, а не финальный результат.</p><h2>Ограничения и текущий статус</h2><p>На момент запуска переводчик доступен только в браузере. В мобильных приложениях ChatGPT для Android и iOS отдельного переключателя Translate пока нет.</p>]]></content:encoded>
    </item>
    <item>
      <title>В Rust-коде ядра Linux нашли опасный баг, приводивший к kernel panic</title>
      <link>https://tproger.ru/news/v-rust-kode-yadra-linux-nawli-opasnyj-bag--privodivwij-k-kernel-panic</link>
      <comments>https://tproger.ru/news/v-rust-kode-yadra-linux-nawli-opasnyj-bag--privodivwij-k-kernel-panic?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Булат Яббаров]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/v-rust-kode-yadra-linux-nawli-opasnyj-bag--privodivwij-k-kernel-panic</guid>
      <description><![CDATA[<p>В Rust-коде ядра Linux обнаружили опасный баг в Binder, приводивший к повреждению памяти и kernel panic. Исправление уже включено в стабильные обновления</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/v-rust-kode-yadra-linux-nawli-opasnyj-bag--privodivwij-k-kernel-panic">В Rust-коде ядра Linux нашли опасный баг, приводивший к kernel panic</a>»</p>]]></description>
      <category><![CDATA[Linux]]></category>
      <category><![CDATA[Android]]></category>
      <category><![CDATA[Безопасность]]></category>
      <category><![CDATA[Rust]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Fri, 19 Dec 2025 05:10:02 GMT</pubDate>
      <content:encoded><![CDATA[<p>В <b>стабильной ветке ядра Linux</b> <a href="https://git.kernel.org/pub/scm/linux/kernel/git/stable/linux.git/commit/?id=3e0ae02ba831da2b707905f4e602e43f8507b8cc">выявили</a> серьезную ошибку в коде, написанном на <b>Rust</b>.</p><p>Баг находился в Rust-реализации <b>Binder</b> — ключевого механизма межпроцессного взаимодействия в Android. Ошибка могла приводить к повреждению памяти и, как следствие, к <b>kernel panic</b>.</p><p>Исправление уже принято в стабильное дерево Linux и распространяется через обновления.</p><h2>Что пошло не так</h2><p>Проблема возникла в логике работы со списком death_list, который используется для отслеживания завершенных объектов Binder.</p><p>В коде применялся небезопасный вызов remove, который предполагал, что элемент либо присутствует в списке, либо не используется параллельно.</p><p>На практике это допущение оказалось неверным. В момент, когда один поток извлекал элементы списка и переносил их во временный локальный список, другой поток мог одновременно обращаться к тем же структурам данных.</p><p>Это создавало <b>гонку данных</b> и приводило к повреждению указателей prev/next в связанном списке.</p><p>В результате происходило обращение к невалидным адресам памяти внутри ядра. В логах такие ситуации проявлялись как ошибки обработки страничных запросов и завершались kernel panic.</p><figure><img src="https://media.tproger.ru/user-uploads/111041/2025-12-19/624ef167-951e-48d4-b050-69b70a4ac971.jpeg" alt="" /></figure><h2>Почему это особенно важно</h2><p>Binder — один из базовых компонентов Android. Любые ошибки в его реализации потенциально затрагивают миллионы устройств.</p><p>При этом баг находился именно в Rust-коде, что делает ситуацию особенно чувствительной на фоне дискуссий о безопасности Rust в ядре Linux.</p><p>Напомним, что Rust активно продвигается как язык, снижающий риск ошибок работы с памятью. Однако этот случай показывает важную деталь: <b>использование </b>unsafe<b> снимает часть гарантий языка</b> и ошибки проектирования многопоточности никуда не исчезают.</p><h2>Как баг исправили</h2><p>Разработчики изменили логику очистки death_list. Вместо извлечения элементов во временный список и последующей обработки вне блокировки, код теперь:</p><ul><li>работает <b>напрямую</b> с оригинальным списком;</li><li>извлекает элементы по одному <b>под защитой блокировки</b>;</li><li><b>исключает</b> параллельный доступ к структурам данных.</li></ul><p>Таким образом, опасный сценарий с одновременной модификацией списка стал невозможен.</p><h2>Что это значит для Rust в ядре</h2><p>Этот инцидент не отменяет преимуществ Rust, но служит напоминанием: <b>безопасность — это не только язык, но и архитектура кода</b>.</p><p>Даже в Rust ошибки синхронизации и неверные предположения о владении данными могут приводить к критическим сбоям.</p><p>Для ядра Linux это еще один аргумент в пользу осторожного и постепенного расширения Rust-кода — с тщательным аудитом, ревью и минимизацией unsafe-участков.</p>]]></content:encoded>
    </item>
    <item>
      <title>MAX снова лёг — сбой 30 марта 2026 года. Что известно</title>
      <link>https://tproger.ru/news/max-leg---tysyachi-zhalob-po-vsej-strane--ne-rabotayut-android--i-ios-prilozheniya</link>
      <comments>https://tproger.ru/news/max-leg---tysyachi-zhalob-po-vsej-strane--ne-rabotayut-android--i-ios-prilozheniya?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Булат Яббаров]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/max-leg---tysyachi-zhalob-po-vsej-strane--ne-rabotayut-android--i-ios-prilozheniya</guid>
      <description><![CDATA[<p>Мессенджер MAX снова не работает 30 марта 2026. Сбой затронул Android, iOS и веб-версию по всей России. Подробности и хронология.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/max-leg---tysyachi-zhalob-po-vsej-strane--ne-rabotayut-android--i-ios-prilozheniya">MAX снова лёг — сбой 30 марта 2026 года. Что известно</a>»</p>]]></description>
      <category><![CDATA[Интернет]]></category>
      <category><![CDATA[Android]]></category>
      <category><![CDATA[Мессенджер]]></category>
      <category><![CDATA[Приложение]]></category>
      <category><![CDATA[Сервер]]></category>
      <category><![CDATA[CDN]]></category>
      <category><![CDATA[iPhone]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Mon, 08 Dec 2025 07:51:29 GMT</pubDate>
      <content:encoded><![CDATA[<p><b>Обновлено 30 марта 2026 года.</b><br />Мессенджер MAX снова лёг — сбой начался около 09:25 по Москве. Подробности ниже.</p><p>Мессенджер <b>MAX</b> снова испытывает масштабный сбой. Утром 30 марта 2026 года пользователи по всей России начали массово <a href="https://detector404.ru/maxru">жаловаться</a> на недоступность сервиса — приложение не открывается, сообщения не отправляются, а у части пользователей не приходят уведомления.</p><p>Проблемы затронули <b>Android</b>, <b>iOS</b> и <b>веб-версию</b>. По <a href="https://detector404.ru/maxru">данным Detector404</a>, резкий всплеск жалоб начался около <b>09:25 МСК</b> — число обращений быстро приблизилось к тысяче. Больше всего жалоб поступает из Москвы, Самарской области, Краснодарского края и Санкт-Петербурга.</p><p>Это уже не первый крупный сбой MAX в 2026 году: 10 февраля сервис также массово «падал» (тогда пресс-служба <a href="https://meduza.io/news/2026/02/10/polzovateli-max-soobschili-o-sboyah-v-ego-rabote-press-sluzhba-messendzhera-utverzhdaet-chto-vse-rabotaet-v-shtatnom-rezhime">утверждала</a>, что «всё работает в штатном режиме»). А накануне, 29 марта, <a href="https://xn--90aqok.xn--p1ai/vk-video">фиксировались проблемы</a> с VK Видео — сервисом из той же экосистемы VK.</p><p>Официальных комментариев от команды MAX по сбою 30 марта пока нет.</p><h2>Предыдущий сбой MAX — 8 декабря 2025 года</h2><p>8 декабря 2025 года мессенджер <b>MAX</b> столкнулся с крупным техническим сбоем.</p><p>По <a href="https://detector404.ru/maxru">данным</a> <i>Detector404</i>, количество жалоб за последний час <b>превысило 944</b>, а за сутки — <b>более 1200</b>. При этом <b>сервис «упал» практически мгновенно</b> — на графике видно резкое вертикальное поднятие кривой жалоб.</p><p>Пользователи сообщали о <b>полной недоступности приложения</b>: MAX не открывался, не пускал в аккаунт, не отправлял сообщения, а у некоторых приложение просто зависало на заставке.</p><p>Со сбоем столкнулись как владельцы <b>Android-смартфонов</b>, так и <b>iPhone</b>. И даже пользователи <b>веб-версии</b>.</p><figure><img src="https://media.tproger.ru/user-uploads/111041/2025-12-08/e93a2a64-6bcd-4f8b-a722-1106a4d19a97.jpeg" alt="" /></figure><h2>География сбоя 8 декабря</h2><p>Проблемы фиксировались в десятках регионов. Среди лидеров по числу жалоб — Краснодарский край, Республика Коми, Алтай, Новосибирская область, Республика Саха (Якутия) и Москва.</p><p>Данные были собраны на основе сообщений за последний час, но тенденция была общероссийской. Пользователи массово отмечали одинаковые симптомы:</p><ul><li>«не работает приложение»;</li><li>«невозможно отправить сообщение»;</li><li>«не приходит код авторизации»;</li><li>«не открывается MAX, пишет ошибку сети».</li></ul><h2>Где именно «ломался» MAX</h2><p>Согласно статистике Detector404, <b>45,9%</b> жалоб пришло от пользователей Android, <b>29,7%</b> — от владельцев iPhone и <b>18,9%</b> пришлось на долю веб-версии.</p><p>Были сообщения о сбоях в отправке голосовых и видеосообщений, невозможности загрузить чаты, нарушениях синхронизации между устройствами.</p><p>Отдельная часть пользователей жаловалась, что мессенджер «видит интернет», но фактически не соединяется с серверами.</p><h2>Что говорили пользователи и что было известно официально</h2><p>Команда MAX тогда не опубликовала официального комментария. Пользователи предполагали, что это либо крупная внутренняя авария, либо сбой в CDN/серверной инфраструктуре.</p><p>Некоторые связывали проблемы с обновлением, вышедшим накануне.</p>]]></content:encoded>
    </item>
    <item>
      <title>Сообщество за считанные часы собрало $5 млн на новый Linux-смартфон от Jolla</title>
      <link>https://tproger.ru/news/soobshhestvo-za-schitannye-chasy-sobralo--5-mln-na-novyj-linux-smartfon-ot-jolla</link>
      <comments>https://tproger.ru/news/soobshhestvo-za-schitannye-chasy-sobralo--5-mln-na-novyj-linux-smartfon-ot-jolla?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Булат Яббаров]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/soobshhestvo-za-schitannye-chasy-sobralo--5-mln-na-novyj-linux-smartfon-ot-jolla</guid>
      <description><![CDATA[<p>Jolla запускает новый Linux-смартфон, профинансированный сообществом: открытость, приватность и альтернатива Android в 2026 году</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/soobshhestvo-za-schitannye-chasy-sobralo--5-mln-na-novyj-linux-smartfon-ot-jolla">Сообщество за считанные часы собрало $5 млн на новый Linux-смартфон от Jolla</a>»</p>]]></description>
      <category><![CDATA[Linux]]></category>
      <category><![CDATA[Операционные системы]]></category>
      <category><![CDATA[Android]]></category>
      <category><![CDATA[5g]]></category>
      <category><![CDATA[Дизайн]]></category>
      <category><![CDATA[Смартфоны]]></category>
      <category><![CDATA[Процессор]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Mon, 08 Dec 2025 07:04:15 GMT</pubDate>
      <content:encoded><![CDATA[<p>Финская компания Jolla <a href="https://commerce.jolla.com/products/jolla-phone-preorder">объявила</a> о запуске нового смартфона на базе Linux. Причем финансирование на него собрало сообщество.</p><p>Кампания стартовала на Indiegogo, где Jolla запросила около <b>$5 млн</b>, чтобы начать производство первой партии устройств в 2026 году.</p><p>Jolla давно известна своим альтернативным взглядом на мобильные операционные системы. После экспериментов с Sailfish OS, компания решила вернуться к идее открытого смартфона, созданного при участии пользователей, а не крупных инвесторов.</p><h2>Что известно о новом Linux-смартфоне</h2><p>Устройство пока фигурирует под рабочим названием <b>Jolla Linux Phone</b>. Компания публикует рендеры: корпус в теплых оттенках, вертикальная камера, минималистичный дизайн.</p><p>Основной акцент — <b>на приватность, открытость и контролируемость пользовательских данных</b>. Все то, традиционно является сильными сторонами проектов на Linux.</p><p>По словам Jolla, смартфон будет работать на полностью открытом ПО. В отличие от Android-устройств, здесь обещают отсутствие трекинга и отсутствие зависимости от крупных облачных сервисов.</p><p>Под капотом ожидаются характеристики среднего уровня: энергоэффективный процессор, 5G, приличная батарея и камера, которой будет «достаточно для повседневной съемки».</p><p>Конкретных спецификаций пока нет — компания обещает раскрыть их после формирования первой производственной партии.</p><figure><img src="https://media.tproger.ru/user-uploads/111041/2025-12-08/c3ceedc5-d703-4e8d-a0ce-1ab82b9f828d.jpeg" alt="" /></figure><h2>Почему проект профинансировали так быстро</h2><p>Комьюнити Jolla исторически активно поддерживает независимые мобильные платформы.</p><p>На старте кампании фанаты буквально за часы обеспечили основную сумму, а обсуждения на форумах и в комментариях показывают, что запрос на долгожданную «альтернативу Android» вырос.</p><p>Пользователи пишут, что устали от закрытых экосистем, навязанных сервисов и ускоряющегося темпа устаревания смартфонов.</p><p>Кроме того, рынок Linux-смартфонов переживает второе дыхание: Purism Librem 5 и PinePhone доказали, что нишевые устройства могут найти аудиторию. Особенно если предлагают прозрачность, ремонтопригодность и независимость от крупных корпораций.</p><h2>Что дальше</h2><p>Jokka планирует начать производство в 2026 году. Первые прототипы будут представлены публике раньше — после завершения инженерной фазы.</p><p>Команда подчеркивает, что финальная конфигурация смартфона будет обсуждаться вместе с сообществом.</p>]]></content:encoded>
    </item>
    <item>
      <title>Как встроить OCR бухгалтерских документов в мобильное приложение на iOS и Android</title>
      <link>https://tproger.ru/articles/kak-vstroit-ocr-buhgalterskih-dokumentov-v-mobilnoe-prilozhenie-na-ios-i-android</link>
      <comments>https://tproger.ru/articles/kak-vstroit-ocr-buhgalterskih-dokumentov-v-mobilnoe-prilozhenie-na-ios-i-android?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Smart Engines]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/kak-vstroit-ocr-buhgalterskih-dokumentov-v-mobilnoe-prilozhenie-na-ios-i-android</guid>
      <description><![CDATA[<p>Объясняем, как перенести возможности ИИ для распознавания бухгалтерских документов в мобильное приложение для iOS и Android</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/kak-vstroit-ocr-buhgalterskih-dokumentov-v-mobilnoe-prilozhenie-na-ios-i-android">Как встроить OCR бухгалтерских документов в мобильное приложение на iOS и Android</a>»</p>]]></description>
      <category><![CDATA[API]]></category>
      <category><![CDATA[Android]]></category>
      <category><![CDATA[iOS]]></category>
      <category><![CDATA[Приложение]]></category>
      <category><![CDATA[Библиотеки]]></category>
      <category><![CDATA[Бизнес]]></category>
      <category><![CDATA[ЭДО]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Thu, 27 Nov 2025 14:10:03 GMT</pubDate>
      <content:encoded><![CDATA[<p>Сегодня мы продолжим разбираться, как встраивать технологии распознавания (OCR) в нативные мобильные приложения. Ранее мы уже показывали, как интегрировать <a href="https://tproger.ru/articles/kak-vstroit-raspoznavanie-pasporta-rf-v-android--powagovoe-rukovodstvo">распознавание паспорта</a>, а также <a href="https://tproger.ru/articles/kak-vstroit-raspoznavanie-dokumentov-v-android--powagovoe-rukovodstvo">документов с жесткими и гибкими формами</a> в Android. На очереди не менее важный класс документов – бухгалтерских, куда входят акты, счета, справки и накладные. А в качестве дополнения мы рассмотрим, как реализовать распознавание этих документов в приложении на iOS. Начинаем!</p><h2>Первичка и не только</h2><p>Когда мы говорим «бухгалтерские документы», мы имеем в виду не пару стандартных бланков, а множество первичных, учредительных, учетных и распорядительных документов, полуструктурированных и гибких форм. Среди них счета-фактуры, УПД, формы ТОРГ-12, транспортные накладные, акты, УКД, КСФ, ИСФ, уставы, приказы, бухгалтерский баланс, отчеты о финансовых результатах и многие другие.</p><p>Визуальный контроль и ручная перепечатка этих документов в системы бухучета – одна из наиболее времязатратных задач бухгалтерии. Даже при выборочной проверке и среднем уровне автоматизации сотрудник успевает обработать около 200-300 документов в день, в то время как объем документооборота у крупных компаний исчисляется десятками и сотнями тысяч страниц.</p><p>Снять практически 100% нагрузки в части ввода и проверки данных из бумажных документов и поступающих по ЭДО сканов можно при помощи OCR-систем. Автоматическое <a href="https://smartengines.ru/intelligent-document-recognition/">распознавание документов</a> исключает человеческий фактор и связанные с ним ошибки. Если сотрудник может банально устать или некорректно перенести информацию из документа, то ИИ, напротив, обеспечивает высочайшую точность извлечения данных.</p><h2>Возможности ИИ для работы с бухгалтерскими документами</h2><p>Для автоматизации работы с бухгалтерскими документами недостаточно простого полнотекстового распознавания. Чтобы действительно принести видимый экономический эффект, система OCR должна классифицировать документ, обнаруживать и считывать таблицы, чекбоксы и штрихкоды, извлекать даты, суммы, данные контрагентов, контролировать наличие подписей в документах, а также поддерживать распознавание многостраничных форм. Только такой комплекс возможностей ИИ способен внести реальный вклад в упрощение бухучета, учета НДС и налогов по УСН, ускорить делопроизводство и сэкономить часы времени сотрудников.</p><p>Мы в Smart Engines занимаемся разработкой таких решений. Наш флагманский продукт для <a href="https://smartengines.ru/intelligent-document-recognition/">распознавания документов</a> Smart Document Engine способен выполнить месячный объем работы отдела из 10 бухгалтеров всего за 1 час. Система обрабатывает изображения документов без передачи данных в облака, на внешние серверы или краудсорсинговые платформы. Это означает, что содержание документов не покидает устройство сотрудника – бизнес при этом получает гарантию сохранения коммерческой тайны.</p><p>Интеграция системы распознавания в мобильные приложения позволяет получить доступ к возможностям ИИ прямо со смартфона – без необходимости в компьютерах и сканерах. Для извлечения структурированных данных достаточно просто загрузить скан или сфотографировать документ в приложении. У интеграции нашей системы в iOS и Android есть еще одно преимущество – благодаря ей банк может развернуть мобильный сервис для бухгалтерского сопровождения малого бизнеса и ИП, у которых нет на эти задачи штатных сотрудников.</p><h2>Интеграция в Android</h2><p>Перейдем к главному. Поскольку мы специализируемся в распознавании на клиенте, интеграция нашего SDK в Android осуществляется обычным способом подключения локальных библиотек.</p><p>Вы переносите библиотеки (архитектурные срезы), бандл (набор документов, необходимых для распознавания) и jar-файл (интерфейс библиотеки) к себе в приложение. Подключаете jar-файл в вашей конфигурации gradle и после этого вы уже можете использовать наше API.</p><p>На этом этапе мы должны подготовить изображение для передачи в сессию. Мы создаем изображение класса se.common.Image с помощью соответствующих методов API.</p><p>Например, вы выбираете из галереи что-то в формате HEIC и система возвращает вам bitmap</p><p>Объект result содержит в себе не только распознанные поля документа, но и изображение документа: исправленное по перспективе и обрезанное по шаблону, уровень уверенности распознавания каждого поля и т.п.</p><h2>Интеграция в iOS</h2><p>Процесс интеграции в iOS-приложение тоже не вызывает сложностей, но имеет несколько вариантов из-за долгого отсутствия в экосистеме нормального пакетного менеджера зависимостей.</p><p>Первый вариант интеграции – ручной.</p><p>Вы перетаскиваете себе в проект две папки, одна из них содержит xcframework, обертку на objc и бандл. Вторая - готовый UI-контроллер, который можно вызывать из своего проекта.</p><p>Также необходимо в проекте прописать пути к заголовкам обертки и указать путь к файлу *-Bridging-Header.h, для раскрытия делегатов в swift из нашего контроллера.</p><p>Более удобные для интеграции SPM и Cocoapods мы тоже поддерживаем.</p><p>Сценарий взаимодействие с библиотекой на iOS точно такой же как и на Android, но в iOS мы имеем больше инкапсулированной логики. Для начала следует добавить в ваш класс два протокола SmartDocumentEngineDelegate, SmartDocumentEngineInitializationDelegate</p><p>Приведем сразу коллбек imagePicker, где реализована основная логика распознавания после выбора изображения из галереи.</p><p>Ожидать результата следует в делегате.</p><p>Объект результата по структуре идентичен объекту, который вы получаете в Android.</p><h2>Подведем итоги</h2><p>Как вы видите, интеграция нашего распознающего ИИ в мобильные приложения происходит быстро и бесшовно, а механика для iOS и Android отличается незначительно.</p><p>Помимо мобильных телефонов, наши технологии можно встроить и на компьютеры, планшеты или сервера компании, однако на смартфоне весь бухгалтерский документооборот становится проще и доступнее для сотрудников.</p><p>Подробнее с нашими решениями можно ознакомиться на <a href="https://smartengines.ru/">сайте Smart Engines</a>. А если вам понравился материал, предлагаем к прочтению нашу предыдущую <a href="https://tproger.ru/articles/kak-rewat-lyubye-zadachi-raspoznavaniya-v-miniappah">статью</a> про распознавание документов в мессенджерах.</p>]]></content:encoded>
    </item>
    <item>
      <title>В Python 3.17 предложили сделать Rust обязательным. CPython ждет крупнейшая реформа за 10 лет</title>
      <link>https://tproger.ru/news/v-python-3-17-predlozhili-sdelat-rust-obyazatelnym--cpython-zhdet-krupnejwaya-reforma-za-10-let</link>
      <comments>https://tproger.ru/news/v-python-3-17-predlozhili-sdelat-rust-obyazatelnym--cpython-zhdet-krupnejwaya-reforma-za-10-let?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Булат Яббаров]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/v-python-3-17-predlozhili-sdelat-rust-obyazatelnym--cpython-zhdet-krupnejwaya-reforma-za-10-let</guid>
      <description><![CDATA[<p>Python 3.17 может сделать Rust обязательным: CPython готовят к крупнейшей реформе за десятилетие — ради безопасности, скорости и будущего без GIL</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/v-python-3-17-predlozhili-sdelat-rust-obyazatelnym--cpython-zhdet-krupnejwaya-reforma-za-10-let">В Python 3.17 предложили сделать Rust обязательным. CPython ждет крупнейшая реформа за 10 лет</a>»</p>]]></description>
      <category><![CDATA[API]]></category>
      <category><![CDATA[Linux]]></category>
      <category><![CDATA[Android]]></category>
      <category><![CDATA[Безопасность]]></category>
      <category><![CDATA[Производительность]]></category>
      <category><![CDATA[Python]]></category>
      <category><![CDATA[Rust]]></category>
      <category><![CDATA[Firefox]]></category>
      <category><![CDATA[Библиотеки]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Tue, 18 Nov 2025 09:00:03 GMT</pubDate>
      <content:encoded><![CDATA[<p>Команда CPython <a href="https://discuss.python.org/t/pre-pep-rust-for-cpython/104906">обсуждает</a> предложение (pre-PEP), которое может радикально изменить процесс сборки интерпретатора: <b>Rust предлагают сделать обязательной зависимостью уже в Python 3.17</b>.</p><p>Если PEP примут, Python впервые за историю станет «двуязычным» проектом — частично на C, частично на Rust.</p><h2>Зачем Python нужен Rust</h2><p>Разработчики приводят несколько причин:</p><ul><li><b>Безопасность памяти.</b> Rust устраняет категории ошибок, привычные для C: use-after-free, гонки, переполнения.</li><li><b>Подготовка к free-threaded Python.</b> Переход к работе без GIL требует безопасных примитивов — Rust подходит идеально.</li><li><b>Производительность.</b> Rust позволяет создавать быстрые структуры данных без ручного менеджмента памяти.</li><li><b>Современный стек.</b> Linux, Android и Firefox уже используют Rust в системных компонентах — Python догоняет тренд.</li><li><b>Поддержка долгосрочного развития CPython.</b> Сложность кода растет, а Rust упрощает сопровождение.</li></ul><h2>Что именно планируют делать</h2><p>Стоит отметить, что Rust не планируют использовать в качестве полной замены C — появится возможность использовать оба языка. В идеале, должен получиться симбиоз:</p><ul><li><b>Crate</b> cpython-sys. Это набор автоматически сгенерированных привязок (FFI-слоя), которые позволяют Rust-коду безопасно «общаться» с внутренним API CPython.</li><li><b>Поддержка модулей на Rust.</b> Некоторые части стандартной библиотеки можно будет писать и подключать так же, как C-модули — только на Rust.</li><li><b>Прозрачное разделение зон безопасности.</b> «Безопасный» Rust будет использоваться по максимуму, а unsafe — только там, где нужно напрямую взаимодействовать с C-частями интерпретатора.</li></ul><p>Уже есть рабочий пример — модуль _base64 на Rust, который оказался быстрее варианта на C.</p><h2>Переходный план</h2><p>Если PEP утвердят, переход займет <b>три релиза</b>:</p><ul><li><b>Python 3.15</b> — предупреждение при сборке без Rust.</li><li><b>Python 3.16</b> — Rust остается опциональным, но его отключение потребует отдельного флага.</li><li><b>Python 3.17</b> — Rust становится <b>обязательной частью сборки </b>CPython.</li></ul><p>То есть через два релиза Python не соберется там, где нет Rust.</p><h2>Какие есть проблемы</h2><p>В обсуждении упоминают несколько рисков. Например, <b>циклическая зависимость при сборке</b> — Rust требует Python, Python требует Rust.</p><p>Вместе с тем, внедрение нового языка приведет и к <b>повышению порога входа</b> для новых участников разработки CPython. Как минимум потому, что им придется изучить Rust.</p><p><b>Появятся и сложности со сборкой в ограниченных средах</b>, например embedded-системах. При этом остается <b>неясной судьба Rust-API для сторонних расширений</b> — скорее всего, его не откроют.</p><h2>Что это значит для сообщества</h2><p>Для пользователей Python почти ничего не изменится. А вот для разработчиков интерпретатора это станет одним из самых крупных сдвигов в истории проекта.</p><p>Так, Python наконец-то станет сильно безопаснее. При этом CPython получит более надежный фундамент для будущих фич вроде полного отказа от GIL.</p>]]></content:encoded>
    </item>
    <item>
      <title>Недельный геймдев: #251 — 9 ноября, 2025</title>
      <link>https://tproger.ru/articles/nedelnyj-gejmdev---251---9-noyabrya--2025</link>
      <comments>https://tproger.ru/articles/nedelnyj-gejmdev---251---9-noyabrya--2025?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Андрей Апанасик]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/nedelnyj-gejmdev---251---9-noyabrya--2025</guid>
      <description><![CDATA[<p>Следующая Mass Effect остаётся в разработке, Square Enix проведёт массовые сокращения, GTA VI опять перенесли, Google и Epic Games заключили мировое соглашение.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/nedelnyj-gejmdev---251---9-noyabrya--2025">Недельный геймдев: #251 — 9 ноября, 2025</a>»</p>]]></description>
      <category><![CDATA[Разработка игр]]></category>
      <category><![CDATA[Android]]></category>
      <category><![CDATA[iOS]]></category>
      <category><![CDATA[Epic Games]]></category>
      <category><![CDATA[Игра]]></category>
      <category><![CDATA[PlayStation]]></category>
      <category><![CDATA[Steam]]></category>
      <category><![CDATA[Google Play]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Mon, 10 Nov 2025 13:20:02 GMT</pubDate>
      <content:encoded><![CDATA[<p>Из новостей: следующая Mass Effect остаётся в разработке, Square Enix  проведёт массовые сокращения, GTA VI опять перенесли, Google и Epic  Games заключили мировое соглашение.</p><p>Из интересностей: выпустил 5 игр в Steam одновременно, WebGL против WebGPU, интересная AR-механика.</p><figure><img src="https://media.tproger.ru/user-uploads/111192/2025-11-10/0c98f593-3a2f-4f39-a71a-bd0f6eaccdf5.jpg" alt="" /></figure><h2>Обновления/релизы/новости</h2><h2>Путешествие по чистилищу, встреча со смертными грехами и бой сЛюцифером: концепт-арты и подробности отменённой Dante’s Inferno 2</h2><figure><img src="https://media.tproger.ru/user-uploads/111192/2025-11-10/ae67d1da-aec7-4354-9201-ea9457f58d4f.jpg" alt="" /></figure><p>В планах <a href="https://dtf.ru/games/4135318-podrobnosti-otmenennoy-dantes-inferno-2">была и третья часть</a> — в сеттинге средневековой Флоренции.</p><h2>BioWare: следующая Mass Effect остаётся в разработке, а сериал расскажет новую историю после оригинальной трилогии</h2><figure><img src="https://media.tproger.ru/user-uploads/111192/2025-11-10/94da7578-6baa-4802-8912-5f6d90716ed6.png" alt="" /></figure><p>Майк Гэмбл <a href="https://blog.bioware.com/2025/11/07/n7-day-2025/">заявил</a>, что EA и BioWare нацелены на то, чтобы рассказать новые истории во вселенной Mass Effect.</p><h2>Square Enix проведёт массовые сокращения из-за «реорганизации операций» в Европе и Северной Америке</h2><figure><img src="https://media.tproger.ru/user-uploads/111192/2025-11-10/c5976e80-0dcf-4a5a-9178-031415447a52.jpg" alt="" /></figure><p>Компания <a href="https://www.ign.com/articles/square-enix-undergoes-mass-layoffs-as-it-reorganizes-to-consolidate-development-in-japan">хочет сосредоточиться</a> на разработке игр у себя на родине.</p><h2>Крис Авеллон заявил, что Obsidian не планирует The Outer Worlds 3, но готовит Avowed 2</h2><figure><img src="https://media.tproger.ru/user-uploads/111192/2025-11-10/c2bb60e2-551a-484a-bb42-55a728658b8a.jpg" alt="" /></figure><p>Сооснователь и ветеран Obsidian <a href="https://x.com/ChrisAvellone/status/1986510753025704307">рассказал</a>, что студия не планирует работать над триквелом The Outer Worlds, однако вторая игра получит хотя бы одно DLC.</p><h2>GTA VI опять перенесли — в этот раз на 19 ноября 2026 года</h2><figure><img src="https://media.tproger.ru/user-uploads/111192/2025-11-10/95bba688-e17c-404c-a03e-b218a5872aba.jpg" alt="" /></figure><p>Дополнительное время разработчики <a href="https://x.com/RockstarGames/status/1986540361011880167">потратят</a>  на то, чтобы довести игру до уровня качества, которого ждёт и  заслуживает аудитория. Издатели, тем временем, бегают с горящей жопой.</p><h2>Ubisoft заявила, что люди «любили ненавидеть» Assassin’s CreedShadows, но компании удалось противостоять «даже самым громким хейтерам»</h2><figure><img src="https://media.tproger.ru/user-uploads/111192/2025-11-10/66261ea9-ae90-4e21-8f63-baca5042cdfe.jpg" alt="" /></figure><p>Ubisoft выступила на Paris Games Week и <a href="https://www.gamefile.news/p/paris-video-assassins-creed-shadows">показала</a> ролик о культурном скандале вокруг Assassin’s Creed Shadows, вызванном участием в сюжете темнокожего главного героя Ясукэ.</p><h2>«Мы не хотим, чтобы студия исчезла из-за одного неудачного проекта»: главное из интервью с руководителями Obsidian</h2><figure><img src="https://media.tproger.ru/user-uploads/111192/2025-11-10/a8f539f4-5172-4e23-952c-96232a368305.png" alt="" /></figure><p>Они <a href="https://dtf.ru/gameindustry/4136760-obsuzhdenie-budushchego-obsidian">рассказали</a> о желании определить, что значит быть игрой студии, и осторожности в разработке.</p><h2>NetEase закроет студию бывших авторов Watch Dogs</h2><figure><img src="https://media.tproger.ru/user-uploads/111192/2025-11-10/5afb243f-6e1e-4739-b0f7-f908d95de9d1.png" alt="" /></figure><p>Бывшие авторы Watch Dogs, основавшие студию Bad Brain, искали других  партнёров для своего проекта Midnight Riders, однако пока издатели <a href="https://www.linkedin.com/posts/bad-brain-game-studios_midnight-riders-sizzle-reel-activity-7391949948268834817-2Wyf/">не заинтересовались игрой</a>.</p><h2>Google и Epic Games заключили мировое соглашение</h2><figure><img src="https://media.tproger.ru/user-uploads/111192/2025-11-10/7c0c41e9-1561-46a9-bf30-463b4b551678.png" alt="" /></figure><p>Гугл <a href="https://www.theverge.com/policy/813991/epic-google-proposed-settlement">пообещал</a> снизить комиссию до 20% в целом, а для некоторых типов транзакций вообще до 9%.</p><p>Компания согласилась создать новую программу в следующей версии  Android, где альтернативные магазины смогут зарегистрироваться в Google и  (теоретически) стать полноценными приложениями, которые пользователи  смогут легко устанавливать.</p><h2>Unity запускает Unity Studio (ранее Unity Lite)</h2><figure><img src="https://media.tproger.ru/user-uploads/111192/2025-11-10/85b82077-f629-48a1-bf45-89bcad3c0593.png" alt="" /></figure><p>Новая <a href="https://unity.com/campaign/unity-studio">бета-версия редактора Unity</a>  с очень минималистичным и урезанным набором функций, включая совершенно  новый язык визуального программирования. Unity Studio ориентирована на  аудиторию, не связанную с играми, и стремится сделать Unity доступной  для неигровых разработчиков.</p><h2>Авторы ремейка Gothic выпустили ролик о русском дубляже — Пётр Гланц-Иващенко озвучил главного героя</h2><p>Безымянный говорил голосом актёра в оригинальной второй части.</p><h2>Продано 100к копий Slots &amp; Daggers</h2><figure><img src="https://media.tproger.ru/user-uploads/111192/2025-11-10/2ab60628-f59d-4f1a-af9e-7a1f6ffa2427.png" alt="" /></figure><p>Разработчики <a href="https://store.steampowered.com/news/app/3631290/view/687488077158942074?l=english">поделились</a> радостью в Стиме.</p><h2>Халява/раздачи/бандлы/курсы</h2><h2>Fab: Лимитированный контент до 18 го ноября</h2><figure><img src="https://media.tproger.ru/user-uploads/111192/2025-11-10/bd4f1e88-f926-4616-801c-9dd973a6a233.png" alt="" /></figure><p>Новый <a href="https://dtf.ru/gamedev/4133774-fab-besplatnye-nabory-assetov-do-18-noyabrya">пак от Epic Games</a>.</p><h2>Новые примеры проекта от Agora Studio для Unreal Engine</h2><p>Epic games <a href="https://www.unrealengine.com/en-US/news/explore-agora-studios-new-animation-sample-projects-for-unreal-engine">выпустили</a>  два новых проекта примеров с анимациями для Unreal Engine: A-COM  Animatic Sample и A-COM Animation Sample. Доступны для UE 5.6, а скоро  выйдет обновление для UE 5.7.</p><h2>Интересные статьи/видео</h2><h2>[RU] Выпустил 5 игр в Steam одновременно. Создал генератор игр и заработал на этом</h2><figure><img src="https://media.tproger.ru/user-uploads/111192/2025-11-10/20a5de44-dd86-470e-a1d9-7756366a29df.png" alt="" /></figure><p>Движок <a href="https://dtf.ru/gamedev/3998946-kak-ya-vypustil-5-igr-v-steam">использовали Unity</a>, а заливку в Google Play и добавление рекламы автоматизировали скриптом.</p><h2>[EN] Как создать вид на японскую улицу с помощью Unreal Engine 5 и ZBrush</h2><figure><img src="https://media.tproger.ru/user-uploads/111192/2025-11-10/7f3fc3c8-dfd6-44ee-a0c2-91d8fcb127a0.jpg" alt="" /></figure><p>Массимо Росса <a href="https://80.lv/articles/how-to-create-a-japanese-street-view-using-unreal-engine-5-zbrush">рассказада</a> про проект Street View, объяснив, как использовала различные сценарии освещения, чтобы увидеть, как может меняться окружение.</p><h2>[RU] Подключение PlayStation2 Джойстика к Микроконтроллеру (или Переходник между человеком и компьютером)</h2><figure><img src="https://media.tproger.ru/user-uploads/111192/2025-11-10/21fe757b-d5a2-4dd8-bfc8-4bd2d3106282.png" alt="" /></figure><p>В разработке электронных устройств на МК порой надо как-то посылать в прошивку команды. Обычно такая задача <a href="https://habr.com/ru/articles/959628/">встаё</a>т при ручном управлении подвижными агрегатами: краны, роверы, игрушечные вертолеты и прочее.</p><h2>[EN] Переносим уютный двухмерный фэнтезийный коттедж в трёхмерный мир</h2><figure><img src="https://media.tproger.ru/user-uploads/111192/2025-11-10/c2aa88f9-1f67-46ae-9ac9-90c9302600ee.jpg" alt="" /></figure><p>Тринь Нгуен <a href="https://80.lv/articles/bringing-a-cozy-2d-fantasy-cottage-concept-into-a-3d-world">рассказала</a>  о проекте Cozy Fantasy Cottage, поделившись кистями, которые  использовала для пропсов и материалов, а также некоторыми приёмами,  экономящими время.</p><h2>[RU] Зал Славы видеоигр: зачем это делается</h2><figure><img src="https://media.tproger.ru/user-uploads/111192/2025-11-10/033c9964-3117-42be-8d4f-d8c97eae45f1.png" alt="" /></figure><p>Какую роль <a href="https://habr.com/ru/companies/miip/articles/963614/">играют</a> видеоигры для России? Зачем популяризировать российские проекты? Как работает Зал Славы видеоигровой индустрии?</p><h2>[EN] WebGL против WebGPU: пора ли переходить</h2><figure><img src="https://media.tproger.ru/user-uploads/111192/2025-11-10/c8c077f0-5fd2-42c3-b64e-9b81f0ad8cb9.png" alt="" /></figure><p>Неплохая <a href="https://threejsroadmap.com/blog/webgl-vs-webgpu-explained">обзорная статья-сравнение</a>.</p><h2>[RU] Конспект GDC лекции Stress-Free Game Development</h2><p>Хорошая <a href="https://dtf.ru/gamedev/4104673-stressoustojchivoe-razrabotka-igr-konspekt-lekcii-gdc">лекция</a> про DevOps и менеджмент игровых проектов.</p><h2>[EN] Скульптинг и текстурирование реалистичной жабы в ZBrush, Mari и Substance 3D</h2><figure><img src="https://media.tproger.ru/user-uploads/111192/2025-11-10/5207b57a-921d-445f-a959-ce4522333585.jpg" alt="" /></figure><p>Фернандо Гутьеррес <a href="https://80.lv/articles/sculpting-texturing-realistic-toad-skin-in-zbrush-mari-substance-3d">показал рабочий процесс</a>,  лежащий в основе проекта «Мистер Жаба», и рассказал о создании  реалистичной кожи жабы, объяснив, как он черпал вдохновение в мимике  взрослого человека и объединял её с линиями и текстурами старой жабы.</p><h2>[RU] Как впервые делали игру для пользователей Эльбы, но не учли, что некоторые из них читеры</h2><figure><img src="https://media.tproger.ru/user-uploads/111192/2025-11-10/a5c876c7-44e8-428b-8570-2ee8959d49ba.png" alt="" /></figure><p>Как придумывали объекты и персонажей, чтобы это было интересно  пользователям онлайн-бухгалтерии, какой игровой движок попробовали, что о  нём думаем и <a href="https://habr.com/ru/companies/skbkontur/articles/961328/">почему выбрали</a> для разработки формат хакатона.</p><h2>[EN] Как создать дверь в стиле модерн с помощью Blender и Substance 3D</h2><figure><img src="https://media.tproger.ru/user-uploads/111192/2025-11-10/dc0456b0-229d-4d7d-87be-d265d3c6fdf0.jpg" alt="" /></figure><p>Ник Хофбауэр <a href="https://80.lv/articles/how-to-create-an-art-nouveau-door-using-blender-substance-3d">рассказал</a>  о процессе создания проекта Art Nouveau Door, показав, как он  монтировал витраж, вручную нанося многочисленные слои друг на друга, и  объяснив, как он настраивал отражения в Marmoset Toolbag.</p><h2>[EN] Оптимистичный взгляд на то, что инди-игры сейчас переживают золотой век</h2><figure><img src="https://media.tproger.ru/user-uploads/111192/2025-11-10/4f4adda9-eacd-4f22-be58-73da9a78af06.png" alt="" /></figure><p>Анализируем <a href="https://howtomarketagame.com/2025/11/04/the-optimistic-case-that-indie-games-are-in-a-golden-age-right-now/">вместе с Крисом</a>.</p><h2>[EN] Продажи дебютной инди-игры за первый месяц — полный анализ</h2><p>Выпускать инди-игру — это странно и страшно. Особенно в нишевом  жанре. Но можно ли на этом заработать? Вот как выглядели первые  несколько дней и недель после запуска дебютной игры с точки зрения цифр.</p><h2>[EN] Почему трейлер игры привлёк 150к вишлистов в Steam</h2><figure><img src="https://media.tproger.ru/user-uploads/111192/2025-11-10/567c1336-9f33-4fe3-a528-c2ac8ee393c8.png" alt="" /></figure><p>Разбираемся в успехе ABRISS <a href="https://newsletter.gamediscover.co/p/why-did-this-games-trailer-spawn">вместе с gamediscover</a>.</p><h2>[EN] Зачем нам дизеринг</h2><figure><img src="https://media.tproger.ru/user-uploads/111192/2025-11-10/40d1a7b1-3a52-4130-8c5f-319d19b20918.png" alt="" /></figure><p>Объясняется, как методы дизеринга <a href="https://typefully.com/DanHollick/why-do-we-need-dithering-Ut7oD4k">обманывают</a> человеческое зрение, позволяя воспринимать больше цветов, чем есть на самом деле</p><h2>[EN] Introduction to Clustered Meshlet Optimization</h2><figure><img src="https://media.tproger.ru/user-uploads/111192/2025-11-10/eb897342-30e1-4899-9880-dae42bb44beb.png" alt="" /></figure><p>Представлен кластерный оптимизатор мешей для <a href="https://simplygon.com/posts/9886e4da-8e1c-48fe-916f-9b6e8bfe19e3">разделения моделей на независимые части</a> с непрерывным уровнем детализации.</p><h2>Разное</h2><h2>Интересная механика</h2><figure><img src="https://media.tproger.ru/user-uploads/111192/2025-11-10/35781ab4-6579-47c1-9092-0d699a9fcb85.gif" alt="" /></figure><p>Самописный движок на C++. Вычисляет, по каким объектам <a href="https://www.reddit.com/r/IndieDev/comments/1oi6m27/game_mechanics/">можно ходить</a>,  и в результате объекты одного цвета смешиваются друг с другом, и сквозь  них можно пройти. На бумаге выглядит вполне себе интересно.</p><h2>Волшебные карточки как в Балатро, созданные в Blender</h2><figure><img src="https://media.tproger.ru/user-uploads/111192/2025-11-10/99e4f70d-ca86-4f5a-8de0-8425f3dc2dc1.gif" alt="" /></figure><p>Из <a href="https://x.com/cmzw_/status/1984656404452663714">Твиттера</a>.</p><p>Если хотите поддержать выход дайджеста и других материалов, сделать это можно одним из способов.</p><ul><li><a href="https://www.patreon.com/suvitruf">На Патреоне</a></li><li><a href="https://boosty.to/apanasik">На Boosty</a></li><li><a href="https://www.paypal.com/paypalme/andreiapanasik">Через Paypal</a></li><li><a href="https://yoomoney.ru/to/41001674710054">Через Яндекс.Деньги</a></li></ul><p>Также вы можете подписаться на <a href="https://gamedevsuffering.substack.com/p/weekly-gamedev-251-09-november-2025">рассылку дайджеста</a>.</p>]]></content:encoded>
    </item>
    <item>
      <title>В США нашли утерянную ленту с одной из первых версий Unix — спустя 50 лет после релиза</title>
      <link>https://tproger.ru/news/v-swa-nawli-uteryannuyu-lentu-s-odnoj-iz-pervyh-versij-unix---spustya-50-let-posle-reliza</link>
      <comments>https://tproger.ru/news/v-swa-nawli-uteryannuyu-lentu-s-odnoj-iz-pervyh-versij-unix---spustya-50-let-posle-reliza?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Булат Яббаров]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/v-swa-nawli-uteryannuyu-lentu-s-odnoj-iz-pervyh-versij-unix---spustya-50-let-posle-reliza</guid>
      <description><![CDATA[<p>В США нашли магнитную ленту с Unix V4 1973 года. Ее восстанавливают побитово — это может стать важнейшим открытием в истории ОС</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/v-swa-nawli-uteryannuyu-lentu-s-odnoj-iz-pervyh-versij-unix---spustya-50-let-posle-reliza">В США нашли утерянную ленту с одной из первых версий Unix — спустя 50 лет после релиза</a>»</p>]]></description>
      <category><![CDATA[Linux]]></category>
      <category><![CDATA[Android]]></category>
      <category><![CDATA[unix]]></category>
      <category><![CDATA[Язык Си]]></category>
      <category><![CDATA[macOS]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Mon, 10 Nov 2025 03:00:03 GMT</pubDate>
      <content:encoded><![CDATA[<p>В хранилище Университета Юты <a href="https://ponderwall.com/index.php/2025/11/09/unix-lost-tape/">нашли</a> <b>магнитную ленту с надписью «UNIX Original From Bell Labs V4»</b>. Предположительно, это четвертая версия Unix, датированная примерно <b>1973 годом</b>.</p><p>Если находка подтвердится, перед нами — одна из старейших копий легендарной операционной системы.</p><h2>Как нашли ленту</h2><p>Ленту обнаружил профессор <b>Роберт Риччи</b> во время уборки в школе вычислительной техники Университета Юты.</p><p>Она лежала в обычной коробке на пыльной полке — без особых отметок. После публикации фотографии находки, на нее обратили внимание историки и инженеры по сохранению ПО.</p><p>Чтобы не повредить артефакт, Риччи передал его в <b>Computer History Museum</b> в Калифорнии. И там, прямо сейчас, ленту осторожно побитово «снимают», не запуская на обычных магнитофонах. Это нужно для того, чтобы не стереть данные.</p><h2>Почему это важно</h2><p>Unix V4 — одна из первых версий, <b>переписанных на языке C</b>. Именно этот шаг сделал систему переносимой между разными машинами. И уже из этого решения выросли <b>Linux</b>, <b>macOS</b> и <b>Android</b>, а архитектура Unix до сих пор лежит в основе большинства современных ОС.</p><p>До последнего считалось, что <b>оригинальная V4 утеряна</b> — в архивах сохранились лишь обрывки кода и фрагменты мануалов.</p><p>Если лента окажется полной, это закроет огромный пробел в истории вычислительной техники.</p><h2>Проблема «цифровой археологии»</h2><p>Ленты 70-х часто страдают от <b>деградации оксидного слоя</b> и «осыпания» носителя. Иногда их приходится буквально запекать при низкой температуре, чтобы стабилизировать материал перед чтением.</p><p>Кроме того, формат данных может быть уникальным — в те годы каждый разработчик использовал свои схемы записи.</p><h2>Почему Unix из Юты — особенный</h2><p>В 1970-х Юта была одним из ключевых узлов ARPANET и первых университетов, получивших Unix по исследовательской лицензии Bell Labs. Местные студенты и инженеры активно модифицировали систему.</p><p>Именно из таких экспериментов, например, позже выросли BSD и многие современные утилиты.</p><h2>Что дальше</h2><p>Эксперты из Computer History Museum планируют оцифровать ленту и, при возможности, опубликовать исходники для исследователей.</p><p>Если восстановление удастся, это будет <b>самое значимое возвращение утерянного программного кода за последние десятилетия</b> — своеобразная «цифровая археология» уровня открытия древнего манускрипта.</p>]]></content:encoded>
    </item>
    <item>
      <title>OpenAI выпустила Sora на Android. Функция Cameo больше не эксклюзив iPhone</title>
      <link>https://tproger.ru/news/openai-vypustila-sora-na-android--funkciya-cameo-bolwe-ne-eksklyuziv-iphone</link>
      <comments>https://tproger.ru/news/openai-vypustila-sora-na-android--funkciya-cameo-bolwe-ne-eksklyuziv-iphone?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Булат Яббаров]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/openai-vypustila-sora-na-android--funkciya-cameo-bolwe-ne-eksklyuziv-iphone</guid>
      <description><![CDATA[<p>OpenAI выпустила Sora для Android. Приложение уже в Google Play, Cameo теперь работает и с анимированными героями, не только с людьми</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/openai-vypustila-sora-na-android--funkciya-cameo-bolwe-ne-eksklyuziv-iphone">OpenAI выпустила Sora на Android. Функция Cameo больше не эксклюзив iPhone</a>»</p>]]></description>
      <category><![CDATA[Android]]></category>
      <category><![CDATA[Google]]></category>
      <category><![CDATA[Искусственный интеллект]]></category>
      <category><![CDATA[iOS]]></category>
      <category><![CDATA[OpenAI]]></category>
      <category><![CDATA[Приложение]]></category>
      <category><![CDATA[Google Play]]></category>
      <category><![CDATA[Sora]]></category>
      <category><![CDATA[iPhone]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Wed, 05 Nov 2025 10:01:35 GMT</pubDate>
      <content:encoded><![CDATA[<p>OpenAI расширяет доступ к своему ИИ-генератору видео Sora. Теперь приложение <a href="https://play.google.com/store/apps/details?id=com.openai.sora&amp;hl=en">доступно</a> и Android-пользователям.</p><p><a href="https://play.google.com/store/apps/details?id=com.openai.sora&amp;hl=en">Скачать</a> его уже можно в <b>Google Play</b>, но пока только в <b>США</b>, <b>Канаде</b>, <b>Японии</b> и <b>Южной Корее</b>. Остальные регионы (включая <b>Европу</b>) получат доступ позже.</p><h2>Что умеет Sora на Android</h2><p>Функционал полностью совпадает с веб- и iOS-версиями:</p><ul><li>создание коротких видеороликов по текстовым описаниям;</li><li>настройка стиля, атмосферы и эффектов;</li><li>генерация реалистичных сцен и персонажей.</li></ul><p>Главное обновление — <b>функция Cameo</b>, теперь умеющая работать не только с людьми, но и с анимированными героями.</p><p>Этот апдейт позволяет создавать ролики, где <b>реальные и вымышленные персонажи появляются в одном кадре</b>.</p><figure><img src="https://media.tproger.ru/user-uploads/111041/2025-11-05/bc0a06b6-6e55-493d-870b-ff5f607286ae.jpeg" alt="" /></figure><h2>Как получить доступ</h2><p>Sora 2 пока работает по <b>приглашениям</b>, но OpenAI постепенно открывает вход новым пользователям. Компания обещает, что <b>в ближайшие недели доступ станет шире</b>.</p><p>Таким образом, Android-пользователи наконец-то дождались релиза. А также того, что Cameo больше не эксклюзив iPhone.</p>]]></content:encoded>
    </item>
    <item>
      <title>Epic добилась своего: Google откроет Android для сторонних магазинов и снизит комиссию до 9%</title>
      <link>https://tproger.ru/news/epic-dobilas-svoego--google-otkroet-android-dlya-storonnih-magazinov-i-snizit-komissiyu-do-9-</link>
      <comments>https://tproger.ru/news/epic-dobilas-svoego--google-otkroet-android-dlya-storonnih-magazinov-i-snizit-komissiyu-do-9-?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Булат Яббаров]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/epic-dobilas-svoego--google-otkroet-android-dlya-storonnih-magazinov-i-snizit-komissiyu-do-9-</guid>
      <description><![CDATA[<p>Epic победила Google: Android откроют для сторонних магазинов, а комиссии снизят до 9–20%. Изменения вступят в силу по всему миру</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/epic-dobilas-svoego--google-otkroet-android-dlya-storonnih-magazinov-i-snizit-komissiyu-do-9-">Epic добилась своего: Google откроет Android для сторонних магазинов и снизит комиссию до 9%</a>»</p>]]></description>
      <category><![CDATA[Android]]></category>
      <category><![CDATA[Apple]]></category>
      <category><![CDATA[Безопасность]]></category>
      <category><![CDATA[Google]]></category>
      <category><![CDATA[Epic Games]]></category>
      <category><![CDATA[Google Play]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Wed, 05 Nov 2025 06:33:07 GMT</pubDate>
      <content:encoded><![CDATA[<p>Историческая развязка в деле <i>Epic Games</i> против <i>Google</i>: компании <a href="https://www.theverge.com/policy/813991/epic-google-proposed-settlement">пришли</a> к мировому соглашению, которое может радикально изменить Android-экосистему.</p><p>Если суд одобрит условия, <b>Google обязуется открыть Android для сторонних магазинов приложений и снизить комиссии для разработчиков до 9–20%</b>. Причем изменения вступят в силу <b>по всему миру</b>.</p><h2>Что изменится</h2><ul><li>Разработчики смогут размещать <b>альтернативные магазины прямо в Google Play</b>.</li><li>Пользователи — <b>устанавливать их «в один клик»</b> без предупреждений и «пугающих экранов».</li><li>Комиссия снизится до <b>9% для простых транзакций</b> и <b>20% для игровых покупок с преимуществами</b>.</li><li>В приложениях появятся <b>альтернативные платежные системы</b> — рядом с Google Play Billing, с возможностью выставлять разные цены.</li></ul><p>Эти правила будут действовать <b>до июня 2032 года</b>.</p><h2>Что говорят участники</h2><p><b>Самир Самат</b>, <i>президент Android:</i></p><blockquote>«Мы расширяем выбор для разработчиков и пользователей, снижаем комиссии и усиливаем конкуренцию — при этом сохраняя безопасность».</blockquote><p><b>Тим Суини</b>, <i>CEO Epic Games:</i></p><blockquote>«Это возвращение Android к его изначальной идее — открытой платформе. В отличие от Apple, Google делает реальный шаг к честной конкуренции».</blockquote><h2>Почему это важно</h2><p>До этого суд уже обязал Google разрешить установку сторонних магазинов, но только в США и на три года. Теперь — <b>глобально и надолго</b>.</p><p>Для разработчиков это значит:</p><ul><li>меньше комиссий,</li><li>больше свободы,</li><li>и шанс строить свои экосистемы без риска блокировки.</li></ul><p>Если суд одобрит сделку, Android наконец станет тем, чем его когда-то задумывали — <b>по-настоящему открытой платформой</b>.</p>]]></content:encoded>
    </item>
    <item>
      <title>Исследование: Android-смартфоны оказались лучше защищены от мошенников, чем iPhone</title>
      <link>https://tproger.ru/news/issledovanie--android-smartfony-okazalis-luchwe-zashhishheny-ot-mowennikov--chem-iphone</link>
      <comments>https://tproger.ru/news/issledovanie--android-smartfony-okazalis-luchwe-zashhishheny-ot-mowennikov--chem-iphone?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Булат Яббаров]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/issledovanie--android-smartfony-okazalis-luchwe-zashhishheny-ot-mowennikov--chem-iphone</guid>
      <description><![CDATA[<p>Исследование YouGov показало: Android лучше защищен от спама и фишинга, чем iPhone. Владельцы iPhone получают больше мошеннических SMS</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/issledovanie--android-smartfony-okazalis-luchwe-zashhishheny-ot-mowennikov--chem-iphone">Исследование: Android-смартфоны оказались лучше защищены от мошенников, чем iPhone</a>»</p>]]></description>
      <category><![CDATA[Android]]></category>
      <category><![CDATA[Опрос]]></category>
      <category><![CDATA[Google]]></category>
      <category><![CDATA[Samsung]]></category>
      <category><![CDATA[Смартфоны]]></category>
      <category><![CDATA[iPhone]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Fri, 31 Oct 2025 05:51:58 GMT</pubDate>
      <content:encoded><![CDATA[<p>Согласно <a href="https://security.googleblog.com/2025/10/how-android-protects-you-from-scams.html">исследованию</a> компании <b>YouGov</b>, пользователи <b>Android</b> реже сталкиваются с телефонным и SMS-мошенничеством, чем владельцы <b>iPhone</b>.</p><p>Исследование охватило <b>5000 пользователей смартфонов</b> из США, Индии и Бразилии. Его результаты показали, что владельцы iPhone <b>на 65% чаще</b> сообщают о получении <b>трех и более мошеннических сообщений в неделю</b>, чем пользователи Android.</p><p>При этом владельцы Android <b>на 58% чаще</b> заявляют, что <b>не получали ни одного</b> такого сообщения за неделю до опроса.</p><h2>Android эффективнее блокирует фишинг и спам</h2><p>По данным YouGov, пользователи Android также <b>на 20% чаще</b> оценивают встроенные механизмы защиты от мошенников как «очень эффективные» или «чрезвычайно эффективные».</p><p>Особенно заметен разрыв между владельцами <b>Pixel</b> и <b>iPhone</b>:</p><ul><li>владельцы Pixel <b>на 96% чаще</b>, чем пользователи iPhone, сообщали об <b>отсутствии мошеннических SMS</b>;</li><li>владельцы iPhone <b>на 136% чаще</b> говорили, что получают <b>большой объем спама</b>;</li><li>и <b>на 150% чаще</b> заявляли, что <b>их смартфон не справляется</b> с защитой от мобильного мошенничества.</li></ul><figure><img src="https://media.tproger.ru/user-uploads/111041/2025-10-31/a7c3d502-3d10-447c-8753-ce6f3a85035b.jpeg" alt="" /></figure><h2>Почему Android впереди</h2><p>Эксперты также провели отдельный анализ встроенных защитных функций сразу четырех смартфонов: <b>Pixel 10 Pro</b>, <b>iPhone 17 Pro</b>, <b>Samsung Galaxy Z Fold7</b> и <b>Motorola Razr+ 2025</b>.</p><p>Результат оказался неожиданным — <b>iPhone занял последнее место</b> по количеству и эффективности встроенных антифрод-механизмов.</p><p>Главные преимущества Android:</p><ul><li><b>распознавание мошеннических звонков и сообщений в реальном времени</b> с помощью встроенного ИИ;</li><li><b>автоматическая фильтрация SMS-спама и фишинговых ссылок</b> в Google Messages;</li><li>функция <b>Call Screen</b>, которая может сама отвечать на звонок и проверять собеседника;</li><li>защита от «социальной инженерии» во время разговора — Android блокирует опасные действия (например, установку подозрительных приложений).</li></ul>]]></content:encoded>
    </item>
    <item>
      <title>Apple выпустила Swift SDK для написания Android-приложений — спустя 11 лет после релиза языка</title>
      <link>https://tproger.ru/news/apple-vypustila-swift-sdk-dlya-napisaniya-android-prilozhenij---spustya-11-let-posle-reliza-yazyka</link>
      <comments>https://tproger.ru/news/apple-vypustila-swift-sdk-dlya-napisaniya-android-prilozhenij---spustya-11-let-posle-reliza-yazyka?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Булат Яббаров]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/apple-vypustila-swift-sdk-dlya-napisaniya-android-prilozhenij---spustya-11-let-posle-reliza-yazyka</guid>
      <description><![CDATA[<p>Apple выпустила Swift SDK для Android — теперь на Swift можно писать нативные Android-приложения и переносить код между платформами</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/apple-vypustila-swift-sdk-dlya-napisaniya-android-prilozhenij---spustya-11-let-posle-reliza-yazyka">Apple выпустила Swift SDK для написания Android-приложений — спустя 11 лет после релиза языка</a>»</p>]]></description>
      <category><![CDATA[Java]]></category>
      <category><![CDATA[Linux]]></category>
      <category><![CDATA[Android]]></category>
      <category><![CDATA[Apple]]></category>
      <category><![CDATA[Windows]]></category>
      <category><![CDATA[iOS]]></category>
      <category><![CDATA[Работа]]></category>
      <category><![CDATA[Swift]]></category>
      <category><![CDATA[Kotlin]]></category>
      <category><![CDATA[macOS]]></category>
      <category><![CDATA[Objective-C]]></category>
      <category><![CDATA[Flutter]]></category>
      <category><![CDATA[iPhone]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Mon, 27 Oct 2025 04:06:16 GMT</pubDate>
      <content:encoded><![CDATA[<p>Apple неожиданно открыла новую страницу в истории Swift.</p><p>Компания <a href="https://www.swift.org/blog/nightly-swift-sdk-for-android/">представила</a> <b>официальный Swift SDK для Android</b>, позволяющий писать нативные Android-приложения на фирменном языке, изначально созданном для iOS и macOS.</p><h2>От iPhone до Android</h2><p>Swift появился в 2014 году как альтернатива Objective-C — более безопасный, современный и лаконичный язык для экосистемы Apple.</p><p>За 11 лет он вырос из «внутреннего» инструмента в многофункциональную платформу, на которой создают <b>облачные сервисы, десктопные приложения для Windows и даже прошивки для микроконтроллеров</b>.</p><p>Теперь Swift впервые официально выходит за пределы «яблочной экосистемы. Превью-версия SDK для Android доступна уже сегодня — в составе Swift-инсталлятора для Windows или отдельно для macOS и Linux.</p><figure><img src="https://media.tproger.ru/user-uploads/111041/2025-10-27/9d4f131a-7f10-47c1-a75b-3180cfe12892.jpeg" alt="" /></figure><h2>Как это работает</h2><p>Новый SDK — результат многомесячной работы <b>Swift Android Workgroup</b>, открытого сообщества, куда может присоединиться любой разработчик. С его помощью можно:</p><ul><li>собирать <b>нативные Android-приложения</b> на Swift;</li><li><b>переносить существующие Swift-пакеты</b> — более 25% уже совместимы с Android;</li><li><b>интегрировать Swift-код с Java</b> через проект <b>swift-java</b>, автоматически генерирующий безопасные биндинги между языками.</li></ul><p>Apple <a href="https://www.swift.org/documentation/articles/swift-sdk-for-android-getting-started.html">опубликовала</a> подробное руководство <i>«Getting Started»</i> и примеры кода, демонстрирующие полный цикл разработки Android-приложений на Swift.</p><h2>Что это значит для экосистемы</h2><p>Релиз открывает дорогу к кроссплатформенным приложениям без использования Flutter, Kotlin Multiplatform или React Native.</p><p>Теперь компании смогут писать бизнес-логику один раз на Swift и использовать ее и в iOS-, и в Android-версиях.</p><p>Эксперты отмечают, что шаг Apple может <b>снизить барьеры между мобильными экосистемами</b> и ускорить развитие open-source сообщества Swift.</p><h2>Что дальше</h2><p>По словам участников проекта, впереди — создание полноценного Android-Toolchain, улучшение совместимости со средами разработки и официальное внедрение CI-сборок.</p><p>Разработчики уже готовят документ с видением будущего Swift на Android, который определит приоритеты и стратегию развития.</p><p><i>«Swift вырос из языка для iOS в универсальный инструмент для всего программного мира. Теперь он будет жить и в Android-экосистеме»</i>, — говорится в сообщении разработчиков.</p>]]></content:encoded>
    </item>
    <item>
      <title>Какие приложения установить на Windows и macOS</title>
      <link>https://tproger.ru/articles/kakie-prilozheniya-ustanovit-na-windows-i-macos</link>
      <comments>https://tproger.ru/articles/kakie-prilozheniya-ustanovit-na-windows-i-macos?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Валерия Турчак]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/kakie-prilozheniya-ustanovit-na-windows-i-macos</guid>
      <description><![CDATA[<p>Список разбит по категориям: от браузеров и гейминга до утилит безопасности и инструментов для продуктивности.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/kakie-prilozheniya-ustanovit-na-windows-i-macos">Какие приложения установить на Windows и macOS</a>»</p>]]></description>
      <category><![CDATA[API]]></category>
      <category><![CDATA[Linux]]></category>
      <category><![CDATA[Android]]></category>
      <category><![CDATA[Инструменты]]></category>
      <category><![CDATA[Git]]></category>
      <category><![CDATA[Apple]]></category>
      <category><![CDATA[Hardware]]></category>
      <category><![CDATA[Безопасность]]></category>
      <category><![CDATA[Производительность]]></category>
      <category><![CDATA[Практика]]></category>
      <category><![CDATA[Google]]></category>
      <category><![CDATA[.NET]]></category>
      <category><![CDATA[Браузеры]]></category>
      <category><![CDATA[Windows]]></category>
      <category><![CDATA[iOS]]></category>
      <category><![CDATA[Slack]]></category>
      <category><![CDATA[Работа]]></category>
      <category><![CDATA[Microsoft]]></category>
      <category><![CDATA[Tor]]></category>
      <category><![CDATA[Windows 10]]></category>
      <category><![CDATA[Google Chrome]]></category>
      <category><![CDATA[GitHub]]></category>
      <category><![CDATA[Боты]]></category>
      <category><![CDATA[Базы данных]]></category>
      <category><![CDATA[Управление проектами]]></category>
      <category><![CDATA[Rust]]></category>
      <category><![CDATA[Дизайн интерфейсов и UX]]></category>
      <category><![CDATA[HR]]></category>
      <category><![CDATA[VPN]]></category>
      <category><![CDATA[Telegram]]></category>
      <category><![CDATA[Xbox]]></category>
      <category><![CDATA[GitLab]]></category>
      <category><![CDATA[Сервисы]]></category>
      <category><![CDATA[Docker]]></category>
      <category><![CDATA[macOS]]></category>
      <category><![CDATA[Для продвинутых]]></category>
      <category><![CDATA[Intel]]></category>
      <category><![CDATA[MIT]]></category>
      <category><![CDATA[Adobe]]></category>
      <category><![CDATA[Firefox]]></category>
      <category><![CDATA[IBM]]></category>
      <category><![CDATA[Mozilla]]></category>
      <category><![CDATA[Avast]]></category>
      <category><![CDATA[Фронтенд]]></category>
      <category><![CDATA[NVIDIA]]></category>
      <category><![CDATA[Маркетинг]]></category>
      <category><![CDATA[QA]]></category>
      <category><![CDATA[Мессенджер]]></category>
      <category><![CDATA[AMD]]></category>
      <category><![CDATA[YouTube]]></category>
      <category><![CDATA[Epic Games]]></category>
      <category><![CDATA[Игра]]></category>
      <category><![CDATA[Приложение]]></category>
      <category><![CDATA[Бета]]></category>
      <category><![CDATA[Safari]]></category>
      <category><![CDATA[Взлом]]></category>
      <category><![CDATA[PlayStation]]></category>
      <category><![CDATA[Microsoft Edge]]></category>
      <category><![CDATA[Discord]]></category>
      <category><![CDATA[Сервер]]></category>
      <category><![CDATA[RPA]]></category>
      <category><![CDATA[Дизайн]]></category>
      <category><![CDATA[Figma]]></category>
      <category><![CDATA[Графы]]></category>
      <category><![CDATA[Markdown]]></category>
      <category><![CDATA[Бизнес]]></category>
      <category><![CDATA[Notion]]></category>
      <category><![CDATA[Steam]]></category>
      <category><![CDATA[GPU]]></category>
      <category><![CDATA[iPhone]]></category>
      <category><![CDATA[MacBook]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Sun, 26 Oct 2025 14:00:03 GMT</pubDate>
      <content:encoded><![CDATA[<p>Итак, вы только что настроили новый компьютер. Операционная система установлена, драйверы обновлены, и теперь пора заняться самым интересным — установкой программ. Но с чего начать? Какие приложения действительно необходимы, а какие просто занимают место?</p><p>Редакция Tproger сделала и адаптировала <a href="https://www.techspot.com/article/2974-desktop-software-essentials/">перевод подборки  программ для Windows и macOS</a>. Здесь вы найдёте проверенные временем решения для работы, развлечений и повседневных задач. Мы сосредоточились на бесплатных и условно-бесплатных приложениях с отличной репутацией, которые решают реальные задачи без навязывания ненужных функций.</p><p>Список разбит по категориям: от браузеров и гейминга до утилит безопасности и инструментов для продуктивности.</p><p>Неважно, опытный вы пользователь или новичок — здесь найдётся что-то полезное для каждого.</p><h2>Браузеры</h2><p>Браузер — это, пожалуй, самое важное приложение на вашем компьютере. Именно через него проходит большая часть вашей цифровой жизни: работа, развлечения, коммуникации. Выбор браузера влияет не только на скорость загрузки страниц, но и на конфиденциальность, безопасность и удобство работы.</p><ul><li><b>Большинство пользователей:</b> Chrome, Edge или Safari</li><li><b>Защита приватности: </b>Firefox, Brave, Ungoogled Chromium</li><li><b>Опытные пользователи:</b> Vivaldi</li><li><b>Максимальная анонимность: </b>Tor Browser</li></ul><h3>Google Chrome</h3><p>Chrome остаётся самым популярным браузером в мире — и не просто так. Он быстрый, стабильный и отлично интегрируется с экосистемой Google. Огромная библиотека расширений из Chrome Web Store позволяет настроить браузер под любые задачи. Синхронизация между устройствами работает безупречно: вкладки, пароли, закладки и история всегда под рукой.</p><p>Минус один, но существенный: Chrome прожорлив. Если у вас открыто больше десятка вкладок, он может съесть несколько гигабайт оперативной памяти. На компьютерах с 8 ГБ RAM и меньше это становится проблемой.</p><h3>Mozilla Firefox</h3><p>Firefox — это выбор тех, кто ценит приватность и открытость. Mozilla не зарабатывает на продаже ваших данных, а сам браузер активно развивается сообществом. Встроенные инструменты защиты от трекинга работают из коробки, блокируя рекламные сети и скрипты слежения.</p><p>По скорости Firefox не уступает Chrome, а по потреблению памяти даже выигрывает. Библиотека расширений чуть меньше, чем у Chrome, но все основные инструменты доступны.</p><h3>Microsoft Edge</h3><p>Edge построен на том же движке Chromium, что и Chrome, но при этом лучше оптимизирован для Windows. Microsoft вложилась в производительность: браузер работает быстро, потребляет меньше ресурсов и отлично интегрируется с системой.</p><p>Особенно приятны функции вроде Collections (коллекции вкладок для организации исследований), режим чтения и встроенный скриншотер. Edge поддерживает все расширения Chrome, так что переход безболезненный.</p><h3>Brave</h3><p>Brave — это Chrome на стероидах приватности. Браузер блокирует рекламу и трекеры по умолчанию, что делает сёрфинг быстрее и безопаснее. При этом он полностью совместим с расширениями Chrome.</p><p>Есть интересная фишка: Brave Rewards позволяет зарабатывать криптовалюту за просмотр приватной рекламы (если захотите её включить). Спорная механика, но как опция — почему нет. Для тех, кто хочет Chrome без Google и с упором на приватность, Brave — отличный выбор.</p><h3>Safari (только macOS)</h3><p>Если у вас Mac, Safari заслуживает внимания. Это самый энергоэффективный браузер для macOS: на MacBook он даёт ощутимо больше автономности по сравнению с Chrome или Firefox. Интеграция с экосистемой Apple безупречна: Handoff, синхронизация через iCloud, Reading List, автозаполнение паролей.</p><p>Safari быстрый, безопасный и не перегружен функциями. Единственный минус — библиотека расширений заметно скромнее, чем у конкурентов. Но для большинства задач базового функционала хватает.</p><h3>Ungoogled Chromium</h3><p>Для ультраосторожных Ungoogled Chromium удаляет всё отслеживание и сервисы Google — но вам придётся настраивать всё самостоятельно, так как в нём нет автообновлений или встроенной синхронизации.</p><p>Для максимально осторожных пользователей — это Chrome, из которого убрали всю телеметрию Google, отслеживание и облачные сервисы. Браузер работает, но требует ручной настройки: отсутствуют автоматические обновления и встроенная синхронизация между устройствами.</p><h3>Tor Browser</h3><p>Выводя приватность на следующий уровень, Tor Browser маршрутизирует ваш трафик через сеть Tor, анонимизируя ваш IP и многократно шифруя соединение. Он медленнее по задумке, но идеален, если ваш приоритет — максимальная анонимность, а не скорость или удобство.</p><h3>Vivaldi</h3><p>Vivaldi — браузер мечты для тех, кто хочет полного контроля. Стекирование вкладок, тайлинг, кастомные горячие клавиши, встроенная почта и календарь, веб-панели — это полноценный десктопный опыт внутри браузера. Хотите боковую панель браузера, открывающую ваши заметки, RSS-ленты или любой нужный сайт? Vivaldi это умеет.</p><h3>Arc</h3><p>Наконец, Arc — когда-то новичок на рынке браузеров, нацеленный на переосмысление UX: замена традиционной панели вкладок на боковую панель, акцент на веб-приложениях, интегрированные разделённые виды и easels для заметок и доски. К сожалению, компания за Arc прекратила разработку, чтобы полностью переключиться на ИИ с новым браузером, который сейчас в закрытой бета-версии.</p><h2>Управление паролями</h2><ul><li><b>Лучший бесплатный выбор:</b> Bitwarden</li><li><b>Также отлично:</b> 1Password, Dashlane, KeePass</li></ul><p>Миллионы людей продолжают использовать одни и те же слабые пароли на всех сайтах — или, что ещё хуже, держатся за классику вроде «123456». Даже сильные пароли мало помогают, если их повторяют или забывают. Конечно, большинство браузеров предлагают встроенные менеджеры паролей, но они ограничены, привязаны к одному браузеру и менее безопасны, чем специализированные решения.</p><p>Также не будем забывать о passkeys (ключах доступа). Если говорить практически, можно сказать, что passkeys объединяют концепцию пароля и двухфакторной аутентификации (2FA) в одно плавное действие, но гораздо безопаснее и гораздо менее раздражающе.</p><h3>Bitwarden</h3><p>Полностью опенсорсный, зашифрованный и щедрый даже в бесплатной версии. Вы получаете неограниченное количество паролей, синхронизацию между устройствами и приложения для всех платформ. Премиум ($10/год) добавляет безопасный обмен файлами и инструменты 2FA. Также есть доступные семейные и командные планы.</p><h3>1Password</h3><p>Премиум-решение с отполированным интерфейсом, сильной кроссплатформенной поддержкой и отличными функциями вроде Travel Mode (режим путешествий) и полной интеграцией passkeys.</p><h3>Dashlane</h3><p>Предлагает мониторинг даркнета, интеграцию VPN и плавный пользовательский опыт. Есть бесплатный тариф с ограниченными функциями, но премиум-версия конкурентоспособна.</p><h3>KeePassXC</h3><p>Отличная оффлайн-альтернатива, если хотите полного контроля и не против ручной синхронизации (или использования чего-то вроде Syncthing или Dropbox для синхронизации базы данных).</p><p>Пропустите LastPass — когда-то фаворит, он упал в немилость после повторных утечек безопасности. Для душевного спокойствия лучше поискать в другом месте.</p><h2>Продвинутые утилиты и дополнения к ОС</h2><ul><li><b>Поиск + лаунчеры:</b> Everything или Wox (Windows), Alfred или Raycast (macOS)</li><li><b>Пакетные менеджеры: </b>WinGet, Homebrew (macOS)</li><li><b>Для пользователей Windows:</b> PowerToys</li><li><b>Для пользователей Mac: </b>Rectangle</li><li><b>История буфера обмена: </b>ClipClip, Flycut (macOS)</li><li><b>Скриншоты + аннотации: </b>Monosnap</li></ul><h3>Winget</h3><p><b></b>Официальный менеджер пакетов Microsoft, встроенный в Windows 10 и 11. Работает похоже на Chocolatey, но разработан и поддерживается Microsoft. Homebrew — самый популярный менеджер пакетов для macOS. Позволяет быстро устанавливать, обновлять и управлять приложениями и CLI-инструментами с помощью команд в терминале.</p><h3>Everything</h3><p>Что касается поиска, Everything остаётся золотым стандартом сверхбыстрого поиска по именам файлов в Windows. Он индексирует диски за секунды и выдаёт почти мгновенные результаты с минимальной нагрузкой на систему. Если нужен функционал шире базового поиска, Wox использует движок Everything и добавляет мощные возможности лаунчера: поиск файлов, запуск приложений, калькулятор, перевод текста и расширения через плагины. Получается более гибкий опыт в духе Spotlight для Windows.</p><h3>Command Palette/Alfred/Raycast</h3><p>В который раз Microsoft не смогла существенно улучшить встроенный поиск Windows, хотя <b>Command Palette</b> в PowerToys даёт неплохой компромисс для тех, кто не хочет ставить сторонние утилиты.</p><p>На macOS <b>Alfred</b> по-прежнему главный лаунчер и утилита поиска. Он быстрый, интуитивный и в бесплатной версии включает историю буфера и настраиваемые поиски; расширенная автоматизация и «воркфлоу» доступны в Powerpack.</p><p>Тем, кто хочет современную облачно-интегрированную альтернативу с готовыми расширениями и встроенной поддержкой Notion, GitHub и Slack, стоит присмотреться к <b>Raycast</b> — это стильный, дружественный к разработчикам вариант, который стремительно набирает популярность.</p><h3>Менеджеры буфера обмена</h3><p>Они позволяют возвращаться к ранее скопированному — тексту, изображениям, ссылкам — и сильно ускоряют рутинные операции.</p><p>В Windows встроенная история буфера (Win + V) кое-как выручает, но продвинутым пользователям обычно хочется большего. В числе бесплатных рекомендаций — <b>ClipClip</b> для Windows и <b>Flycut</b> для macOS.</p><p>Когда речь о скриншотах и аннотациях, штатные инструменты macOS и Windows заметно выросли. Но многим всё равно удобнее сторонние решения. Нам по-прежнему нравится <b>Monosnap</b> за простоту и возможность мгновенно заливать снимки в облако для шаринга (и это бесплатно).</p><p><b>PowerToys</b> — набор полезных утилит от Microsoft для продвинутых пользователей Windows, повышающих продуктивность и упрощающих рабочие процессы. Среди инструментов: FancyZones для продвинутого раскладывания окон, PowerRename для пакетного переименования, Keyboard Manager для ремапинга клавиш, универсальный color picker и другие.</p><p><b>Rectangle</b> и <b>Magnet </b>— два самых популярных приложения на macOS для закрепления окон: быстрые выравнивание и ресайз по хоткеям или перетаскиванием, примерно как по умолчанию в Windows. Пользователям, пришедшим с Windows и скучающим по системному снапингу, одно из них жизненно необходимо.</p><p>Широко используемая альтернатива в Windows — <b>FancyZones</b> (часть PowerToys), предлагающая продвинутое управление окнами: настраиваемые сетки, зоны привязки и поддержку нескольких мониторов — поэтому это фаворит пауэр-пользователей на Windows.</p><h2>Для рутины и создания проектов</h2><ul><li><b>Бесплатные инструменты: </b>FreeOffice, LibreOffice и WPS Office</li><li>Microsoft Office за единовременную плату $49, Office 2024 — $129</li><li><b>Заметки: </b>Notion, OneNote, Obsidian</li><li><b>Бесплатный PDF-редактор: </b>PDFsam</li><li><b>Почтовые клиенты:</b> Thunderbird, eM Client</li></ul><p>Независимо от того, пишете ли вы тексты, планируете проект, кодите или наводите порядок в цифровой жизни, правильные инструменты решают многое. Сегодня выбор топовых приложений для продуктивности и разработки — часто бесплатных — лучше, чем когда-либо.</p><p><b>Microsoft Office</b> остаётся отраслевым стандартом для профессиональной продуктивности. Подписка Microsoft 365 открывает доступ к Word, Excel, PowerPoint, Outlook и включает 1 ТБ облачного хранилища.</p><p>Среди бесплатных альтернатив LibreOffice — мощный open-source комплект с сильным сообществом (хотя интерфейс некоторым кажется старомодным). Если нужна внешне более майкрософтовская альтернатива, попробуйте<b> FreeOffice </b>или <b>WPS Office Free</b> — у них хорошая совместимость.</p><p>На macOS <b>Pages</b>, <b>Numbers</b> и <b>Keynote</b> предустановлены и более чем достаточны для большинства задач, особенно если вы в экосистеме Apple.</p><h3>Знания и ведение заметок</h3><p><b>Notion</b> стал универсальной платформой организации: заметки, базы данных, to-do, управление проектами, создания совместных рабочих пространств. Если нужны более локальные заметки с синхронизацией между устройствами и поддержкой Markdown, <b>Obsidian</b> — любимец студентов и исследователей.</p><p>Для быстрых кроссплатформенных заметок <b>OneNote</b> — крепкий бесплатный вариант от Microsoft. В качестве альтернатив — <b>Simplenote</b> или open-source <b>Joplin</b>.</p><p>Если вы занимаетесь академической работой и научными статьями, <b>Zotero</b> — отличный open-source менеджер источников с интеграцией в браузер и совместными коллекциями. <b>Milanote</b> предлагает визуальный подход к заметкам и планированию — идеально для креативных пользователей.</p><h3>Работа с PDF</h3><p>Хотя Adobe Acrobat остаётся премиальным редактором PDF, бесплатные альтернативы вроде <b>PDFsam</b> позволяют без усилий объединять, разбивать, редактировать и поворачивать страницы.</p><h2>Инструменты для дизайна и создания контента</h2><p>Для дизайна два выделяющихся приложения хорошо дополняют набор продуктивности. <b>Figma Desktop</b> — совместная платформа интерфейс-дизайна, широко используемая UI/UX-дизайнерами и фронтенд-разработчиками. Десктоп-версия работает быстрее, чем браузер, и лучше интегрируется с ОС — это удобно для сложных дизайн-систем и коллаборации в реальном времени.</p><p><b>Canva</b> с интуитивным drag-and-drop превосходно чувствует себя и как десктоп-приложение. Отлично подходит для быстрых графических материалов для соцсетей, маркетинга, постеров и презентаций. Благодаря тысячам шаблонов и совместной работе это фаворит как у профи, так и у новичков.</p><h2>Почтовые клиенты</h2><p>Если вы предпочитаете отдельный почтовый клиент, у <b>eM Client</b> много функций, бесплатный — до двух аккаунтов. <b>Mozilla</b> <b>Thunderbird</b> — мощная open-source альтернатива с удобной настраиваемостью, а <b>Mailbird</b> — вариант с упором на продуктивность для тех, кого не пугает подписка.</p><h2>Инструменты разработчика</h2><ul><li><b>Редакторы кода и текста:</b> VS Code, Cursor, Sublime Text</li><li><b>Система контроля версий:</b> SourceTree, GitHub Desktop</li><li><b>Контейнеры: </b>Docker</li><li><b>Локальные LLM: </b>Ollama</li><li><b>SFTP, загрузка файлов:</b> WinSCP, Forklift</li></ul><p>Для разработчиков <b>Visual Studio Code</b> — безусловный вариант. Бесплатный, лёгкий, но мощный, кроссплатформенный — тысячи расширений покрывают практически любой язык, фреймворк или инструмент. Набирающая популярность альтернатива — <b>Cursor</b>, редактор на базе VS Code с усиленной AI-помощью. Он подходит для связки с LLM: даёт inline-подсказки, генерирует код, рефакторит и позволяет редактировать кодовую базу.</p><p>При этом<b> Sublime Text </b>остаётся для скорости и простоты, а <b>Notepad++</b> — отличный лёгкий редактор для быстрых правок в Windows.</p><p>Для Git графические клиенты <b>SourceTree</b> и <b>SmartGit</b> дают понятный интерфейс для управления репозиториями на GitHub, GitLab и не только. <b>GitHub Desktop</b> раньше был простоват и не слишком хорош, но сейчас существенно прибавил — всё ещё простой для работы, но в хорошем смысле.</p><p>Для локальных окружений, API-тестирования или терминального воркфлоу инструментов — пруд пруди. Например, <b>Docker Desktop</b> стал стандартом для тех, кто собирает и запускает контейнеризированные приложения на разных платформах. Он упрощает настройку окружений и держит систему чистой.</p><p><b>Ollama</b> позволяет запускать большие языковые модели (LLM) локально с минимальной настройкой. Поддерживает модели вроде LLaMA, Mistral и другие open-weight альтернативы GPT, так что можно работать с ИИ прямо на своём компьютере без отправки данных в облако.</p><p>Если вы работаете с облачными хранилищами или SFTP, WinSCP (Windows) и ForkLift (macOS) — отличные клиенты с двухпанельным управлением файлами, синхронизацией и автоматизацией. На Mac также популярны <b>Commander One</b> и <b>Transmit</b> — у них есть встроенные подключения к удалённым и облачным путям.</p><h3>Безопасность</h3><p>И Windows, и macOS сегодня предлагают более чем достойную встроенную защиту. С защитой в реальном времени, интеграцией с файерволом и биометрией вроде <b>Windows Hello</b> и <b>Touch ID</b>. Для обычных пользователей, которые соблюдают гигиену безопасности: не скачивают сомнительное ПО, используют менеджеры паролей и включают 2FA — встроенной защиты часто хватает.</p><p>Для продвинутых пользователей есть дополнительные варианты.</p><p>Отличное первое дополнение — <b>Malwarebytes</b>. Это давний фаворит в обнаружении и удалении malware, adware и руткитов; бесплатная версия по-прежнему хороша для ручных сканов. В платной — защита в реальном времени без ощутимой просадки производительности.</p><p>Если не хочется ставить традиционный антивирус, есть достойные альтернативы. <b>Emsisoft Emergency Kit</b> — мощный портативный сканер, который можно запускать с флешки: идеально для редких глубоких сканов или лечения заражённых систем без установки чего-либо. Просто подключаете, когда нужно.</p><p>Ещё один отличный инструмент — <b>VirusTotal</b>: бесплатный веб-сервис, который проверяет файлы и URL через десятки антивирусных движков. Прежде чем открывать подозрительную загрузку, можно залить файл на VirusTotal.com или использовать их расширение для браузера, чтобы проверять ссылки в реальном времени. Быстро, просто и удобно для осторожных пользователей.</p><p>Мы не поклонники установки антивирусов на каждый компьютер и не полностью в курсе, какие сейчас показывают лучшие результаты. Тем не менее, <b>AV-Tes</b>t давно и регулярно оценивает популярные решения, поэтому советуем смотреть их свежие отчёты. В текущем списке высокооценённых — <b>Avast, BitDefender, ESET </b>и другие; многие из них предлагают бесплатные версии для пробы.</p><h3>Удалённый доступ и вспомогательные утилиты</h3><p><b>RustDesk</b> стал современным, ориентированным на приватность аналогом <b>TeamViewer</b>. Он с открытым исходным кодом, быстрый и работает кроссплатформенно.</p><p>Тем, кому нужны более устоявшиеся коммерческие решения, подойдёт <b>AnyDesk</b>, который остаётся лёгким и надёжным вариантом для личного и командного использования.</p><p>Превращение смартфона в пульт дистанционного управления компьютером бывает невероятно удобно — будь то презентации, потоковое видео или просто навигация с дивана.</p><p><b>Remote Mouse</b> — простой и эффективный способ эмулировать мышь и клавиатуру с телефона. Для более продвинутых сценариев можно использовать приложения вроде <b>Unified Remote.</b></p><h2>Редактирование изображений и видео</h2><ul><li><b>Профессиональный видеомонтаж:</b> DaVinci Resolve</li><li><b>Простой видеомонтаж: </b>CapCut</li><li><b>Редакторы изображений:</b> GIMP, PhotoDemon, Pixelmator Pro</li><li><b>Бесплатное улучшение изображений:</b> Upscayl</li><li><b>RAW-редактирование:</b> RawTherapee</li><li><b>Видеоконвертация:</b> HandBrake</li></ul><p>Если вам нужен бесплатный инструмент для редактирования изображений, <b>GIMP</b> — один из самых мощных вариантов. Он предоставляет профессиональные возможности, такие как слои, маски и настраиваемые плагины, что делает его идеальным для продвинутых пользователей. Если вы ищете более лёгкий редактор с чистым интерфейсом, стоит обратить внимание на <b>PhotoDemon</b>. Он работает как портативное приложение на Windows, поддерживает слои и редактирование — отличный выбор для быстрых правок или ретуши.</p><p>Если вы хотите увеличивать разрешение изображений без потери качества, <b>Upscayl</b> — мощный и бесплатный инструмент для апскейла. Он кроссплатформенный, и по нашим тестам показывает результаты на уровне платных решений вроде Topaz.</p><p>Для векторной графики — логотипы, иллюстрации — <b>Inkscape</b> является достойным open-source вариантом с полной поддержкой редактирования SVG. <b>Krita</b> — ещё один отличный бесплатный инструмент, особенно подходящий для цифровой живописи и художественного творчества.</p><p>Для редактирования RAW-фотографий, <b>Darktable</b> и <b>RawTherapee</b> — два высококлассных open-source аналога Adobe Lightroom. Их широко используют фотографы, которым нужна работа с изображениями без подписки.</p><p>Для простых GIF-анимаций <b>ScreenToGif</b> — удобная утилита, мгновенно записывающая область экрана и экспортирующая в GIF или другие форматы с оверлеями.</p><p>Среди платных фоторедакторов <b>Adobe Photoshop</b> остаётся лидером, но для macOS есть <b>Pixelmator Pro</b> — мощное приложение с разовой оплатой, а <b>Affinity Photo</b> предлагает профессиональные возможности по более доступной цене.</p><h3>Видеомонтаж и конвертация</h3><p><b>DaVinci Resolve</b> считается лучшим бесплатным профессиональным ПО. Его используют и энтузиасты, и профессионалы — от простого тримминга до цветокоррекции и сложного постпродакшена.</p><p><b>Shotcut</b> и <b>Kdenlive</b> — тоже сильные бесплатные варианты, предлагают более простой фукнционал с хорошим набором функций для новичков и продвинутых пользователей. <b>CapCut</b>, изначально мобильное приложение, теперь доступен на десктопе — идеально подходит для быстрых монтажей и роликов для соцсетей.</p><p>Для пользователей macOS <b>iMovie </b>предустановлен и остаётся надёжным вариантом для базовых видео. Если вам нужно просто конвертировать или сжимать видео в современные форматы, <b>HandBrake</b> — проверенное бесплатное решение с поддержкой и вариацией входных и выходных форматов.</p><p>Тем, кто ищет топовый профессиональный монтаж, подойдут <b>Adobe Premiere Pro</b> и<b> Final Cut Pro</b>, но там есть дорогая подписка и более высокий порог входа.</p><h2>Коммуникации и совместная работа</h2><ul><li><b>Для повседневной связи: </b>WhatsApp, Messenger и Zoom, если у вас нет FaceTime</li><li><b>Для приватности: </b>Signal</li><li><b>Для работы:</b> Slack, Teams</li><li><b>Для игр и общения: </b>Discord</li></ul><p>Выбор коммуникационных и мессенджерных приложений в первую очередь зависит от того, с кем вы общаетесь — с семьёй, друзьями, коллегами или игровым сообществом. Вот актуальная картина:</p><p>Для личной переписки <b>WhatsApp</b> и <b>Facebook Messenger</b> остаются самыми массовыми платформами по всему миру. У них есть десктопные клиенты и встроенное сквозное шифрование по умолчанию. <b>Telegram</b> также крайне популярен благодаря синхронизации между устройствами и поддержке крупных чатов. Пользователи Apple продолжают активно использовать <b>iMessage</b> для приватного, шифрованного общения в экосистеме Apple.</p><p>Из видеоконференций <b>Zoom</b> остаётся одним из лидеров для групповых звонков и онлайн-ивентов, предлагая локальные записи, демонстрацию экрана и комнаты (breakout rooms). Однако бесплатный тариф ограничивает 1:1 звонки 40 минутами, если не перейти на платный план. Zoom поддерживает сквозное шифрование, но при включении E2EE отключаются некоторые функции вроде облачной записи и комнат.</p><p><b>Google Meet</b> — отличный браузерный аналог без необходимости установки, который заметно улучшился по качеству и удобству использования. Многие компании применяют Meet в ежедневной работе и гибридных форматах. Если ваша организация использует Microsoft 365, скорее всего, вы работаете в <b>Microsoft Teams</b>, который уже заменил Skype на корпоративном уровне. Teams поддерживает большие созвоны, обмен файлами и глубоко интегрирован с Office. Сквозное шифрование доступно, но только для 1:1 звонков.</p><p><b>FaceTime</b> по-прежнему отличный для пользователей Apple, и благодаря новым обновлениям к звонку теперь могут присоединяться и пользователи Android/Windows по ссылке через браузер.</p><p>Когда приватность критична, <b>Signal</b> — один из лучших вариантов. Разработан некоммерческой организацией, бесплатен, open-source, без рекламы, использует надёжное сквозное шифрование для сообщений и звонков.</p><p>Для рабочих коммуникаций<b> Slack</b> и <b>Teams</b> продолжают использоваться в бизнес-среде. Бесплатный тариф Slack ограничивает историю 90 днями и звонки, но остаётся любимцем стартапов и малых команд благодаря интеграциям и ботам. <b>Cisco Webex</b> — также крепкий вариант, особенно популярен в корпоративной среде.</p><p>Если вы работаете с креативными командами, сообществами или геймерами, <b>Discord</b> стал явным лидером. Изначально созданный для игр, он превратился в полноценную коллаборативную платформу с текстом, голосом и видео, стримингом экрана и ботами для автоматизации. Многие комьюнити — и даже IT-компании — используют Discord как основной рабочий инструмент.</p><p>Для внутриигрового голосового чата <b>TeamSpeak </b>остаётся олдскульным достойным вариантом: можно использовать анонимно и получать полный контроль над сервером. Встроенный чат Steam лучше, чем раньше, и помогает в игровой координации, но большинство всё же выбирает Discord.</p><h2>Гейминг, моддинг и стриминг</h2><ul><li><b>Игровые платформы: </b>Steam, Epic Games, EA App, Ubisoft, GOG</li><li><b>Последние драйверы для GPU:</b> Nvidia GeForce, AMD Radeon, Intel Arc</li><li><b>Стриминг:</b> OBS Studio</li></ul><p><b>Steam</b> остаётся центром PC-игр. Это не только магазин, но и социальная платформа, лаунчер и площадка с модами, облачными сохранениями и встроенным стримингом. Регулярные распродажи, поддержка контроллеров и сообщества делают его обязательным для любого PC-геймера.</p><p>Не менее важно установить Epic <b>Games Store</b>. Хотя библиотека меньше, он регулярно раздаёт бесплатные игры, доступные любому с аккаунтом Epic. Это также must-have, если вы играете в Fortnite.</p><p>Помните: не все издатели размещают игры на Steam или Epic. Для тайтлов EA понадобится <b>EA App (ранее Origin)</b>, для Ubisoft — <b>Ubisoft Connect</b>, для Blizzard/Activision — <b>Battle.net</b>, а GOG Galaxy не только предлагает DRM-free классику, но и может агрегировать игры из других лаунчеров.</p><p>Некоторые сверхпопулярные игры распространяются отдельно: Minecraft (через Minecraft.net или Microsoft Store), Roblox, League of Legends и Valorant (через лаунчер Riot Games). Если вы новичок и ищете что-то лёгкое, можно начать с free-to-play тайтлов или классики вроде <b>Brutal Chess</b> или <b>GZDoom</b>.</p><p>Если вы играете с геймпадом, Windows поддерживает Xbox-контроллеры из коробки. PlayStation-контроллеры теперь тоже отлично работают: Steam через <b>Steam Input </b>поддерживает DualShock 4 и DualSense практически во всех играх. При необходимости глубокой кастомизации можно использовать DS4Windows, но большинству хватает возможностей Steam.</p><p>Если вас интересует моддинг, хороший менеджер модов время в этой жизни:</p><ul><li><b>Mod Organizer 2</b> — лучший для RPG Bethesda (Skyrim, Fallout).</li><li><b>Vortex (от Nexus Mods)</b> — дружелюбный к новичкам и поддерживает широкий перечень игр.</li></ul><p>Для записи геймплея или стриминга <b>Nvidia ShadowPlay</b> и <b>AMD Radeon ReLive</b> подходят для простых задач. Но для стриминга с вебкой, сценами, оверлеями или многосценовым продакшеном <b>OBS Studio</b> — безальтернативный лидер. Он бесплатный, open-source и подходит как новичкам, так и про-стримерам (Twitch, YouTube, Kick и т.д.). <b>SignalRGB</b> помогает синхронизировать весь RGB-зоопарк и задавать динамические эффекты.</p><h2>Мониторинг железа и разгон</h2><ul><li><b>Мониторинг: </b>CPU-Z, HWMonitor, HWiNFO64</li><li><b>Настройка и разгон:</b> Afterburner, FanControl, ThrottleStop, SignalRGB</li></ul><p>Одно из первых дел, которое стоит сделать после сборки ПК — убедиться, что компоненты соответствуют ожиданиям и работают корректно. К счастью, существует много инструментов, позволяющих мониторить, тестировать и настраивать железо.</p><p>Начать стоит с <b>CPU-Z</b> — классического бесплатного инструмента, показывающего информацию о CPU, материнской плате, оперативной памяти и других компонентах. Он также умеет запускать простой стресс-тест и бенчмарк для проверки стабильности.</p><p>Для более широкого мониторинга <b>HWMonitor</b> показывает температуры, напряжения и скорости вентиляторов в реальном времени. Если нужно ещё глубже и с более гибким интерфейсом — <b>HWiNFO64</b> считается одним из лучших: поддерживает логирование датчиков и интеграцию с оверлеями (например, RTSS или Rainmeter).</p><p>Чтобы проверить хранилище, <b>CrystalDiskMark</b> измеряет скорость чтения/записи SSD и HDD — это помогает понять, соответствует ли диск заявленным характеристикам. Глубже оценить здоровье накопителя можно в <b>Hard Disk Sentinel</b>, который анализирует SMART-данные, оценивает срок службы и предлагает ограниченный ремонт.</p><p>С точки зрения охлаждения, всё больше геймеров используют утилиты для настройки вентиляторов. <b>FanControl</b> — актуальный бесплатный фаворит: поддерживает сложные кривые оборотов, привязку к датчикам, и совместим с большинством современных материнских плат. На Mac одной из лучших утилит остаётся<b> Macs Fan Control.</b></p><p>Для настройки видеокарт долгое время стандартом был <b>MSI Afterburner</b> — для разгона, настройки вентиляторов и мониторинга с RTSS-оверлеем. Однако из-за замедления обновлений многие сегодня используют встроенные утилиты от <b>Nvidia (GeForce Experience/Control Panel)</b> и <b>AMD (Adrenalin Software)</b>.</p><p>Если вы меняете видеокарту или подозреваете проблемы с драйверами, обязательно используйте <b>Display Driver Uninstaller</b> (DDU) — он полностью очищает систему от старых драйверов перед переустановкой.</p><p>Если вы играете на ноутбуке или хотите снизить нагрев и повысить автономность, <b>ThrottleStop</b> остаётся одним из лучших инструментов для андервольта CPU и настройки энергопрофилей.</p><p>Тем, кто серьёзно подошёл к разгону CPU и GPU, пригодятся фирменные инструменты вроде <b>Intel XTU (для Intel) и AMD Ryzen Master</b> — они дают контроль над частотами, напряжениями и лимитами мощности.</p><h2>Управление файлами</h2><ul><li><b>Поиск больших файлов:</b> SpaceSniffer, WizTree, Disk Drill (macOS)</li><li><b>Поиск дубликатов: </b>dupeGuru</li><li><b>Архивы и ZIP: </b>PeaZip, The Unarchiver</li><li><b>Очистка: </b>BCUninstaller, CCleaner Portable, AppCleaner (macOS)</li></ul><p>Чтобы грамотно управлять файлами и освобождать место, нужно понимать, что именно занимает пространство. На Windows популярны <b>WinDirStat и WizTree </b>— быстрые бесплатные инструменты для визуализации диска. <b>SpaceSniffer</b> предоставляет динамическую схему.</p><p>На macOS — <b>GrandPerspective и Disk Drill </b>предлагают аналогичный функционал, а <b>DaisyDisk</b> — один из самых красивых платных вариантов с молниеносным сканированием.</p><p>Если дубликаты засоряют диск, <b>dupeGuru</b> (open-source) отлично справляется с поиском повторяющихся изображений и музыки, даже слегка изменённых.</p><p>Для пакетного переименования файлов (например, фоточек с камеры) существует гибкий <b>Bulk Rename Utility</b>. Если нужно что-то попроще: <b>PowerRename</b> из PowerToys (Windows) или встроенный инструмент в <b>Finder</b> (macOS) подходят большинству.</p><p>Встроенный <b>File Explorer</b> в Windows недавно получил вкладки и стал удобнее, но <b>Files</b> (open-source) — современная альтернатива с улучшенным UX. Кто-то ещё пользуется <b>Total Commander</b> или <b>Directory Opus</b>, благодаря расширяемости и скриптам, хотя новичкам они кажутся устаревшими. Для просмотра изображений по-прежнему незаменим <b>IrfanView</b>.</p><p>Для работы с архивами, если не устраивает встроенный ZIP-менеджер Windows, скачайте <b>7-Zip</b> или <b>PeaZip</b>. На Mac лучшим бесплатным инструментом остаётся <b>The Unarchiver</b>.</p><p>Для очистки системы важно выбирать надёжные утилиты. На Windows, <b>BCUninstaller (Bulk Crap Uninstaller)</b> — один из самых проверенных для удаления программ и их хвостов. <b>BleachBit</b> и <b>Wise Disk Cleaner</b> — безопасные альтернативы <b>CCleaner</b> (лучше использовать Portable-версию, так как стационарная испортила репутацию). На Mac <b>AppCleaner</b> всё ещё любим за полное удаление приложений без мусора.</p><p>Если вы организуете большую библиотеку медиа, стоит взглянуть на open-source <b>TagSpaces</b>, позволяющий тегировать файлы локально, без облака.</p><h2>Облачное хранилище и резервное копирование</h2><ul><li><b>Простая синхронизация: </b>Dropbox, Google Drive</li><li><b>Фото между устройствами:</b> Apple iCloud, Google Photos</li><li><b>Приватность: </b>pCloud, Proton Drive, Internxt</li><li><b>Полные бэкапы:</b> Backblaze, IDrive</li></ul><h3>Базовое облачное хранилище</h3><p><b>Dropbox</b> — один из самых простых в использовании, хотя бесплатных 2 ГБ мало.</p><p><b>
Google Drive</b> — 15 ГБ бесплатно, используется Gmail, Docs и Photos. Идеален для Android.</p><p><b>
OneDrive</b> — идёт в комплекте с Windows и Microsoft 365. 1 ТБ включён в большинство Office-планов. Хотя по скорости и интерфейсу уступает Dropbox/Google.</p><p><b>
iCloud Drive</b> — лучший выбор для пользователей Apple, глубокая интеграция с macOS/iOS. Бесплатно 5 ГБ, далее по планам до 2 ТБ.</p><p><b>
Proton Drive</b> — шифрованная альтернатива от создателей ProtonMail.</p><h3>Фото и видео</h3><p>На macOS приложение <b>Photos</b> автоматически создаёт альбомы по людям и локациям, синхронизирует всё через iCloud.</p><p>На Windows мы часто рекомендуем <b>Google Photos</b>, который предлагает аналогичный набор функций и автоматизацию. Для пользователей Android — это стандарт по умолчанию. Да, раньше было безлимитно, теперь фото занимают общее место Google Drive (15 ГБ), которое быстро заканчивается.</p><h3>Полные бэкапы</h3><p>Если требуется сохранять всю систему, терабайты медиа, состояние дисков используйте отдельные сервисы резервного копирования.</p><p><b>Backblaze</b> — топ в этой категории: фиксированная цена (~$8/месяц за устройство), безлимитное хранилище, минимум настроек: установил и забыл.</p><p><b>IDrive</b> — более контролируемый вариант, поддерживает несколько устройств, внешние диски и версионность файлов.</p><p>Простой для не-технарей — <b>Carbonite</b>, с возможностью быстрого восстановления и круглосуточной поддержкой.</p><p>Профессионалам — <b>Acronis Cyber Protect</b>: клон дисков, анти-вымогатель, гибридное облако.</p><h3>Для особо чувствительных данных</h3><p>Если вы храните личные финансовые документы или медицинские сведения, стоит выбрать end-to-end решений.</p><p><b>pCloud</b> предлагает клиентское шифрование (через платный «Crypto»). Даже при взломе аккаунта файлы не расшифруются без ключа.</p><p><b>Proton Drive </b>— аналогичный подход, с прозрачностью open-source.</p><h2>Прочие полезные инструменты, не вошедшие в другие разделы</h2><p><b>Google Earth</b> — для любителей карт и планировки.</p><p><b>qBittorrent</b> — лучший torrent-клиент: чистый, без рекламы, с поиском. Альтернатива — легковесный Transmission или кастомизируемый Deluge.</p><p><b> iMazing</b> — must-have для владельцев iPhone: резервные копии, экспорт медиа, проверка батареи, конвертация HEIC.</p><p><b>AirDroid</b> — аналог для Android: управление файлам, уведомления, SMS с ПК.</p><p><b>Rufus</b> — лидер по созданию загрузочных USB-дисков для Windows/Linux.</p><p><b>Open Shell </b>— возвращает классическое меню «Пуск» в стиле Windows 7.</p><p><b>Stretchly</b> — напоминает делать перерывы — полезно удалёнщикам и фрилансерам.</p><p><b>AutoHotkey</b> — скриптовый движок для Windows: переназначение клавиш, макросы, автоматизация.</p><p><b>VPN: </b>бесплатные — ProtonVPN, Windscribe, TunnelBear (с лимитом). Платные — ProtonVPN, NordVPN.</p><p><b>Calibre</b> — лучшее бесплатное решение для чтения, организации и конвертации e-book (EPUB, MOBI, PDF и др.).</p><h2>Заключение</h2><p>Итак, мы прошлись по основным категориям приложений, которые стоит установить на новый компьютер. Конечно, этот список не исчерпывающий — у каждого свои задачи и предпочтения. Но если вы установите хотя бы половину из перечисленного, ваш компьютер станет гораздо удобнее и функциональнее.</p><p>Несколько советов напоследок:</p><ol><li><b>Не захламляйте систему.</b> Устанавливайте только то, что действительно используете. Чем меньше фоновых процессов — тем быстрее работает компьютер.</li><li><b>Следите за обновлениями.</b> Большинство программ обновляются автоматически, но некоторые требуют ручного апдейта. Свежие версии — это не только новые функции, но и закрытые уязвимости.</li><li><b>Делайте резервные копии.</b> Никакие утилиты не спасут от отказа жёсткого диска. Регулярный бэкап на внешний носитель или в облако — обязательная практика.</li><li><b>Экспериментируйте. </b>Попробуйте несколько браузеров, редакторов, плееров. То, что подходит большинству, может не подойти именно вам.</li><li><b>Читайте отзывы.</b> Перед установкой незнакомого приложения загляните на форумы или Reddit. Сообщество быстро выявляет проблемы и подводные камни.</li></ol><p>Теперь ваш компьютер готов к работе, учёбе, развлечениям — и чему угодно ещё. Главное — не забывайте, что инструменты важны, но ещё важнее то, как вы их используете. Удачи!</p>]]></content:encoded>
    </item>
    <item>
      <title>CameraX 1.5: Как обеспечить совместимость функций камеры в Android-приложениях</title>
      <link>https://tproger.ru/articles/camerax-1-5--kak-obespechit-sovmestimost-funkcij-kamery-v-android-prilozheniyah</link>
      <comments>https://tproger.ru/articles/camerax-1-5--kak-obespechit-sovmestimost-funkcij-kamery-v-android-prilozheniyah?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Татьяна Жукова]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/camerax-1-5--kak-obespechit-sovmestimost-funkcij-kamery-v-android-prilozheniyah</guid>
      <description><![CDATA[<p>CameraX 1.5 упрощает разработку Android-приложений для камеры с новым API Feature Group. Узнайте, как гарантировать поддержку комбинаций HDR, 60 FPS и стабилизации для создания надежных и мощных приложений.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/camerax-1-5--kak-obespechit-sovmestimost-funkcij-kamery-v-android-prilozheniyah">CameraX 1.5: Как обеспечить совместимость функций камеры в Android-приложениях</a>»</p>]]></description>
      <category><![CDATA[Android]]></category>
      <category><![CDATA[Мобильная разработка]]></category>
      <category><![CDATA[Kotlin]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Tue, 21 Oct 2025 12:00:02 GMT</pubDate>
      <content:encoded><![CDATA[<p><i>Эта статья — </i><a href="https://android-developers.googleblog.com/2025/10/beyond-single-features-guaranteeing.html">перевод</a><i> оригинального материала о новых возможностях CameraX 1.5, адаптированный для русскоязычной аудитории с сохранением смысла и стиля оригинала.</i></p><p>Современные приложения для камеры должны сочетать мощные функции: пользователи хотят снимать видео в HDR, с частотой 60 кадров в секунду и стабилизацией изображения — и всё это одновременно. Но как разработчику гарантировать, что устройство поддерживает такую комбинацию?</p><p>Ранее совмещение нескольких функций было рискованным: проверка поддержки каждой функции по отдельности не гарантировала их совместной работы. Это могло привести к нестабильной работе камеры или её полному сбою. Чтобы избежать проблем, разработчики ограничивали функциональность, лишая пользователей с мощными устройствами, такими как Pixel 10 Pro, полноценного опыта.</p><p>CameraX 1.5 решает эту проблему с помощью нового API Feature Group. Теперь вы можете заранее проверить поддержку комбинации функций или задать приоритеты, а библиотека сама подберёт оптимальную конфигурацию для устройства.</p><h2>Что такое CameraX?</h2><p>CameraX — это библиотека Jetpack, которая упрощает разработку приложений для камеры на Android. Она предлагает удобный и единообразный API, совместимый с большинством устройств, начиная с Android 6.0 (API level 23). Для новичков рекомендуем изучить <a href="https://developer.android.com/media/camera/camerax?hl=ru">официальную документацию</a> и пройти практический <a href="https://developer.android.com/codelabs/camerax-getting-started#0">codelab.</a></p><h2>Возможности API Feature Group</h2><p>Новый API позволяет создавать продвинутые приложения для камеры, избегая проблем с совместимостью. Вы сможете:</p><ul><li>Создавать адаптивные интерфейсы: Динамически включать или отключать настройки в зависимости от возможностей устройства. Например, если пользователь включает HDR, опция 60 FPS автоматически станет недоступной, если комбинация не поддерживается.</li><li>Реализовать режим “Максимальное качество”: Укажите желаемые функции с приоритетами, и CameraX выберет лучшую комбинацию, поддерживаемую устройством, без сложной логики.</li><li>Избежать сбоев: Проверка поддержки комбинаций заранее предотвращает ошибки при настройке камеры, обеспечивая стабильную работу.</li></ul><h2>Как это работает: основные компоненты</h2><p>API построен на обновленных классах SessionConfig и CameraInfo.</p><ul><li><b>GroupableFeature:</b> Включает набор функций, таких как HDR_HLG10, FPS_60, PREVIEW_STABILIZATION и IMAGE_ULTRA_HDR. Список пока ограничен из-за вычислительных требований, но будет расширен в следующих версиях.</li><li><b>Новые параметры SessionConfig:</b>requiredFeatureGroup: Для обязательных функций. Если комбинация не поддерживается, вызов bindToLifecycle завершится ошибкой IllegalArgumentException.preferredFeatureGroup :Для необязательных функций. Укажите список с приоритетами, и CameraX выберет лучшую комбинацию.</li><li><b>requiredFeatureGroup:</b> Для обязательных функций. Если комбинация не поддерживается, вызов bindToLifecycle завершится ошибкой IllegalArgumentException.</li><li><b>preferredFeatureGroup: </b>Для необязательных функций. Укажите список с приоритетами, и CameraX выберет лучшую комбинацию.</li><li><b>CameraInfo#isFeatureGroupSupported():</b> Метод для проверки поддержки комбинации функций. Передайте SessionConfig, чтобы узнать, поддерживается ли набор функций, и настройте интерфейс соответственно.</li></ul><figure><img src="https://media.tproger.ru/user-uploads/102593/2025-10-21/2ca60fbb-4915-40de-945d-6469aeccd243.png" alt="" /></figure><h2>Практическое применение</h2><p>Рассмотрим два сценария использования API.</p><h3>Сценарий 1: Режим "Максимальное качество"</h3><p>Чтобы автоматически включить лучшие функции, задайте список приоритетов в preferredFeatureGroup. Например, приоритет: HDR, затем 60 FPS, затем стабилизация. CameraX сам выберет оптимальную комбинацию.</p><p>CameraX проверит комбинации в порядке приоритета, выбрав первую поддерживаемую:</p><ol><li>HDR + 60 FPS + Стабилизация</li><li>HDR + 60 FPS</li><li>HDR + Стабилизация</li><li>HDR</li><li>60 FPS + Стабилизация</li><li>60 FPS</li><li>Стабилизация</li><li>Ничего</li></ol><h2>Сценарий 2: Адаптивный интерфейс</h2><p>Для интерфейса, реагирующего на выбор пользователя, проверяйте неподдерживаемые комбинации:</p><p>Интегрируйте логику в интерфейс для отключения неподдерживаемых опций и привязки стабильной конфигурации:</p><p>Ознакомьтесь с тестовым приложением CameraX для примера реализации (не для продакшена).</p><p>API Feature Group устраняет неопределенность при работе с продвинутыми функциями камеры, позволяя создавать надежные приложения. Он доступен как экспериментальный в CameraX 1.5 и станет стабильным в версии 1.6 с дополнительными улучшениями.</p>]]></content:encoded>
    </item>
    <item>
      <title>Google выпустила октябрьское обновление Pixel — оно исправляет шесть раздражающих багов с экраном и системой</title>
      <link>https://tproger.ru/news/google-vypustila-oktyabrskoe-obnovlenie-pixel---ono-ispravlyaet-west-razdrazhayushhih-bagov-s-ekranom-i-sistemoj</link>
      <comments>https://tproger.ru/news/google-vypustila-oktyabrskoe-obnovlenie-pixel---ono-ispravlyaet-west-razdrazhayushhih-bagov-s-ekranom-i-sistemoj?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Татьяна Жукова]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/google-vypustila-oktyabrskoe-obnovlenie-pixel---ono-ispravlyaet-west-razdrazhayushhih-bagov-s-ekranom-i-sistemoj</guid>
      <description><![CDATA[<p>Google выпустила октябрьское обновление Pixel для всех устройств на Android 16. Оно устраняет шесть заметных багов — от мерцания экрана до проблем с Media Output Switcher и виджетами.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/google-vypustila-oktyabrskoe-obnovlenie-pixel---ono-ispravlyaet-west-razdrazhayushhih-bagov-s-ekranom-i-sistemoj">Google выпустила октябрьское обновление Pixel — оно исправляет шесть раздражающих багов с экраном и системой</a>»</p>]]></description>
      <category><![CDATA[Android]]></category>
      <category><![CDATA[Мобильная разработка]]></category>
      <category><![CDATA[Google]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Fri, 10 Oct 2025 13:00:03 GMT</pubDate>
      <content:encoded><![CDATA[<p>Google<a href="https://www.techradar.com/phones/google-pixel-phones/a-big-google-pixel-software-update-is-rolling-out-now-and-it-promises-to-fix-6-annoying-bugs-and-display-issues"> начала развёртывать</a> октябрьское обновление для устройств Pixel. Обновление доступно для всех смартфонов и планшета компании, работающих на Android 16 — от Pixel 7 до последней линейки Pixel 10, включая Pixel Fold и Pixel Tablet. Новых функций апдейт не приносит, зато устраняет шесть проблем, которые могли доставлять пользователям заметный дискомфорт.</p><h2>Что исправили</h2><p>Две ключевые правки касаются дисплея. Первая устраняет мерцание экрана и внезапные выключения устройства в определённых сценариях. Вторая — проблему с «замершим» или размытым изображением.</p><p>Системные баги тоже не обошли стороной. Google устранила редкую ошибку, вызывавшую нестабильность системы, а также артефакт полупрозрачного фона, который мог «зависать» после открытия камеры.</p><p>Отдельно компания починила отображение статуса фонарика в виджете At a Glance и баг, из-за которого могла происходить аварийная перезагрузка при старте или остановке трансляции через Media Output Switcher.</p><h2>Почему стоит установить обновление</h2><p>Многие из этих багов проявлялись не у всех пользователей и не на постоянной основе. Но именно такие мелкие глюки чаще всего раздражают в повседневном использовании — и их устранение улучшает общее впечатление от системы. Поэтому обновление стоит установить даже тем, кто не сталкивался с проблемами напрямую.</p>]]></content:encoded>
    </item>
    <item>
      <title>Android ждут большие перемены: Верховный суд отказал Google в приостановке решения по делу Epic</title>
      <link>https://tproger.ru/news/android-zhdut-bolwie-peremeny--verhovnyj-sud-otkazal-google-v-priostanovke-reweniya-po-delu-epic</link>
      <comments>https://tproger.ru/news/android-zhdut-bolwie-peremeny--verhovnyj-sud-otkazal-google-v-priostanovke-reweniya-po-delu-epic?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Даровская Маша]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/android-zhdut-bolwie-peremeny--verhovnyj-sud-otkazal-google-v-priostanovke-reweniya-po-delu-epic</guid>
      <description><![CDATA[<p>Верховный суд США отказал Google в приостановке запрета по делу Epic. До 22 октября компания должна разрешить внешние платежи и ослабить правила Play — иначе нарушение закона.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/android-zhdut-bolwie-peremeny--verhovnyj-sud-otkazal-google-v-priostanovke-reweniya-po-delu-epic">Android ждут большие перемены: Верховный суд отказал Google в приостановке решения по делу Epic</a>»</p>]]></description>
      <category><![CDATA[Android]]></category>
      <category><![CDATA[Мобильная разработка]]></category>
      <category><![CDATA[Google]]></category>
      <category><![CDATA[Epic Games]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Thu, 09 Oct 2025 12:36:35 GMT</pubDate>
      <content:encoded><![CDATA[<p>Верховный суд США <a href="https://www.theverge.com/news/793610/google-epic-android-supreme-court-stay-denied">отклонил</a> просьбу Google приостановить действие постоянного судебного запрета по делу Epic Games v. Google. Это означает, что у Google осталось чуть больше двух недель, чтобы перестроить правила экосистемы Android и выполнить предписания суда — иначе компания рискует быть признанной нарушившей закон. Крайний срок, на который указывает Epic, — 22 октября 2025 года.</p><p>Напомним, что в 2023 году жюри признало, что практики Google вокруг Play нарушают антимонопольное законодательство. В октябре 2024 г. судья Донато утвердил трёхлетний запрет, обязав Google открыть Play для конкуренции. Девятый округ летом 2025 г. подтвердил решение.</p><p>Сейчас судьи отклонили ходатайство Google о временной заморозке части судебного запрета. Верховный суд не стал замораживать ключевые части запрета судьи Джеймса Донато, которые были подтверждены Апелляционным судом Девятого округа летом.</p><p>Google планирует подать полноценную жалобу в Верховный суд до 27 октября, но это  будет уже после даты исполнения. На данный момент запрет действует, и Google обязан начать исполнение.</p><h2>Что Google должен сделать уже в октябре</h2><p>Согласно приказу суда и его трактовке в материалах дела и СМИ, Google обязан:</p><ul><li>Прекратить требовать от разработчиков обязательного использования Google Play Billing.</li><li>Разрешить разработчикам информировать пользователей (включая ссылки из приложений) о внешних способах оплаты без дополнительных комиссий и отпугивающих экранов.</li><li>Открыть путь к распространению приложений вне Play Store (включая указание способов загрузки).</li><li>Разрешить разработчикам устанавливать собственные цены.</li><li>Прекратить выплаты/бонусы производителям устройств, операторам и разработчикам за эксклюзивы в Play или предустановку.</li><li>Сотрудничать с Epic в рамках совместного технического комитета по безопасному доступу конкурирующих магазинов к каталогу Play.</li></ul><p>Google публично сообщил, что выполнит юридические обязательства, параллельно продолжая попытки обжаловать запрет в Верховном суде. Компания предупреждает о рисках для безопасности пользователей при ослаблении контроля в платежах и дистрибуции.</p>]]></content:encoded>
    </item>
    <item>
      <title>Что нового в октябрьских обновлениях Google System</title>
      <link>https://tproger.ru/articles/chto-novogo-v-oktyabrskih-obnovleniyah-google-system</link>
      <comments>https://tproger.ru/articles/chto-novogo-v-oktyabrskih-obnovleniyah-google-system?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Даровская Маша]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/chto-novogo-v-oktyabrskih-obnovleniyah-google-system</guid>
      <description><![CDATA[<p>Октябрьские обновления Google System приносят Play services v25.39 и Play Store v48.3: Quick Start для детских аккаунтов, улучшенный фильтр чувствительного контента в видео, апгрейд «Не беспокоить за рулём» и обновлённые иконки Play Protect. Как проверить версии и обновиться.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/chto-novogo-v-oktyabrskih-obnovleniyah-google-system">Что нового в октябрьских обновлениях Google System</a>»</p>]]></description>
      <category><![CDATA[Android]]></category>
      <category><![CDATA[Мобильная разработка]]></category>
      <category><![CDATA[Безопасность]]></category>
      <category><![CDATA[Google]]></category>
      <category><![CDATA[Смартфоны]]></category>
      <category><![CDATA[Кибербезопасность]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Wed, 08 Oct 2025 10:00:04 GMT</pubDate>
      <content:encoded><![CDATA[<ul><li>Google Play services v25.39 (06.10.2025): улучшения для семейного контроля и аккаунтов под присмотром, новый дизайн аватарок, API для разработчиков, более умный фильтр «Чувствительный контент» в Google Messages для видео, апгрейд режима «Не беспокоить за рулём».</li></ul><ul><li>Google Play Store v48.3 (06.10.2025): обновленные иконки в некоторых уведомлениях Google Play Protect на телефонах, ПК, ТВ, Auto.</li></ul><p>Важно: функция в релиз-нотах не гарантирует её мгновенную доступность на всех устройствах. Google часто вводит функции постепенно, «поэтапно разворачивая» (staged rollout).</p><h2>Google Play services v25.39</h2><p>Через APKMirror задокументирован выпуск версии 25.39.30 (beta).</p><p>Разработчики из Google усилили возможности управления аккаунтами — теперь система работает гибче с профилями под присмотром, упрощая родительский контроль и настройку устройств для детей. Темы, используемые в интерфейсах поднадзорных аккаунтов, получили визуальное обновление и стали единообразнее, чтобы пользователи лучше ориентировались в настройках.</p><p>Отдельного внимания заслуживает и визуальная часть — привычные аватарки теперь оформлены в новом, более современном и чистом стиле. Для разработчиков Google добавила свежие инструменты и API, которые позволяют глубже интегрировать функции управления аккаунтами и безопасности в сторонние приложения, обеспечивая плавную работу и более высокий уровень конфиденциальности.</p><p>Особое улучшение касается защиты и безопасности: функция Sensitive Content Warnings в Google Messages научилась распознавать нежелательный контент не только на фотографиях, но и в видеороликах — шаг, который повышает безопасность общения в мессенджере. Параллельно был переработан и режим Driving Do Not Disturb — он стал работать стабильнее, меньше отвлекать водителя и лучше подстраиваться под дорожные ситуации.</p><p>В более ранних версиях (v25.37) Google уже вводил исправления стабильности при управлении аккаунтами, улучшения соединений устройств и дополнения к API. Droid Life. Версия 25.39, скорее, эволюция этих функций, сглаживающая баги и добавляющая новые интерфейсы.</p><h2>Google Play Store v48.3</h2><p>В релиз-нотах отмечено, что в уведомлениях Google Play Protect обновлены иконки на всех поддерживаемых платформах: Auto, ПК, телефон, ТВ.</p><h3>Безопасность: Android Security Bulletin (сентябрь 2025)</h3><p>Параллельно с системными обновлениями Google продолжает выпускать ежемесячные безопасностные бюллетени Android (Android Security Bulletin).</p><p>В бюллетене за сентябрь 2025 описано множество уязвимостей — например:</p><ul><li>CVE-2025-48543 — уязвимость в Android Runtime, позволяющая эскалацию привилегий, без необходимости дополнительного запуска кода.</li><li>Несколько уязвимостей в Framework и ядре классифицируются как высокие (High) — могут дать локальное повышение привилегий.</li><li>Устройства с Android 10 и выше могут получить обновления безопасности через Google Play system updates.</li></ul><h2>Что проверять и как обновиться?</h2><p>С учётом подтверждённых данных, рекомендуем:</p><ul><li>Проверять на вашем устройстве версии:<br />Google Play services — должна быть 25.39.x (или выше, если уже вышли патчи).<br />Google Play Store — версия v48.3 или выше.<br />Google Play system update (в Настройках телефона) — наличие новых системных патчей безопасности.</li><li>Google Play services — должна быть 25.39.x (или выше, если уже вышли патчи).</li><li>Google Play Store — версия v48.3 или выше.</li><li>Google Play system update (в Настройках телефона) — наличие новых системных патчей безопасности.</li><li>Если устройство не получает обновления автоматически — попробуйте вручную запустить обновление Google Play services через доступные источники (Play Store, Google Play System Update).</li><li>Следите за бюллетенями безопасности Android: версия безопасности (security patch level) должна быть актуальной.</li><li>У устройств с более старыми версиями Android (менее Android 10) возможности получать обновления безопасности через Google System могут быть ограничены.</li></ul>]]></content:encoded>
    </item>
    <item>
      <title>Новые правила Google могут «убить» сторонние Android-магазины, включая RuStore</title>
      <link>https://tproger.ru/news/novye-pravila-google-mogut--ubit--storonnie-android-magaziny--vklyuchaya-rustore</link>
      <comments>https://tproger.ru/news/novye-pravila-google-mogut--ubit--storonnie-android-magaziny--vklyuchaya-rustore?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Булат Яббаров]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/novye-pravila-google-mogut--ubit--storonnie-android-magaziny--vklyuchaya-rustore</guid>
      <description><![CDATA[<p>Google с 2026 года требует у Android-разработчиков ключи подписи и документы, что может уничтожить RuStore, F-Droid и другие магазины</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/novye-pravila-google-mogut--ubit--storonnie-android-magaziny--vklyuchaya-rustore">Новые правила Google могут «убить» сторонние Android-магазины, включая RuStore</a>»</p>]]></description>
      <category><![CDATA[Android]]></category>
      <category><![CDATA[Безопасность]]></category>
      <category><![CDATA[Google]]></category>
      <category><![CDATA[Приложение]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Mon, 29 Sep 2025 06:36:45 GMT</pubDate>
      <content:encoded><![CDATA[<p><b>Google вводит новые требования для Android-разработчиков</b>, которые, по мнению представителей проекта F-Droid, могут поставить крест на существовании <b>альтернативных магазинов приложений</b>. Включая российский <b>RuStore</b>, <b>F-Droid</b> и другие независимые площадки.</p><h2>Что случилось</h2><p>Согласно новым правилам, которые Google планирует внедрить <b>с сентября 2026 года</b>, каждый разработчик Android-приложений должен будет:</p><ul><li>подтвердить свою личность <b>с помощью государственных документов</b>;</li><li><b>передать Google</b> информацию о приложении, включая <b>идентификатор</b> и <b>ключ подписи</b>.</li></ul><p>Это касается <b>всех приложений, даже если они не публикуются в Google Play</b>.</p><blockquote>Фактически это будет конец F-Droid и других открытых репозиториев приложений в их нынешнем виде.</blockquote><h2>Почему это важно</h2><p><b>Ключ подписи APK</b> — это основа доверия в экосистеме Android. Без него пользователь не может быть уверен, что приложение не было подменено.</p><p>На данный момент альтернативные магазины, такие как F-Droid, <b>сами управляют подписью приложений</b>, проверяют их безопасность и следят за обновлениями.</p><p>Теперь же <b>Google хочет взять контроль над этими ключами</b>, даже если приложение распространяется вне Google Play. Это создает <b>монопольную модель</b>, при которой <b>все пути ведут через Google</b>, несмотря на официальную поддержку сторонней установки <b>.apk-файлов</b>.</p><h2>Под угрозой: свобода, приватность и конкуренция</h2><p>Авторы F-Droid отмечают, что:</p><ul><li>не все разработчики хотят или могут регистрироваться у Google;</li><li>это ударит по <b>открытому ПО</b>, анонимным проектам и альтернативным экосистемам;</li><li>Android уже обладает встроенными механизмами безопасности (Play Protect), а <b>Google Play регулярно пропускает вредоносные приложения</b>.</li></ul><h2>Что делает F-Droid</h2><p>Проект F-Droid уже обратился в <b>регуляторные органы США, ЕС и других стран</b>, призывая проверить инициативу Google на предмет <b>злоупотребления доминирующим положением и монополизации рынка Android-приложений</b>.</p><h2>Что говорит Google</h2><p>Google объясняет нововведения <b>борьбой с вредоносными программами и мошенниками</b>, а также <b>повышением доверия</b> к Android-приложениям.</p><p>Компания подчеркивает, что <b>распространение через .apk и сторонние магазины останется доступным</b> — но без контроля над ключами <b>их значимость может снизиться до нуля</b>.</p><h2>Когда начнут действовать новые правила</h2><p><b>Сентябрь 2026 года</b> — начало поэтапного внедрения. Пока детали требований полностью не опубликованы, но разработчики <b>уже бьют тревогу</b>.</p>]]></content:encoded>
    </item>
    <item>
      <title>Зачем нужны приложения, можно ли писать код на смартфоне — ответы эксперта на самые безумные вопросы о мобильной разработке</title>
      <link>https://tproger.ru/articles/zachem-nuzhny-prilozheniya--pochemu-android-ne--ajfon--mozhno-li-pisat-kod-na-smartfone---otvety-eksperta-na-samye-bezumnye-voprosy-o-mobilnoj-razrabotke</link>
      <comments>https://tproger.ru/articles/zachem-nuzhny-prilozheniya--pochemu-android-ne--ajfon--mozhno-li-pisat-kod-na-smartfone---otvety-eksperta-na-samye-bezumnye-voprosy-o-mobilnoj-razrabotke?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Денис Кудерин]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/zachem-nuzhny-prilozheniya--pochemu-android-ne--ajfon--mozhno-li-pisat-kod-na-smartfone---otvety-eksperta-na-samye-bezumnye-voprosy-o-mobilnoj-razrabotke</guid>
      <description><![CDATA[<p>Ответы на самые странные и частые вопросы о мобильной разработке: в чем разница между iOS и Android, почему нужно платить $99 для тестирования на iPhone и можно ли писать код на смартфоне. Обсуждаем Flutter, нативную разработку, пуши и безумные требования менеджеров с экспертом Аней Жарковой. </p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/zachem-nuzhny-prilozheniya--pochemu-android-ne--ajfon--mozhno-li-pisat-kod-na-smartfone---otvety-eksperta-na-samye-bezumnye-voprosy-o-mobilnoj-razrabotke">Зачем нужны приложения, можно ли писать код на смартфоне — ответы эксперта на самые безумные вопросы о мобильной разработке</a>»</p>]]></description>
      <category><![CDATA[Android]]></category>
      <category><![CDATA[Мобильная разработка]]></category>
      <category><![CDATA[iOS]]></category>
      <category><![CDATA[Swift]]></category>
      <category><![CDATA[Kotlin]]></category>
      <category><![CDATA[Разработка]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Thu, 18 Sep 2025 10:00:03 GMT</pubDate>
      <content:encoded><![CDATA[<p>В юмористическом <a href="https://www.youtube.com/watch?v=q0PtYxsg03U">выпуске</a> подкаста «Спроси айтишника» <a href="https://darovska.com/">Маша Даровская</a>, шеф-редактор Tproger, автор телеграм-канала <a href="https://t.me/MashaDevRel">«Деврелишна»</a> и Аня Жаркова, руководитель мобильной разработки в USETECH, ищут ответы на самые странные и неожиданные вопросы подписчиков.</p><p><b>Смотреть подкаст на <a href="https://www.youtube.com/watch?v=q0PtYxsg03U">YouTube</a>, в <a href="https://vk.com/video-30666517_456246783">VK</a></b>.</p><p>Анна Жаркова пишет нативные приложения под iOS и Android и кросс-платформенные приложения на Xamarin, Xamarin.Forms и Kotlin Multiplatform. Написала книгу о Kotlin Multiplatform, которая выходит в сентябре. Пишет статьи, выступает на конференциях и митапах. Член программного комитета Mobius, CodeFest, «Стачка». Увлекается живописью и участвует в выставках.</p><p>Поговорили о безумных проджект-менеджерах, войне Android и iOS, о том, почему ИИ не заменит программистов, и что делать, если вам позарез нужно установить ВСЕ приложения из магазина. Добро пожаловать в абсурдный и увлекательный мир мобильных разработчиков!</p><h2>О смысле мобильных приложений</h2><figure><img src="https://media.tproger.ru/user-uploads/113565/2025-09-01/5b4fca7c-0c3e-406b-982a-b7cef90e550f.jpg" alt="" /></figure><p><i>Какие нам вопросы задали наши прекрасные подписчики. Первый вопрос: «А зачем вообще нужны мобильные приложения? У меня вот компьютер, а у друга ноутбук». </i></p><p>Ну, да, вопросы бывают разные, мы к этому привыкли. Начнём с того, что это, конечно, здорово, что есть компы и ноутбуки, но с собой человек, скорее всего, носит именно смартфон, а не компьютер или ноутбук.</p><p>Если попробовать ответить на этот вопрос серьёзно: мобильное устройство — это не просто «звонилка», это ещё и полезные клиентские приложения, которые позволяют получить быстрый доступ к информации или услугам. Конечно, это всё можно сделать и с компьютера, но главное назначение мобильного устройства — дать вам максимум возможностей при минимуме затрат: ресурсов, времени и с минимальным размером самого устройства.</p><p><i>Ну да, взять то же банковское приложение, оплату с телефона… Ребята, с компьютером не походишь, чтобы это всё делать. Давай поедем к следующему. Можно делать так, чтобы приложение ставилось не из App Store?</i></p><p>Конечно. Если это приложение под Android, оно будет ставиться через Google Play, а также есть специальные магазины, например, AppGallery для Huawei или RuStore. Также у некоторых вендоров есть свои маркеты, например, у Samsung.</p><p>Если же говорить про iOS, то тут всё строго с App Store. Но кто знает, возможно, в будущем появятся и кастомные магазины для iOS. Хотелось бы, чтобы поскорее.</p><p><i>А скажи, пожалуйста, насколько широкий ассортимент приложений в этих альтернативных магазинах? У меня всё на яблоках, я не особо разбираюсь, что там происходит, особенно с Huawei, с RuStore. Можешь рассказать, насколько там всё хорошо или плохо?</i></p><p>Я думаю, если говорить про приложения, которые имеют ограничения в загрузке в App Store, они, в принципе, есть и в Google Play, но свободно грузятся в остальные магазины. Особых ограничений нет. Конечно, бывают ситуации, когда приложение пропадает из магазина по чьей-то жалобе. Но выбор приложений довольно большой. Например, в компании, где я работаю, мы свободно загружаем наши приложения в разные магазины, и всё в порядке.</p><p><i>Супер. А насколько вообще отличается разработка для, скажем, Huawei от классической Android? Там есть какая-то своя специфика, или всё тоже самое? Может, свой стэк?</i></p><p>Плюс-минус как Android, но есть определённые различия. У них своя среда разработки, свои сервисы, дополнительные технологии. Тема довольно обширная, но в принципе, всё это плюс-минус то же самое, и Android-разработчику освоить это несложно. Главное — поставить нужную IDE (Интегрированную среду разработки) и взять устройство для отладки.</p><p>А какие там специфические IDE?</p><p>Да, там есть, по-моему, собственная IDE, но я скажу честно, я с ней особо не работала. Я сейчас копаю немножко в другом направлении.</p><h2>О фантастическом девайсе</h2><p><i>«Пользователю позарез нужно установить вообще все мобильные приложения, которые существуют на маркете. Всё использует, всё жизненно важно. Вопрос: что представлял бы из себя девайс, который смог бы это выдержать?» Я с трудом представляю, интересно твоё мнение.</i></p><p>Что ж, ну, возникает вопрос: наверное, у этого пользователя очень много денег, он может позволить себе все платные приложения. Порадуемся за него!</p><p>Но если говорить про аппарат, то это должен быть какой-то супермощный с параметрами из серии «Чёрная дыра». Современное приложение, тот же самый «суперап», который объединяет кучу сервисов, может занимать сотни мегабайт. Обычное банковское приложение — тоже несколько сотен мегабайт.</p><p>Поэтому если у пользователя есть какой-то супермощный компьютер, возможно, он причастен к каким-то научным, суперсекретным, может быть, даже военным разработкам, и у него память на каком-то кристалле из чёрной дыры… то, возможно, это и сработает.</p><p>В реальности, конечно, это похоже на шутку «я сейчас все игры установлю». Но ни одного нормального девайса даже с супервозможностями не хватит. Сейчас максимум — это 512 ГБ внутреннего хранилища, часто без возможности расширения. Но даже с картой памяти вам точно не хватит.</p><figure><img src="https://media.tproger.ru/user-uploads/113565/2025-09-01/d12496af-061b-410d-af88-6a36063e3ef1.jpg" alt="" /></figure><p><i>Да, вот у меня даже на айфоне он сгружает в облако всё, что не нужно. И у меня стоит довольно много приложений, в том числе детские, с ИИ, чтобы звёзды смотреть, цветы диагностировать… Куча странных приложений, которые я использую очень ситуативно. Я не представляю, сколько надо времени, чтобы скачать себе даже десятую часть всех существующих приложений в Store. Ну, это невозможно.</i></p><p>Ну, может, человек решил стать суперблогером по приложениям, решил сделать краш-тест всего маркета и всех возможных аппаратов. Удачи ему и успехов.</p><h2>О разработке на мобильном телефоне</h2><p><i>«Раз для компов проги пишут на компах, разве не уместнее для мобилок писать на мобилках?»</i></p><p>Кстати, очень хороший вопрос. На заре энтузиазма, когда только появлялись смартфоны, все считали: «Сейчас они будут настолько мощные, что не понадобится настоящий комп, чтобы писать программы».</p><p>Но это столкновение с реальностью. Девайс довольно слабенький, и ресурсов не хватит. Это сложный процесс: чтобы скомпилировать приложение, необходимо несколько гигабайт свободной памяти и много вычислительных ресурсов.</p><p>Конечно, на мобильном устройстве можно скомпилировать какие-то простые, легковесные приложения, например, на скриптовых языках. Есть такие технологии. И в том числе можно использовать мобильные устройства как инструмент для разработки. У того же GitHub такое было.</p><p>Но честно говоря, если есть желание что-то писать на мобильном аппарате, то лучше работать с облачными средами разработки. Потому что даже на компе та же Android Studio может кушать очень много памяти и сохранять много кэша. Облачная среда, конечно, в какой-то степени небезопасна, потому что вы что-то загружаете на сторонние сервера. Но если это ваше собственное, настроенное место, то вполне можно по удалёнке получать доступ. Другой вопрос, что вам тогда необходим хороший интернет.</p><p><i>Ну, ты знаешь, у меня вот был странный опыт. Когда я училась на Python-разработчика, у меня был старый макбук. Он у меня сдох через полгода, просто потому что не вывез: ты ставишь все эти библиотеки, прописываешь команды, подгружаешь версии… В общем, у меня просто сдох жесткий диск. Поэтому да, хороший вопрос. Не всякий даже ноут это выдержит, как выяснилось.</i></p><p>Более того, даже для сборки мощных мобильных приложений на Mac сейчас часто требуется 32, а то и 64 ГБ памяти. Были бы, конечно, такие крутые мобильные устройства, полноценные мини-компьютеры… Но это уже из области фантазии наших зрителей.</p><h2>О Keycloak и мобильной безопасности</h2><p><i>Так, следующий вопрос. «Подскажите, кто-нибудь пользуется Keycloak для SSO (стандарт единого входа)?»</i></p><p>Интересный, конечно, вопрос про Keycloak. Я слышала такое слово от бэкендеров — это механизм, который используют для безопасности на бэкенд-части. Но что примечательно, с вопросом про Keycloak часто приходят именно к нам, мобильным разработчикам.</p><p>Тебе говорят слово «Keycloak», и ты думаешь: «Хорошо, а я тут причём?» Так что да, это довольно часто задаваемый не по адресу вопрос. Ответ — спросите у аналитика или у бэкенд-разработчика.</p><p><i>А как ты думаешь, почему к мобильным разработчикам приходят с этим вопросом?</i></p><p>Я думаю, потому что говорят, что это какой-то механизм, необходимый для безопасной разработки. И часто люди путают, с чьей стороны должно быть внедрение того или иного решения.</p><p>Keycloak — это система идентификации и управления доступом с единой точкой входа. Мобильное приложение — это фронтенд-клиент, который обращается к API вашего сервера. Поэтому вся система должна быть реализована на бэкенде. Мобильщик будет лишь использовать готовое API. Если вам говорят, что вы должны это сделать сами на мобилке, ну тогда вы, получается, не мобильщик, а фуллстэк. Я вас поздравляю!</p><h2>О выборе технологии: натив vs Flutter</h2><figure><img src="https://media.tproger.ru/user-uploads/113565/2025-09-01/1a7ae6af-57d6-433a-8a89-adddc189ab51.png" alt="" /></figure><p><i>Так, переходим к следующему вопросу. «Стоит ли погружаться в нативную разработку или сразу учить Flutter?»</i></p><p>Очень хороший вопрос. Flutter — это отдельная технология со своим языком Dart. Но тут есть маленький нюанс. Да, Flutter — технология отличная, но вы разрабатываете под Android и iOS, и поэтому вам необходимы знания нативной разработки, хотя бы в минимальном объёме. Есть проекты, где пишут код Flutter-разработчики, но от них требуют хороших, крепких знаний по нативу хотя бы одной платформы.</p><p>Когда у вас есть такой базис, вы понимаете, что вам необходимо сделать: как работать с жизненным циклом, с памятью, с сенсорами, с моделью разрешений. Всё это — знания натива, и без этого не обойтись. Это необходимо.</p><p><i>То есть, сначала учим какую-то одну платформу как базу, а потом уже идём во всякие Flutter’ы с ними.</i></p><p>Безусловно. Вы исходите из того, что пишете под Android (или iOS). И уже смотрите: как я могу это делать? Я могу писать на нативе, а могу на Flutter’е. Но Flutter всё равно будет опираться на натив, поэтому получается такая ступень по изучению технологий.</p><h2>О роли ИИ в мобильной разработке</h2><p><i>Что сейчас можно сделать с помощью ИИ в мобильной разработке?</i></p><p>Довольно много. Но тут возникает уточняющий вопрос: использовать ИИ как инструмент или внедрять ИИ в приложение? Есть возможности по внедрению ИИ, чтобы оно что-то генерировало в вашем приложении: умные ассистенты, генерация изображений и т.д.</p><p>Есть также возможности с помощью ИИ генерировать код. Но это явно не для начинающих. Почему? Потому что ошибок в таком коде довольно много. Чтобы этот код работал, нужен человек, который понимает, как такой код писать самому. То есть ИИ может помочь сократить время, выступить инструментом генерации, но не более.</p><p>К тому же сейчас есть технологии, которые позволяют разместить у себя модель нейросети, обучить её под свои нужды и использовать. Да, это дорого и ресурсоёмко, но возможность есть. В целом, возможности широкие, но они не заменят нормального разработчика. Все помнят мем про кружку, которую ИИ не догадался перевернуть? Это показательно.</p><p><i>Вопрос от этого же задавателя вопросов. «Используют ли Kotlin Multiplatform React Native (технологии для кроссплатформенной разработки) и так далее? Если да, бывают ли задачи с адаптацией под мобильный веб?»</i></p><p>Хм, хороший вопрос. Если говорить про работу с искусственным интеллектом в контексте этих технологий… Вы можете попробовать сгенерировать код под любую платформу. Для этого нужно писать много промтов и иметь много ресурсов для обучения модели.</p><p>Но если говорить о продакшене, то тут имеет смысл использовать только то, что безопасно. Есть компании, которые разрабатывают свои инструменты на основе LLM-моделей, как, например, Яндекс. Есть те, кто берут открытые модели, разворачивают их и используют.</p><p>А вот публичные сервисы вроде ChatGPT я не рекомендую использовать для продакшена. Они могут залогировать ваш код и потом выдать его кому-то. Это крайне небезопасно. В прошлом или позапрошлом году был скандал, когда ChatGPT выдавал куски кода одной компании, вплоть до креденшиалов. Так что в продакшене — только собственные решения.</p><h2>О сегментации рынков Android и iOS</h2><figure><img src="https://media.tproger.ru/user-uploads/113565/2025-09-01/401fce44-6d95-4999-b01d-dbe53c1609ca.jpg" alt="" /></figure><p><i>Насколько реально сегментированы рынки Android и iOS?</i></p><p>Если говорить про iOS, то тут всё просто: один вендор — Apple. Вся экосистема: iOS, iPadOS, watchOS, специальная OS для авто. Минимальная сегментация. А вот с Android вендоров много. Это и гиганты типа Samsung, большой кусок рынка у Xiaomi и её суббрендов вроде Poco или Redmi.</p><p>Но стоит не забывать, что есть страны Латинской Америки, Африки, Юго-Восточной Азии, где ситуация с разработкой и устройствами совершенно другая, чем в Штатах, Европе или СНГ. Там до сих пор используют такие технологии, как Cordova, PhoneGap, потому что это дёшево, а iPhone там очень непопулярны — банально не по карману.</p><h2>О самых сложных задачах</h2><p><i>Какие задачи в мобильной разработке самые сложные?</i></p><p>Всё зависит от того, что считать задачами. Есть интересные фичевые задачи, которые дают возможность разрабатывать что-то новое. Есть рутинные, неинтересные, но простые задачи, которые просто отнимают много времени.</p><p>А есть задачи-челленджи, когда ты создаёшь что-то на основе сложной библиотеки или, наоборот, из простых исходников делаешь суперсложное решение — например, для работы со звуком, видео, сканеры и т.д.</p><p>Но многие скажут, что самая сложная задача — это работа с заказчиком, с ТЗ, работа между командами. То есть, есть элемент технического челленджа, а есть — психологического. Разработчику надо уметь преодолевать и те, и другие, потому что это позволяет потом работать проще и интереснее.</p><h2>Об ассемблере в 2025 году</h2><p><i>«Какое место в Android и, видимо, iOS-разработке занимает ассемблер в 2025 году?» Вообще ассемблер и мобильная разработка, мне кажется, две немножко разные сущности.</i></p><p>Честно говоря, я не пользовалась ассемблером для мобильной разработки. Если у того, кто это задал, есть наработки, пусть пришлёт, посмотрим. Или придёт на Mobius и расскажет про это — у нас ещё открыт CFP. Если это будет супер-хардовый доклад, это будет здорово!</p><p>Например, пару лет назад у нас был человек, который встроил Doom (а он написан на ассемблере) в SwiftUI. То есть низкоуровневое что-то встраивается через C, C++ (например, через NDK для Android). Всё это можно сделать.</p><p>Но возникает вопрос: зачем? Потому что есть решение «потому что могу» — и это круто. А есть принцип разумной достаточности: не надо усложнять решение там, где это не нужно. Мы экономим и делаем оптимальной не только архитектуру приложения, но и время разработчика. Так что, отвечая на вопрос: есть Doom UI. Можете посмотреть: где только Doom не запускали.</p><h2>О дизайне под Android и iOS</h2><p><i>«Почему менеджеры и дизайнеры всегда хотят, чтобы на Android всё выглядело точно так же, как на iOS?»</i></p><p>Я думаю, потому что это красиво. У iOS долгое время очень много вкладывалось в визуал, в неповторимые жесты и систему. Это было просто супер. Затем Google решил догнать. Сначала появился Material Design, потом более продвинутый. И теперь, если посмотреть на доклады Google и Apple, можно заметить, что в какой-то момент предложения инженеров Google превращают Android в iOS, а у iOS есть тенденция становиться визуально похожим на Android.</p><p>Основная причина, почему хочется использовать iOS-подобный дизайн на Android, — «потому что красиво». Но Android не повезло: красивые вещи довольно затратны. Изначально Android затачивался под аппараты для всех, включая страны с дешёвыми устройствами малой мощности. Тащить туда всю красоту — вредить пользователям. Там действует принцип «максимум возможностей при минимальных затратах».</p><p><i>Ну да, Apple всегда стремились делать очень красиво. Так, скоро же выйдут новые модели Apple, они там всё выкатят в сентябре. Там какие-то изменения по разработке будут под iOS?</i></p><p>Я думаю, не без этого. Изменения идут каждый год, иногда несколько раз в год. Но что хорошо у Apple и Google — нет таких радикальных изменений, чтобы все бросали работу и шли переписывать приложение под новую парадигму.</p><p>Были у них такие периоды, но это было связано скорее с языками (Swift у Apple, Jetpack Compose у Google), которые сильно менялись. Но кардинальной смены инструментов или парадигмы в ближайшее время не планируется.</p><h2>Крик души мобильного разработчика</h2><p><i>Так, ещё у нас остался один большой вопрос, прямо крик души. Цитирую: </i><i>«Почему на симуляторе всё работает, а на телефоне нет? Телефон тупее? Если отключу фоновые процессы, батарейка начнёт заряжаться в обратную сторону? А можно сделать так, чтобы приложение работало одинаково на всех 19 тысячах моделей телефонов? Почему я должна платить 99 долларов в год, чтобы тестировать на своем же телефоне? Почему пуши приходят только тогда, когда я уже сама все проверила вручную? Почему SwiftUI делает все проще, но я все равно страдаю?»</i></p><p>Я так понимаю, это крик души. Мы пойдём по частям. Судя по желанию, «чтобы оно работало везде одинаково», — это PM или Product Owner detected. «Нехорошо, неправильно не делайте, делайте правильно». Вот такой тезис.</p><p>Давай пройдёмся по частям.</p><p><b>Про симулятор и телефон.</b> Эмулятор имеет ограниченные ресурсы и параметры ОС. Он запускается на вашем компьютере, где ресурсов больше, и вы можете настроить сеть, например, прокси. А телефон — это реальное железо с ограниченными ресурсами, которых может не хватить. Кроме того, на эмуляторе некоторые вещи могут игнорироваться или, наоборот, не воспроизводиться. Тестировать на эмуляторе безопаснее для вашего телефона, его ресурсы просто сожрутся. Хотя тестировщик, конечно, должен проверять на реальных устройствах.</p><p><b>Про 99 долларов.</b> Вы платите не мне, а компании Apple. А компания Apple считает, что вы должны платить, «потому что они красивые». Вот. Такова жизнь.</p><p><b>Про пуши и SwiftUI.</b> Можно сказать, что страданиями душа совершенствуется, а также навыки разработчика. У каждой технологии есть подводные камни, главное — правильно её использовать. Но даже если вы знаете, как правильно, вы не застрахованы от багов и питфолов.</p><p>С пушами отдельная история. Доставка пуш-уведомлений — вещь негарантированная. Многое зависит от сервиса, который вы используете (Firebase часто капризничает, try RuStore, они стабильнее), от территориальных особенностей, от того, как настроена рассылка. На Android и iOS разные политики работы с пушами. Иногда, если понизить приоритет пушам, они дойдут гарантированнее, чем с высоким приоритетом. Всё индивидуально.</p><p>А по SwiftUI... Я очень сочувствую вашему опыту. Если вы посмотрите WWDC последних двух лет, особенно этот год, они даже не прикладывают исходники тех примеров, которые показывают. То есть покажут сниппет, а целиком приложение не дают. Так что, возможно, это всё на их совести. Пусть они спят плохо.</p><h2>О собеседованиях и офферах</h2><p><i>«Почему для получения оффера недостаточно, что в своём телефоне я разработчик?»</i></p><p>Хороший вопрос. Когда вы приходите на собеседование и у вас проверяют знания, это не потому что мы редиски и хотим попить вашу кровушку. Мы выбираем человека, с которым будем работать.</p><p>Это как на стройке: есть прораб и рабочие. Каждый делает свою операцию. Человек, которого мы ждём в коллектив, будет брать часть нашей работы. А вы меняете ваше время, усилия и навыки на денежки. Вот так работает экономика.</p><p>Чтобы вы получили оффер, мы должны понимать, что вы придёте и сможете делать задачи. 90% вопросов на собеседовании — это либо общая теория, либо обсуждение кейсов. Тестовые задания сейчас практически не дают, особенно на миддлов и сеньоров. Мы надеемся, что человек с опытом может мысленно разложить задачу и рассказать, как бы он это сделал. Чтобы показать, что он сможет с этим работать.</p><p><i>Скажи, а вот такие тест-кейсы на собеседованиях помогают вычислить и не допустить тех, кто опыт накручивает?</i></p><p>Ох, на самом деле да. Бывает, людей вводят в заблуждение разные кураторы, и они считают, что если суперуверенно рассказать что-то HR, то он уже прошёл. Вот эти кейсы, где предлагается подумать и рассказать, как бы ты это делал, — довольно показательны.</p><p>Тем более, человек может запнуться на теории, войти в ступор. У меня самой такое было лет шесть назад. А когда просишь рассказать, как бы ты это делал, это показывает, как человек думает, как решает задачи на практике, с какими технологиями он умеет работать.</p><p>Если человек говорит: «Это всё гуглится», — возникает вопрос: «Зачем ты тогда тут?» Кейсы экономят время, не у всех может открыться среда для лайвкодинга, и они помогают понять, как человек мыслит и насколько он адекватен.</p><h2>Об автомобильной разработке</h2><p><i>Так, и вот последний странненький, на мой взгляд, вопрос. «Зачем нужны специалисты по мобильной разработке, если есть уже автомобильная?»</i></p><p>Хороший вопрос. Можно обыграть, что автомобильная — это разработка на vibe-кодинге, just for fun. Если говорить серьёзно, то автомобильную разработку тоже делают мобильные разработчики! Так что можно быть автомобильным разработчиком, но не сужайте себе поле, попробуйте другие девайсы, вам тоже понравится.</p><p>Например, брать с собой в карман автомобиль — это, конечно, шикарно, но не везде реализуемо. Он тяжёлый.</p>]]></content:encoded>
    </item>
    <item>
      <title>Сломанный Galaxy Z Flip5 + клавиатура BlackBerry Q10 = необычный современный слайдер</title>
      <link>https://tproger.ru/news/slomannyj-galaxy-z-flip5---klaviatura-blackberry-q10---neobychnyj-sovremennyj-slajder</link>
      <comments>https://tproger.ru/news/slomannyj-galaxy-z-flip5---klaviatura-blackberry-q10---neobychnyj-sovremennyj-slajder?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Булат Яббаров]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/slomannyj-galaxy-z-flip5---klaviatura-blackberry-q10---neobychnyj-sovremennyj-slajder</guid>
      <description><![CDATA[<p>Инженер собрал слайдер-смартфон: взял сломанный Galaxy Z Flip5 и встроил в него клавиатуру BlackBerry Q10, получив рабочий гибрид с ностальгией по 2000-м</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/slomannyj-galaxy-z-flip5---klaviatura-blackberry-q10---neobychnyj-sovremennyj-slajder">Сломанный Galaxy Z Flip5 + клавиатура BlackBerry Q10 = необычный современный слайдер</a>»</p>]]></description>
      <category><![CDATA[Android]]></category>
      <category><![CDATA[Arduino]]></category>
      <category><![CDATA[Samsung]]></category>
      <category><![CDATA[YouTube]]></category>
      <category><![CDATA[Игра]]></category>
      <category><![CDATA[Пет-проект]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Thu, 04 Sep 2025 10:19:03 GMT</pubDate>
      <content:encoded><![CDATA[<p>Если у вас сломается складной смартфон (вроде Galaxy Z Flip5), вы, скорее всего, отнесете его в сервис. Но для YouTube-инженера и моддера Марцина Плазы (Marcin Plaza) это стал повод не для ремонта, а для пет-проекта.</p><p>Вместо стандартного похода к специалистам, он решил собрать <b>уникальный слайдер</b>, объединив корпус, плату и экран <b>Z Flip5</b> с физической клавиатурой от <b>BlackBerry Q10</b>.</p><p>Получился кастомный смартфон-франкенштейн, который не только работает, но еще и вызывает ностальгию по эпохе слайдеров вроде <b>Nokia N97</b> и <b>Samsung D500</b>.</p><h2>Как устроен самодельный гибрид</h2><p>Проект начался с того, что у Плазы <b>сломался основной экран</b> на Z Flip5. Устройство все еще включалось, и его внешний (вспомогательный) экран оставался рабочим.</p><p>Вместо замены матрицы, он <b>полностью демонтировал оригинальный шарнир</b>, разобрал смартфон и извлек все, что можно было использовать повторно.</p><p>Затем он:</p><ul><li>изготовил <b>две алюминиевые рамки</b> на фрезере — для верхней части с экраном и нижней с клавиатурой;</li><li>встроил <b>магнитный механизм слайдера</b>, как у старых телефонов-раскладушек;</li><li>подключил клавиатуру от BlackBerry Q10, спаяв проводку и установив <b>Arduino Pro Micro</b> — для эмуляции клавиатуры через USB;</li><li>разработал и припаял <b>собственную печатную плату</b>, отвечающую за интерфейс между клавишами и системой Android.</li></ul><p>В результате получился настоящий рабочий слайдер: <b>экран снаружи, физическая клавиатура снизу</b>, полноценное управление интерфейсом и ввод текста.</p><figure><img src="https://media.tproger.ru/user-uploads/111041/2025-09-04/267fcf8d-8f70-4c5d-97b9-5f81153047ca.jpeg" alt="" /></figure><h2>Работает — даже в Minecraft</h2><p>Проверить результат Плаза решил максимально просто: он запустил <b>YouTube</b>, <b>Minecraft</b> и <b>Terraria</b>, набрал текст и поиграл — все через физическую клавиатуру.</p><p>Управление действительно работает: клавиши не просто нажимаются, а отправляют события в систему как обычная USB-клава.</p><p>Разумеется, на устройстве также доступен сенсорный ввод с виртуальной клавиатурой, если физическая не устраивает.</p>]]></content:encoded>
    </item>
    <item>
      <title>Android запретит установку любых .apk из интернета. Только от проверенных разработчиков</title>
      <link>https://tproger.ru/news/--android-zapretit-ustanovku-neproverennyh-prilozhenij-uzhe-s-2026-goda</link>
      <comments>https://tproger.ru/news/--android-zapretit-ustanovku-neproverennyh-prilozhenij-uzhe-s-2026-goda?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Булат Яббаров]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/--android-zapretit-ustanovku-neproverennyh-prilozhenij-uzhe-s-2026-goda</guid>
      <description><![CDATA[<p>С 2026 года Android разрешит установку только проверенных приложений: верификация станет обязательной для всех источников, включая APK</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/--android-zapretit-ustanovku-neproverennyh-prilozhenij-uzhe-s-2026-goda">Android запретит установку любых .apk из интернета. Только от проверенных разработчиков</a>»</p>]]></description>
      <category><![CDATA[Android]]></category>
      <category><![CDATA[Google]]></category>
      <category><![CDATA[iOS]]></category>
      <category><![CDATA[Работа]]></category>
      <category><![CDATA[Приложение]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Tue, 26 Aug 2025 10:29:53 GMT</pubDate>
      <content:encoded><![CDATA[<p>Google продолжает затягивать гайки Android-пользователя. Уже с 2026 года <b>на сертифицированные Android-устройства</b> можно будет устанавливать только те приложения, чьи разработчики прошли <b>официальную верификацию</b>.</p><p>Это <a href="https://9to5google.com/2025/08/25/android-apps-developer-verification/">ограничение</a> касается <b>всех способов установки</b>, включая сторонние магазины и прямое скачивание APK-файлов из интернета.</p><p>Формально речь не о блокировке альтернативных источников, а об обязательной проверке личности разработчика.</p><h2>Как будет работать новая система</h2><p>До сих пор обязательная верификация требовалась лишь при размещении приложений в Google Play. Теперь Google расширяет это требование на <b>все каналы распространения</b>:</p><ul><li>Google Play и сторонние магазины;</li><li>установку APK напрямую (sideloading);</li><li>корпоративные и кастомные дистрибуции.</li></ul><p>Чтобы распространять приложения, разработчик должен будет пройти процедуру подтверждения личности или компании. Для организаций потребуется D-U-N-S номер, а для частных лиц — базовая верификация через <b>новую консоль Android Developer Console</b>.</p><p>Отдельный процесс будет предусмотрен для студентов и энтузиастов, не связанных с коммерческой разработкой.</p><h2>Когда и где это вступит в силу</h2><p>Google запускает верификацию в несколько этапов:</p><ul><li><b>Октябрь 2025</b> — ограниченный доступ к системе для первых разработчиков.</li><li><b>Март 2026</b> — открытие верификации для всех.</li><li><b>Сентябрь 2026</b> — обязательная проверка в Бразилии, Индонезии, Таиланде и Сингапуре.</li><li><b>2027 год</b> — глобальное распространение.</li></ul><p>В этих странах любое приложение, устанавливаемое на сертифицированный Android-устройство (то есть с предустановленными сервисами Google), должно будет принадлежать <b>подтвержденному разработчику</b>.</p><h2>Зачем это Google</h2><p>В компании заявляют, что цель — борьба с мошенничеством и вредоносным ПО. Анализ Google показал, что <b>в 50+ раз больше вредоносных программ поступает через APK с интернета, чем из Google Play</b>.</p><h2>Разработчики не в восторге</h2><p>Несмотря на одобрение от властей стран Юго-Восточной Азии, среди независимых разработчиков новость вызвала беспокойство.</p><p>Также звучат опасения, что <b>новая система усилит монополию Google</b> и затруднит работу сторонним девелоперам, особенно если верификация будет сопровождаться автоматическими банами без объяснений, как это уже происходит в Play Console.</p><h2>Что дальше</h2><p>Пока остается много вопросов:</p><ul><li>можно ли будет отключить это ограничение на уровне устройства;</li><li>как будет работать студенческий/непубличный режим;</li><li>будет ли верификация обязательной на кастомных прошивках (AOSP, Lineage и др.);</li><li>и как поступит Google в странах с юридическим запретом на такие ограничения.</li></ul><p><b>Формально Android остается открытым</b>, но шаг за шагом Google приближает его к модели iOS: доступ к платформе только после одобрения централизованной системы.</p><p>И даже если APK-файлы не исчезнут полностью, доступ к ним будет только у тех, кто предъявил паспорт.</p>]]></content:encoded>
    </item>
    <item>
      <title>Вышел Linux 6.16 — Rust все глубже проникает в ядро. Что еще интересного в обновлении</title>
      <link>https://tproger.ru/news/vywel-linux-6-16---rust-vse-glubzhe-pronikaet-v-yadro--chto-eshhe-interesnogo-v-obnovlenii</link>
      <comments>https://tproger.ru/news/vywel-linux-6-16---rust-vse-glubzhe-pronikaet-v-yadro--chto-eshhe-interesnogo-v-obnovlenii?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Булат Яббаров]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/vywel-linux-6-16---rust-vse-glubzhe-pronikaet-v-yadro--chto-eshhe-interesnogo-v-obnovlenii</guid>
      <description><![CDATA[<p>Вышел Linux 6.16: Rust теперь поддерживает драйверы и GPU, XFS и Ext4 ускорились, а ядро научилось передавать звук даже в спящем режиме</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/vywel-linux-6-16---rust-vse-glubzhe-pronikaet-v-yadro--chto-eshhe-interesnogo-v-obnovlenii">Вышел Linux 6.16 — Rust все глубже проникает в ядро. Что еще интересного в обновлении</a>»</p>]]></description>
      <category><![CDATA[Linux]]></category>
      <category><![CDATA[Android]]></category>
      <category><![CDATA[Безопасность]]></category>
      <category><![CDATA[Музыка]]></category>
      <category><![CDATA[Rust]]></category>
      <category><![CDATA[VPN]]></category>
      <category><![CDATA[Intel]]></category>
      <category><![CDATA[NVIDIA]]></category>
      <category><![CDATA[AMD]]></category>
      <category><![CDATA[TCP/IP]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Wed, 30 Jul 2025 09:41:04 GMT</pubDate>
      <content:encoded><![CDATA[<p>Линус Торвальдс назвал новый релиз «спокойным, маленьким и, честно говоря, не таким уж интересным» — и это, по его мнению, отлично.</p><p>Но в действительности в <b>Linux 6.16</b> есть <a href="https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/?h=v6.16">сразу несколько</a> значимых улучшений, особенно для разработчиков и системных админов.</p><h2>Rust теперь умеет работать с драйверами и GPU</h2><p>Rust всё глубже проникает в ядро:</p><ul><li>В 6.16 появились биндинги к <b>драйверному ядру</b> и <b>PCI</b> — можно писать драйверы на Rust.</li><li>Поддержка Rust‑абстракций добавлена в <b>Direct Rendering Manager (DRM)</b> — включая ioctl, управление памятью и инфраструктуру драйверов для <b>AMD</b>, <b>NVIDIA</b> и <b>Intel</b>.</li><li>Улучшена работа с <b>крейтами</b> — станет проще собирать и встраивать модули на Rust.</li></ul><p>Код ядра по-прежнему в основном пишется на C, но Rust уверенно занимает своё место в системной разработке.</p><h2>Большие апдейты файловых систем</h2><ul><li><b>XFS</b> теперь поддерживает <b>атомарную запись многоблочных данных</b> — это важно для баз данных и отказоустойчивых систем.</li><li><b>Ext4</b> получил поддержку <b>больших folio</b>, ускорение коммитов и <b>атомарную запись для bigalloc</b> — это дало до <b>+37% скорости</b> на последовательных I/O-нагрузках.</li></ul><h2>Устройство спит — музыка играет</h2><p>Теперь <b>можно передавать звук через USB даже во сне</b>. Буквально при спящем режиме устройства. Это давно было в Android, теперь и в основном ядре.</p><h2>Прокачали безопасность</h2><ul><li>Добавлена поддержка <b>Intel TXT</b> и <b>TDX</b> — технологий для защищённых вычислений.</li><li>Улучшения в <b>AMD SEV-SNP</b> — безопасная виртуализация и шифрование памяти.</li></ul><h2>Новый уровень оптимизации под железо</h2><ul><li>Поддержка <b>Intel APX</b>: 32 единиц x86‑регистра вместо 16. Больше регистров — больше производительности.</li><li>Новый флаг <b>CONFIG_X86_NATIVE_CPU</b> — можно собирать ядро, оптимизированное под конкретный процессор. Полезно как для энтузиастов, так и для корпоративных девопсов.</li></ul><h2>Для ИИ, VPN и high-speed сетей</h2><p>В новой версии ядра улучшена поддержка <b>видеокарт NVIDIA Blackwell</b> — их уже используют в ИИ‑решениях на Linux. Также нашлось место переработке <b>TCP/IP</b> и <b>DMABUF</b> — меньше нагрузки на CPU, быстрее работа сетевых интерфейсов.</p><p><b>OpenVPN</b> стал быстрее — хоть и не обогнал WireGuard, но сократил отставание.</p>]]></content:encoded>
    </item>
    <item>
      <title>Где вести базу знаний по проекту: альтернативы Notion для айтишников в 2025</title>
      <link>https://tproger.ru/articles/gde-vesti-bazu-znanij-po-proektu--alternativy-notion-dlya-ajtiwnikov-v-2025</link>
      <comments>https://tproger.ru/articles/gde-vesti-bazu-znanij-po-proektu--alternativy-notion-dlya-ajtiwnikov-v-2025?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Татьяна Жукова]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/gde-vesti-bazu-znanij-po-proektu--alternativy-notion-dlya-ajtiwnikov-v-2025</guid>
      <description><![CDATA[<p>Обзор лучших альтернатив Notion для ведения базы знаний в IT-проектах в 2025 году. Сравнение функционала, интеграций и удобства для разработчиков и команд.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/gde-vesti-bazu-znanij-po-proektu--alternativy-notion-dlya-ajtiwnikov-v-2025">Где вести базу знаний по проекту: альтернативы Notion для айтишников в 2025</a>»</p>]]></description>
      <category><![CDATA[Интернет]]></category>
      <category><![CDATA[API]]></category>
      <category><![CDATA[Linux]]></category>
      <category><![CDATA[Open Source]]></category>
      <category><![CDATA[Android]]></category>
      <category><![CDATA[Git]]></category>
      <category><![CDATA[Безопасность]]></category>
      <category><![CDATA[Опрос]]></category>
      <category><![CDATA[Google]]></category>
      <category><![CDATA[Windows]]></category>
      <category><![CDATA[iOS]]></category>
      <category><![CDATA[Slack]]></category>
      <category><![CDATA[Работа]]></category>
      <category><![CDATA[Tor]]></category>
      <category><![CDATA[HTML]]></category>
      <category><![CDATA[GitHub]]></category>
      <category><![CDATA[Боты]]></category>
      <category><![CDATA[Базы данных]]></category>
      <category><![CDATA[Управление проектами]]></category>
      <category><![CDATA[HR]]></category>
      <category><![CDATA[Telegram]]></category>
      <category><![CDATA[На английском языке]]></category>
      <category><![CDATA[GitLab]]></category>
      <category><![CDATA[Сервисы]]></category>
      <category><![CDATA[Docker]]></category>
      <category><![CDATA[macOS]]></category>
      <category><![CDATA[Визуализация]]></category>
      <category><![CDATA[Техподдержка]]></category>
      <category><![CDATA[5g]]></category>
      <category><![CDATA[Приложение]]></category>
      <category><![CDATA[Сервер]]></category>
      <category><![CDATA[1C]]></category>
      <category><![CDATA[Figma]]></category>
      <category><![CDATA[Markdown]]></category>
      <category><![CDATA[Бизнес]]></category>
      <category><![CDATA[Notion]]></category>
      <category><![CDATA[CI/CD]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Tue, 29 Jul 2025 14:00:04 GMT</pubDate>
      <content:encoded><![CDATA[<p>С Notion знакомы почти все, но не всем он подходит: кто-то боится блокировок (и не зря), кто-то устал от ограничений веб-интерфейса, а кому-то нужно больше гибкости в настройках и хранении данных. Мы собрали удобные альтернативы, которые помогут айтишникам вести базу знаний, управлять проектной документацией, строить внутренние вики и не бояться за свои данные. В подборке — российские и зарубежные сервисы: от on-prem-развёртывания до p2p-решений без облаков и подписок.</p><h2>1. Yonote</h2><p><a href="https://yonote.ru/">Yonote</a> — российская база знаний и система для работы с проектами. Помогает командам и отдельным пользователям собирать и систематизировать информацию, вести базы знаний, планировать проекты и обмениваться документами. Платформа сочетает гибкий интерфейс, как в Notion, и функциональность KMS-систем: блочный редактор, доски, таблицы и базы данных работают в одном окне. Отличие Yonote — бесконечные доски для визуального планирования, поддержка on-prem-развёртывания и хранение данных в России.</p><figure><img src="https://media.tproger.ru/user-uploads/102593/2025-07-29/cb268bc0-5d5c-42e4-add4-a48119f9d813.png" alt="" /></figure><h2>Сценарии использования</h2><p>Yonote подходит для:</p><ul><li>Командной работы: планирование задач, контроль<br />сроков, управление проектами, CRM, сбор и визуализация отчётов, хранение<br />инструкций и регламентов.</li><li>Личных целей: заметки, трекер задач,<br />бюджетирование, планирование поездок, учёба и хранение материалов.</li><li>Создания Wiki: организация базы знаний о<br />продукте с древовидной структурой, вставкой таблиц, диаграмм и медиа, историей<br />изменений и комментариями.</li><li>Ведения<br />документации: базы данных по<br />клиентам, проектам и инвентарю с таблицами, фильтрами, канбан-досками и<br />календарями, прикреплением файлов и ссылок.</li></ul><h2>Формат работы</h2><p>Yonote работает через web-интерфейс с удобным Markdown-редактором, поиском и историей изменений. Можно встраивать код, схемы и embed-ссылки из GitHub, Figma, Miro и других сервисов.<b></b></p><p>Поддерживается полный доступ по API, импорт и экспорт в Markdown и PDF, хранение на своих серверах (on-prem) и в облаке. Yonote предлагает более 30 интеграций, включая GitHub, Jira, Trello, Telegram, Miro и Airtable. Настраиваются уровни доступа: можно создавать гостевые аккаунты, разграничивать права на чтение и редактирование, делиться публичными ссылками.</p><figure><img src="https://media.tproger.ru/user-uploads/102593/2025-07-29/15f1bf63-f765-49ce-81c0-bb726d240417.png" alt="" /></figure><p>Yonote заменяет несколько инструментов сразу (Trello, Google Docs, Confluence, личные заметки), легко адаптируется под любые задачи, подходит для госорганизаций, частных компаний и личного использования.</p><h2>Тарифы</h2><ul><li>Базовый — бесплатно, 5 ГБ, до 5 пользователей и 10 гостей.</li><li>Старт — 149 ₽ за пользователя в месяц, 20 ГБ, до 50 гостей.</li><li>Про — 249 ₽ за пользователя в месяц. Доступен безлимит гостей, неограниченное хранилище, SSO.</li><li>Enterprise — тариф для организаций с расширенной поддержкой и контролем.</li></ul><h2>2. Anytype</h2><p><a href="https://anytype.io/">Anytype</a> — «приложение для всего», которое предлагает создать собственную локальную сеть для хранения знаний, заметок, трекеров привычек, рецептов и канбан-досок. По принципу работы похоже на Notion: блоковая структура, гибкие базы данных и визуальные представления информации.</p><p>Главное отличие — Anytype полностью локален и использует P2P-синхронизацию без серверов и посредников, данные остаются только у вас, никто не имеет к ним доступа. Приложение с открытым кодом и доступной архитектурой, работает без интернета и требует установки на устройство.</p><figure><img src="https://media.tproger.ru/user-uploads/102593/2025-07-29/cef4a88c-bab4-4604-ac14-954b19a6c4d7.png" alt="" /></figure><h2>Сценарии использования</h2><p><b>Личные цели:</b> создание ежедневников, трекеров привычек, расписаний, конспектов, ведение стратегических заметок в одном месте, даже без подключения к интернету.</p><p><b>Работа в команде:</b> организация командных вики и канбан-досок, совместная работа в группах, ведение календарей.</p><p><b>Сообщество и креатив:</b> управление блогом, создание лент-контента, рекомендаций и курируемых подборок, построение сообщества с объявлениями и вики-страницами.</p><h2>Формат работы</h2><p>Anytype работает офлайн на мобильных и десктопных устройствах (iOS, Android, Windows, macOS, Linux), без веб-версии. Скоростная P2P-синхронизация возможна через локальные сети.</p><p>Интерфейс основан на визуальном код-фри (no-code) редакторе: можно создавать базы данных, таблицы, канбаны, галереи и граф-связи между объектами.</p><figure><img src="https://media.tproger.ru/user-uploads/102593/2025-07-29/af471c87-a400-44d6-9306-9ee7905f8941.png" alt="" /></figure><p>Важно: все данные хранятся в локальном зашифрованном «хранилище» пользователя. При создании аккаунта генерируется ключ из 12 слов, который нужно хранить отдельно — без него доступ не восстановить.</p><p>Для разработчиков:</p><ul><li>Поддерживает локальное хранение данных и самостоятельный бэкап в любое место по выбору пользователя.</li><li>Нет API в привычном виде, но возможно расширить функциональность за счёт открытого кода и протоколов.</li><li>Настройки доступа гибко регулируются на уровне устройства, команды и отдельных объектов в приложении.</li></ul><h2>Цена и условия пользования</h2><ul><li>Explorer — бесплатно, подходит для личного использования.</li><li>Builder — $99 в год за пользователя, открывает расширенные функции и поддержку командной работы.</li><li>Co-Creator — $299 в год за пользователя, с расширенными возможностями и дополнительной свободой кастомизации.</li></ul><p><b>Весь интерфейс и работа — на английском языке. </b></p><h2>3. Obsidian</h2><p><a href="https://obsidian.md/">Obsidian</a> — это бесплатное и гибкое приложение для ведения заметок, личных знаний и проектного управления. Поддерживает базы знаний, связи между заметками, визуализацию в графах и публикацию вики. Главная особенность — работа локально на устройстве с хранением заметок в открытых форматах Markdown, без принудительной привязки к облаку. Обеспечивает полную приватность и контроль над данными, даже оффлайн.</p><figure><img src="https://media.tproger.ru/user-uploads/102593/2025-07-29/0cb8dbbd-2e8b-4122-a3d1-dc83324e73cf.png" alt="" /></figure><h2>Сценарии использования</h2><p>Есть несколько сценариев:</p><ul><li>Личные заметки и дневники: быстрый доступ к записям на устройстве, структурирование мыслей, создание связей между идеями.</li><li>База знаний и обучение: построение персональных вики с перекрёстными ссылками, графами связей и быстрым поиском.</li><li>Управление проектами и исследованиями: создание канбанов и карт идей в Canvas для планирования и брейншторминга, публикация заметок для команды</li></ul><h2>Формат работы</h2><p>Obsidian — десктопное и мобильное приложение (Windows, macOS, Linux, iOS, Android). Доступны следующие форматы:</p><ol><li>Поддержка открытых форматов файлов (Markdown), которая обеспечивает долгосрочное хранение данных без зависимости от сервиса.</li><li>С помощью Obsidian Publish можно публиковать заметки как публичную вики, документацию с настраиваемым внешним видом и быстрым поиском.</li></ol><p>Плагины позволяют создавать интеграции и автоматизировать процессы в зависимости от потребностей команды.</p><figure><img src="https://media.tproger.ru/user-uploads/102593/2025-07-29/6e777ea6-845b-485f-a972-68e67f4a7967.png" alt="" /></figure><p>Есть поддержка истории версий и работы с командой в рамках общих хранилищ, при этом приватность отдельных файлов сохраняется.</p><h2>Цена и условия пользования</h2><ul><li>Бесплатно: использование приложения для личных нужд, хранение данных локально.</li><li>Sync — $4 в месяц за пользователя при оплате за год, синхронизация заметок между устройствами с шифрованием, история версий, совместная работа в общих хранилищах.</li><li>Publish — $8 в месяц за сайт при оплате за год, публикация заметок на сайт без технических знаний, настройка тем и структуры.</li></ul><h2>4. Gramax</h2><p><a href="https://gram.ax/ru">Gramax</a> — платформа для подготовки документации в подходе Docs as Code. Позволяет создавать и редактировать статьи в визуальном редакторе, хранить исходники в Markdown и версионировать их с помощью Git. Подходит для тех, кто хочет управлять документами, знаниями и любым другим контентом в своей инфраструктуре гибко и безопасно.</p><p>Как и в Notion, в Gramax есть совместное использование, комментарии и AI-функции (создание и форматирование текста, перевод, поиск по статьям). Отличие — в Git‑first подходе, открытом коде и возможности использовать платформу бесплатно без ограничений.</p><h2>Сценарии использования</h2><p>Gramax особенно полезен для:</p><ul><li>Документации по продукту: создание портала с инструкциями, оформленного в корпоративном стиле, с быстрым обновлением и AI-поиском.</li><li>Внутренней проектной документации: база знаний с версиями, Merge Request, поддержкой OpenAPI и технических требований.</li><li>Базы знаний для команд: хранение описаний процессов и систем с удобным поиском и доступом через Git.</li></ul><figure><img src="https://media.tproger.ru/user-uploads/102593/2025-07-29/df4821a8-42a6-4726-b608-d6c7b5fc01fd.png" alt="" /></figure><h2>Формат работы</h2><p>Gramax делится на:</p><ul><li>Редактор: web и десктоп на Win/Mac/Linux, можно использовать офлайн.</li><li>Git-хранилище: подключается GitLab, GitHub, Bitbucket и другие, команды Git встроены в интерфейс.</li><li>Портал документации: разворачивается как статический сайт или через Docker.</li></ul><p>Для разработчиков есть поддержка диаграмм (Mermaid, Draw.io, PlantUML), подсветка кода (100+ языков), механизм сравнения версий, мультиязычность. Также на портале для чтения можно отображать документацию на разные версии ПО.</p><figure><img src="https://media.tproger.ru/user-uploads/102593/2025-07-29/41cc26e8-09bc-4a52-8892-12d624d670e8.png" alt="" /></figure><p>Gramax также поддерживает API для передачи данных в сторонние системы и CLI для интеграции в CI/CD, позволяя автоматически собирать документацию в HTML, PDF и DOCX. Есть импорт из Confluence, Notion и Yandex Wiki, экспорт в DOCX и PDF с фирменным стилем.</p><h2>Цена и условия</h2><ul><li>Open Source — бесплатно, без ограничений. Управление доступом на уровне репозиториев.</li><li>Gramax Enterprise Server — 54 000 ₽ за редактора навсегда, первый год обновления бесплатно, далее 40% от лицензии. Управление доступом — по ролям и группам с SSO и корпоративными политиками.</li></ul><h2>5. KMS Gran</h2><p><a href="https://gran-soft.ru/kms">KMS Gran</a> — база знаний с API и выстроенными бизнес-процессами. Помогает создавать и структурировать проектную документацию, управлять знаниями в команде и автоматизировать рутину. Платформа сочетает возможности вики, систем управления документами, визуальных блок-схем и AI-инструментов для поиска и анализа.</p><figure><img src="https://media.tproger.ru/user-uploads/102593/2025-07-29/527d19d3-2727-484a-9f57-d28d8d042093.png" alt="" /></figure><p>Как и в Notion, в KMS Gran есть WYSIWYG-редактор, мобильная версия и AI для работы с текстом. Отличие в том, что на платформе есть модуль «Скриптинг» для построения процессов и гибкая система прав доступа. Подходит командам, которым важно хранить данные локально и быстро строить рабочую рутину.</p><h2>Сценарии использования</h2><ul><li>Вики по продуктам и техдокументация. Доступно создание структурированных статей, глоссариев, руководств и спецификаций. Удобный поиск с морфологией и AI-помощником помогает находить информацию, а кириллица поддерживается корректно.</li><li>Автоматизация бизнес-процессов. С помощью модуля «Скриптинг» можно строить визуальные блок-схемы процессов, задавать условия и добавлять к шагам инструкции и файлы. Подходит для команд поддержки и контакт-центров.</li><li>AI-помощник для пользователей. Индексирует статьи и отвечает на вопросы по проектам с указанием источников. Сохраняет контекст диалогов, позволяет оценивать ответы и формирует отчеты для анализа востребованности контента.</li></ul><figure><img src="https://media.tproger.ru/user-uploads/102593/2025-07-29/c841094c-4bf8-436c-b19b-006930b7f518.png" alt="" /></figure><h2>Формат работы</h2><p>KMS Gran работает через web-интерфейс с удобным WYSIWYG-редактором, поддерживающим Markdown, и адаптирован под мобильные устройства. В системе доступен полнотекстовый поиск с морфологией и возможностью получать ответы от AI, а также версионирование с откатом и архивацией статей. Для согласования внутри команды предусмотрена отметка о прочтении. В документы можно вставлять код и схемы через интеграцию с Draw.io, но подключение embed-ссылок из GitHub и Figma не поддерживается.</p><figure><img src="https://media.tproger.ru/user-uploads/102593/2025-07-29/3b89b9b3-a569-427b-bc18-f39aba772be6.png" alt="" /></figure><p>Платформа поддерживает работу через API для интеграции с внешними системами, хотя CLI в ней не предусмотрен. Можно настроить подключение к Slack, GitHub, CI/CD и Jira через API. Гибкая система управления доступом позволяет задавать роли как на уровне всей системы, так и в отдельных проектах и разделах, а также управлять доступом к разным документам.</p><h2>Цена и условия</h2><ul><li>SaaS: аренда по подписке, ежемесячная оплата за пользователя. Включены базовый функционал, серверные ресурсы и поддержка 9×5, опционально AI-модуль.</li><li>On-Premise: развёртывание у заказчика, лицензия на длительный срок, поддержка AI-модуля и техподдержка.</li><li>AI-модуль доступен как в SaaS, так и On-Premise.</li></ul><p>Условия зависят от объема лицензий, срока использования и набора функций, обсуждаются индивидуально. Все тарифы включают базовый функционал.</p><h2>Как выбрать платформу для базы знаний</h2><p>Выбор платформы зависит от ваших задач. Для удобства собрали таблицу с особенностями платформ.</p><figure><img src="https://media.tproger.ru/user-uploads/102593/2025-07-29/44b09d12-0a2c-43df-b80f-5410c0c67351.png" alt="" /></figure><p>Таким образом:</p><p>Если приоритет — работа с документацией как с кодом, версионирование и публикация через Git — ваш выбор<b> Gramax</b>.</p><p>Нужна визуализация, работа с таблицами, досками и интеграции для команды — стоит обратить внимание на <b>Yonote</b>.</p><p>Если вы ищете корпоративное решение с AI, разграничением прав доступа и встроенными процессами — подойдёт <b>KMS Gran</b>.</p><p><b>Anytype</b> или <b>Obsidian</b> подойдут тем, кто ценит контроль над данными и гибкость кастомизации.</p>]]></content:encoded>
    </item>
    <item>
      <title>BitChat — новый офлайн-мессенджер от создателя Twitter появился в App Store</title>
      <link>https://tproger.ru/news/bitchat---novyj-oflajn-messendzher-ot-sozdatelya-twitter-poyavilsya-v-app-store</link>
      <comments>https://tproger.ru/news/bitchat---novyj-oflajn-messendzher-ot-sozdatelya-twitter-poyavilsya-v-app-store?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Булат Яббаров]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/bitchat---novyj-oflajn-messendzher-ot-sozdatelya-twitter-poyavilsya-v-app-store</guid>
      <description><![CDATA[<p>BitChat — офлайн-мессенджер от создателя Twitter: шифрование, Bluetooth и без серверов, но пока почти без пользователей и функций</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/bitchat---novyj-oflajn-messendzher-ot-sozdatelya-twitter-poyavilsya-v-app-store">BitChat — новый офлайн-мессенджер от создателя Twitter появился в App Store</a>»</p>]]></description>
      <category><![CDATA[Интернет]]></category>
      <category><![CDATA[Android]]></category>
      <category><![CDATA[Безопасность]]></category>
      <category><![CDATA[iOS]]></category>
      <category><![CDATA[GitHub]]></category>
      <category><![CDATA[App Store]]></category>
      <category><![CDATA[Мессенджер]]></category>
      <category><![CDATA[Twitter]]></category>
      <category><![CDATA[Приложение]]></category>
      <category><![CDATA[Сервер]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Tue, 29 Jul 2025 10:49:11 GMT</pubDate>
      <content:encoded><![CDATA[<p>В App Store <a href="https://apps.apple.com/us/app/bitchat-mesh/id6748219622">вышел</a> <b>BitChat</b> — децентрализованный мессенджер от <b>Джека Дорси</b>, со-основателя Twitter.</p><p>Он весит всего 2,1 МБ, не требует интернета или аккаунта и позволяет обмениваться <b>зашифрованными сообщениями через Bluetooth</b>.</p><p>Приложение позиционируется как экспериментальный проект выходного дня и работает без серверов — всё хранится локально на устройстве.</p><h2>Что уже умеет BitChat</h2><ul><li>Работает <b>в фоновом режиме</b>.</li><li>Поддерживает <b>сквозное шифрование</b> для приватных чатов.</li><li>Позволяет <b>добавлять избранных пользователей</b>.</li><li>Включает <b>панический режим</b> — три нажатия на логотип стирают все данные.</li><li>Автоматически <b>обновляет Peer ID</b> — идентификатор пользователя.</li><li>Работает <b>без аккаунтов</b>, <b>e-mail</b> и <b>номера телефона</b>.</li></ul><p>Разработчик подчёркивает: <b>никакой серверной инфраструктуры</b>. Все коммуникации — через <b>Bluetooth и локальные p2p-сети</b>. Медиа пока не поддерживаются — только текстовые сообщения.</p><blockquote>«Когда рядом появится другой битчаттер, система пришлёт уведомление»</blockquote><h2>Пользователи жалуются, что «там пока никого нет»</h2><p>Пока в BitChat пустовато: пользователи в соцсетях пишут, что <b>не могут найти собеседников</b>.</p><p>Дорси призвал не спешить с выводами: «Дайте приложению время». Также уже отправлено обновление, которое <b>должно устранить баги в переписке между Android и iOS</b>.</p><p>На момент публикации:</p><ul><li><b>Официальная версия доступна только в App Store</b>.</li><li>Android-сборку можно установить вручную <a href="https://github.com/permissionlesstech/bitchat-android/releases/tag/0.8">через</a> <b>GitHub-инструкцию</b>.</li><li>В iOS-приложении висит предупреждение: <b><i>«Безопасность переписок ещё не прошла полный аудит»</i></b>. Не рекомендуется использовать в критических ситуациях.</li></ul><p>BitChat — ещё один шаг в сторону <b>локальной приватности</b>, децентрализации и мессенджеров без бигтеха. Но станет ли проект чем-то большим, чем просто «проект выходного дня» — покажет время.</p>]]></content:encoded>
    </item>
    <item>
      <title>Почему никто не читает пользовательские соглашения и что вы пропускаете: чем опасна цифровая слепота в 2025 году</title>
      <link>https://tproger.ru/articles/pochemu-nikto-ne-chitaet-polzovatelskie-soglaweniya-i-chto-vy-propuskaete--chem-opasna-cifrovaya-slepota-v-2025-godu</link>
      <comments>https://tproger.ru/articles/pochemu-nikto-ne-chitaet-polzovatelskie-soglaweniya-i-chto-vy-propuskaete--chem-opasna-cifrovaya-slepota-v-2025-godu?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Денис Кудерин]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/pochemu-nikto-ne-chitaet-polzovatelskie-soglaweniya-i-chto-vy-propuskaete--chem-opasna-cifrovaya-slepota-v-2025-godu</guid>
      <description><![CDATA[<p>95% россиян принимают соглашения без чтения — узнайте, какие риски скрывают длинные тексты: от скрытого сбора данных до потери прав на контент. 🔒 Анализ UX-ловушек, опасных пунктов в документах VK, Яндекса и Ozon, и новые законы РФ. Практические советы: как защитить данные и читать договоры осознанно в 2025 году.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/pochemu-nikto-ne-chitaet-polzovatelskie-soglaweniya-i-chto-vy-propuskaete--chem-opasna-cifrovaya-slepota-v-2025-godu">Почему никто не читает пользовательские соглашения и что вы пропускаете: чем опасна цифровая слепота в 2025 году</a>»</p>]]></description>
      <category><![CDATA[SEO]]></category>
      <category><![CDATA[Android]]></category>
      <category><![CDATA[Инструменты]]></category>
      <category><![CDATA[Git]]></category>
      <category><![CDATA[Apple]]></category>
      <category><![CDATA[Опрос]]></category>
      <category><![CDATA[Практика]]></category>
      <category><![CDATA[Google]]></category>
      <category><![CDATA[PHP]]></category>
      <category><![CDATA[iOS]]></category>
      <category><![CDATA[Музыка]]></category>
      <category><![CDATA[Работа]]></category>
      <category><![CDATA[HTML]]></category>
      <category><![CDATA[GitHub]]></category>
      <category><![CDATA[Боты]]></category>
      <category><![CDATA[Роскомнадзор]]></category>
      <category><![CDATA[Amazon]]></category>
      <category><![CDATA[HR]]></category>
      <category><![CDATA[Сервисы]]></category>
      <category><![CDATA[Яндекс]]></category>
      <category><![CDATA[Блокчейн]]></category>
      <category><![CDATA[QA]]></category>
      <category><![CDATA[Аналитика]]></category>
      <category><![CDATA[Мессенджер]]></category>
      <category><![CDATA[Россия]]></category>
      <category><![CDATA[5g]]></category>
      <category><![CDATA[Epic Games]]></category>
      <category><![CDATA[Игра]]></category>
      <category><![CDATA[Приложение]]></category>
      <category><![CDATA[Сбер]]></category>
      <category><![CDATA[Сервер]]></category>
      <category><![CDATA[Дизайн]]></category>
      <category><![CDATA[CMS]]></category>
      <category><![CDATA[аналитик]]></category>
      <category><![CDATA[микро]]></category>
      <category><![CDATA[Бизнес]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Wed, 23 Jul 2025 14:00:03 GMT</pubDate>
      <content:encoded><![CDATA[<p>Вы только что зарегистрировались в облачном хранилище, скачали новое приложение для контроля умного дома или подключили банковский сервис. Перед доступом к функционалу появляется экран с многостраничным текстом, который никто не читает. Вы тоже его не читаете, просто кликаете «Принять» и забываете.</p><p>Такая практика носит массовый характер: по данным <a href="https://iz.ru/1285198/roman-kildiushkin/plod-neznaniia-90-rossiian-ne-dochityvaiut-polzovatelskie-soglasheniia">исследований</a>, около 95% россиян принимают условия без изучения документа. При этом часть опрошенных вообще считает, что прочитать соглашение полностью физически невозможно (слишком много букв). Половина опрошенных даже не в курсе, о чем там написано.</p><p>Пользовательские соглашения — юридические документы, регулирующие права, обязанности и риски при использовании цифровых продуктов. Их игнорирование сравнимо с подписанием договора с закрытыми глазами. Почему это стало нормой? Какие «сюрпризы» скрываются за малопонятными формулировками? И как защитить свои данные в условиях российской цифровой экосистемы?</p><h2>Причины массового игнорирования: системные ловушки</h2><p>Проблема кроется не в лени пользователей (или не только в ней), а в продуманной системе, превратившей соглашения в формальность. Три ключевых барьера делают осознанное согласие практически недостижимым.</p><h3>Большой объем и языковой барьер</h3><p>Современные соглашения напоминают юридические трактаты. Средний документ российских сервисов содержит 16,800 слов. Роскомнадзор критикует избыточность текстов, но не публикует официальной статистики. Например, документация Ozon занимает 23,700 слов — это больше, чем повесть Чехова «Дуэль» (13,700 слов).  <a href="https://yandex.ru/legal/disk_termsofuse/ru/">Политика Яндекс.Диска</a> занимает 57 страниц, а условия СберБанк Онлайн — 43 страницы.</p><figure><img src="https://media.tproger.ru/user-uploads/113565/2025-07-21/ba4d45a5-5842-462f-b45c-4485fe4b7b91.png" alt="" /></figure><p>Главная проблема — язык. Юридические термины вроде «сублицензирование», «деперсонализация данных» или «арбитражная оговорка» требуют специальных знаний. Как показывает практика судебных споров и жалоб в Роскомнадзор, такие формулировки часто непонятны рядовым пользователям. Барьер усугубляется тем, что юридическая грамотность в РФ остается низкой: далеко не все россияне уверенно читают договоры.</p><blockquote>Ирония в том, что даже практикующие юристы часто соглашаются с
пользовательскими соглашениями, не читая их, — и причина не только в
профессиональной терминологии. Большинство таких документов перегружены
длинными абзацами, написаны мелким шрифтом и совершенно не приспособлены для
чтения на мобильных устройствах. В результате даже специалисту сложно вычленить
из текста то, что действительно важно. А еще и мучают вопросы: зачем и за что
это все мне? <br /><br />Но есть хорошие примеры. Скажем, один из крупных каршеринговых сервисов
предлагает не только полную версию соглашения, но и отдельное краткое саммари с
ключевыми условиями: ответственностью за штрафы, страховыми случаями,
особенностями оплаты и основными ограничениями. Такой подход позволяет быстро
понять, на что вы соглашаетесь, не тратя часы на чтение каждой строчки, и
действительно делает юридическую информацию доступной для всех.</blockquote><h3>UX-дизайн, провоцирующий спешку</h3><p>Современные интерфейсы часто проектируются так, что внимательное прочтение соглашений становится затруднительным. Кнопка «Принять» обычно выделяется контрастным цветом (например, зеленым или синим), а опция отказа скрывается:</p><ul><li>в приложениях отклонение условий требует перехода в «расширенные настройки» и сопровождается прочими сложностями;</li><li>кнопки «не соглашаюсь» выглядят менее заметными — например, серые на белом фоне.</li></ul><p>Такие паттерны усиливают «эффект туннельного зрения» — психологический феномен, при котором пользователь фокусируется на цели (быстром доступе к сервису), игнорируя второстепенные элементы. Дизайнеры дополнительно стимулируют это: например, используют таймеры обратного отсчета («Осталось 00:59»), чем создают искусственную спешку. Сообщения типа «99% пользователей уже приняли условия» формируют социальное давление.</p><figure><img src="https://media.tproger.ru/user-uploads/113565/2025-07-21/6e97fb92-dadf-4f2d-9b91-c2b5ddafcd53.png" alt="" /></figure><h3>Мнимый выбор в условиях монополий</h3><p>После блокировки зарубежных сервисов в 2023 году российский рынок заняли локальные альтернативы. Но переход к отечественным платформам не дал пользователям реальной свободы.</p><p>Почему выбор остаётся мнимым?  Попробуйте использовать СберБанк Онлайн без принятия политики обработки данных. Система выдаст ошибку: «Для продолжения необходимо согласиться с условиями». Аналогично в VK: отказ от соглашения означает потерю доступа к сообщениям и группам.</p><blockquote>Мнимый выбор — это не всегда подвох со стороны сервиса. Даже по новым
европейским правилам (Digital Services Act) платформы должны давать вам
«базовую версию» без персонализированной рекламы, но не обязаны работать вообще
без сбора данных. <br /><br />В России всё устроено схоже: если без ваших персональных данных сервис
просто не сможет функционировать (например, банк или мессенджер), отказ в
доступе — это не нарушение закона. <br /><br />Проблема начинается там, где сервис требует от вас избыточную информацию:
например, запрашивает паспорт для заказа еды или такси, требует согласие на
передачу ваших данных рекламным партнёрам ради просмотра видео или просит
доступ к вашим контактам и галерее там, где это не нужно для работы сервиса.
Вот такие запросы уже выходят за рамки необходимого и могут считаться
нарушением закона о персональных данных.</blockquote><p>Евросоюз в 2024 году ввел <a href="https://digital-strategy.ec.europa.eu/en/policies/digital-services-act-package">Digital Services Act</a>, обязывающий платформы предлагать базовую версию без сбора данных. В России аналогичные нормы в законе «О персональных данных» (152-ФЗ) начали работать только с 2025 года. У пользователя есть право отозвать согласие на обработку данных, но не все сервисы готовы сохранять функционал после отказа.</p><h2>Что скрывают соглашения: реалии цифрового мира</h2><p>Игнорируя пользовательские соглашения, пользователи невольно соглашаются на условия, иногда выходящие за рамки разумного сбора данных. Эти практики подтверждены регуляторными решениями, судебными кейсами и открытой документацией сервисов.</p><h3>Расширенный сбор данных под видом «аналитики»</h3><p>Яндекс.Карты сохраняют историю перемещений даже при деактивированном приложении. Сбор геоданных без явного уведомления при каждом запуске нарушает принцип минимальной достаточности (предоставление только необходимого для достижения цели). Это возможно, если в настройках устройства и приложения включена геолокация и история местоположений.</p><p>VK Музыка в пункте 4.3 пользовательского соглашения разрешает анализ аудиопотока через микрофон для идентификации фоновых треков. Технология активируется автоматически при первом запуске, без отдельного запроса на разрешение.</p><p>После ухода зарубежных сервисов российские платформы переняли спорные методы: например, VK Мессенджер хранит метаданные переписки (время отправки, IP-адреса, идентификаторы устройств) два года — дольше, чем это необходимо для операционной деятельности.</p><p>Закон требует удалять данные после достижения целей обработки, но не устанавливает жестких сроков. Этим пользуются сервисы. В политике конфиденциальности они указывают «хранение данных в течение срока, необходимого для выполнения бизнес-задач» — формулировка позволяет фактически бессрочно хранить адреса и телефоны пользователей.</p><blockquote>Формулировки про «хранение данных столько, сколько нужно для бизнеса» выглядят довольно расплывчато и, с юридической точки зрения, не могут считаться самостоятельной и достаточной целью: такая причина хранения вряд ли будет признана обоснованной при проверке. Тем не менее, именно за такими фразами иногда скрывают ссылку на так называемый законный интерес — этот механизм широко применяется в Европе по стандарту GDPR. В России, напротив, операторы редко ссылаются на законный интерес напрямую: это связано с тем, что у нас сложнее требования к обоснованию сроков и объёмов хранения данных, и риски для компании выше. <br /><br />В качестве примера можно привести ситуацию, когда оператор оставляет ваши контактные данные и историю заказов после завершения сделки, чтобы иметь возможность вернуть деньги или рассмотреть вашу жалобу. Или, например, хранит историю обращений для расследования мошенничества или предотвращения повторных атак (антифрод). <br /><br />Даже если такие обстоятельства действительно есть, компания обязана чётко объяснить, зачем ей по-прежнему нужны ваши данные и как долго они будут храниться. Если это не будет убедительно, регулятор может признать хранение избыточным.</blockquote><p>Умные колонки с голосовыми помощниками (такие как «Яндекс.Станция» или устройства Sber) постоянно анализируют звуковое окружение для активации по ключевым словам, что создает риск случайной записи приватных разговоров.</p><blockquote>Обезличенная статистика нужна бизнесу: знать, сколько пользователей на
сайте, когда пик нагрузки, какие разделы популярны. Закон такое разрешает, если
никто не может узнать, что это были именно вы. <br /><br />Но если сервис начинает собирать «поведенческие следы» — какие фильмы
смотрите, что ищете, на какие кнопки кликаете, и использует эти данные для
ваших персональных рекомендаций, это уже обработка персональных данных, даже
если вы не вводили свои ФИО. Современный подход — всплывающее окно с «переключателями»:
хотите только технические куки или соглашаетесь на аналитику и персонализацию.<br /><br />Отказаться от передачи данных должно быть так же
легко, как согласиться. Если же настройки глубоко спрятаны или их вообще нет —
это явное нарушение прав пользователя. Вы вправе знать, зачем сервис собирает
ваши данные, и контролировать этот процесс.</blockquote><p>Исследования подтверждают:</p><ul><li>Ложные срабатывания. Ассистенты <a href="https://www.tadviser.ru/index.php/%D0%A1%D1%82%D0%B0%D1%82%D1%8C%D1%8F:%D0%91%D0%B5%D0%B7%D0%BE%D0%BF%D0%B0%D1%81%D0%BD%D0%BE%D1%81%D1%82%D1%8C_%D1%83%D0%BC%D0%BD%D1%8B%D1%85_%D0%BA%D0%BE%D0%BB%D0%BE%D0%BD%D0%BE%D0%BA">активируются</a> до 19 раз в сутки из-за фоновой речи, слов-омофонов или аудиоконтента (например, при просмотре сериалов).</li><li>Технические уязвимости. Ученые <a href="https://4pda.to/2025/06/13/443283/uchyonye_nashli_sposob_proslushki_noutbukov_i_umnykh_kolonok/">обнаружили</a>, что MEMS-микрофоны в таких устройствах излучают радиосигналы, которые можно перехватить FM-приемником даже через бетонные стены.</li><li>Хранение данных. Записи голосовых команд сохраняются на серверах производителей неограниченное время. В 2019 году сотрудники Amazon <a href="https://www.bloomberg.com/news/articles/2019-04-10/is-anyone-listening-to-you-on-alexa-a-global-team-reviews-audio">признались</a> в прослушке аудио с Echo без ведома пользователей.</li></ul><figure><img src="https://media.tproger.ru/user-uploads/113565/2025-07-21/0fb61fc0-b5b1-49a4-9e53-f8b5ef22bafb.png" alt="" /></figure><p>Как минимизировать угрозы:</p><ol><li>Отключайте микрофоны колонок физической кнопкой (если есть) при обсуждении конфиденциальных тем.</li><li>Откажитесь в настройках от «персонализированных ответов» и отправки аудиоданных для «улучшения сервиса».</li><li>Регулярно удаляйте историю запросов через приложение-компаньон (например, «Дом с Алисой»).</li></ol><p><i>Важно: Пользовательское соглашение «Яндекса» прямо разрешает обработку фонового аудио для «технического анализа», но не уточняет сроки хранения или алгоритмы фильтрации. Для устройств Sber аналогичные условия описаны в разделе «Данные голосового взаимодействия».</i></p><h3>Передача прав на контент</h3><p>Стандартная формулировка «неисключительная лицензия» в облачных сервисах имеет далеко идущие последствия. Политика Mail.ru Cloud прямо разрешает использовать загруженные файлы для обучения ИИ-алгоритмов. На практике это означает, что ваши фото могут стать частью тренировочных данных для нейросетей распознавания лиц.</p><p>Маркетплейс Ozon в разделе «Обмен информацией» своего соглашения допускает передачу истории покупок партнерам для таргетированной рекламы. Вряд ли пользователи добровольно согласились бы на такие условия, если бы прочли о них заранее.</p><h3>Автоматическое продление подписок</h3><p>Проблема скрытых списаний остается массовой. Пользователи массово жалуются на автоматическое продление подписок. Например:</p><ul><li>Сервис IVI продлевает платный доступ без отдельного подтверждения после пробного периода.</li><li>Яндекс.Плюс списывает средства за 3 дня до окончания расчетного цикла в случае, если юзер не отключил автопродление. Яндекс делает это, «чтобы обеспечить клиентам непрерывный доступ к сервису, даже если платеж задерживается».</li></ul><p>Особую опасность представляют детские приложения, где случайные покупки происходят из-за неочевидного интерфейса. В 2024 году Федеральная торговая комиссия США (FTC) <a href="https://ixbt.games/news/2024/12/10/epic-games-vernula-obmanutym-detyam-v-fortnite-72-milliona-dollarov.html">оштрафовала</a> Epic Games (американскую компанию по разработке игр и ПО) в общей сложности на $520 млн за сложную процедуру отмены несанкционированных платежей в Fortnite (кроссплатформенной формально бесплатной игре).</p><p>Российские сервисы могут использовать схожие паттерны:</p><ul><li>в обучающих приложениях кнопки покупок размещаются рядом с игровыми элементами;</li><li>отмена требует письменного заявления или звонка в поддержку.</li></ul><blockquote>Ещё несколько лет назад — и в зарубежных, и в российских сервисах — действовали более лояльные правила возврата: если пользователь забывал отменить подписку в течение льготного периода, деньги можно было вернуть. По данным на 2021 год, такую опцию предлагали и IVI, и Яндекс, и Okko. <br /><br />Сегодня ситуация изменилась: сервисы работают по модели абонентского договора, где достаточно предоставить саму возможность пользоваться услугой, а возврат за неиспользованный период не предусмотрен, даже если клиент не воспользовался подпиской. Ответственность за контроль и отключение подписки полностью ложится на пользователя. Однако информировать о правилах продления и списания сервис должен понятно и заранее.   Из большинства пользовательских соглашений следует, что возврат возможен только если услуга реально не оказана по вине сервиса — например, из-за технических проблем. <br /><br />При этом крупные сервисы, как Яндекс, в явном виде указывают: изменение или ограничение контента, региональные блокировки и другие изменения не считаются основанием для возврата средств. Но важно помнить: если недоступность контента становится существенным недостатком услуги, Закон о защите прав потребителей (ст. 29) сохраняет за пользователем право на возврат оплаты — независимо от того, что написано в соглашении.</blockquote><p><i>Роскомнадзор рекомендует родителям активировать родительский контроль, отключать сохранение платежных данных и регулярно проверять историю подписок.</i></p><h2>Как защитить себя: стратегии для 2025 года</h2><p>Полностью избежать пользовательских соглашений невозможно, но осознанное взаимодействие с ними снижает риски. Предлагаем конкретные шаги для двух групп: обычных пользователей и разработчиков.</p><h3>Для пользователей: цифровая гигиена</h3><p><b>Проверяйте репутацию сервиса перед согласием</b></p><p>Роскомнадзор ведёт открытый реестр нарушителей закона 152-ФЗ. Например, каршеринг «Делимобиль» был внесен в список после массовой утечки номеров телефонов.</p><p>На некоторых сервисах публикуются расшифровки соглашений популярных российских платформ: там же сообщают о возможности сервисов изменять условия без персонального уведомления пользователей.</p><p><b>Жёстко контролируйте разрешения</b></p><p>Современные ОС предлагают инструменты для защиты:</p><ul><li>в Android 14 функция «Одноразовый доступ» <a href="https://support.google.com/chrome/answer/2693767?hl=ru&amp;co=GENIE.Platform%253DAndroid">ограничивает</a> работу камеры/микрофона одним сеансом;</li><li>в iOS 18 «Детальный контроль» <a href="https://support.apple.com/en-us/102459">позволяет блокировать</a> фоновый сбор данных.</li></ul><p>Для браузеров установите <a href="https://github.com/gorhill/uBlock">uBlock Origin</a> — расширение блокирует скрытые трекеры, упомянутые в политиках конфиденциальности. В соцсетях отключайте «аналитику поведения» в настройках приватности — это снижает объем собираемой информации.</p><p><b>Требуйте отчёт о ваших данных</b></p><p>Статья 14 закона 152-ФЗ гарантирует право запросить у компании:</p><ul><li>полный список хранимых персональных данных;</li><li>историю их передачи третьим лицам;</li><li>правовые основания обработки.</li></ul><p>В случае отказа или неполного ответа подавайте жалобу через портал Роскомнадзора.</p><blockquote>Если вы хотите узнать, какие именно ваши персональные данные обрабатывает компания, просто напишите им запрос — укажите свои ФИО, паспортные данные (или иные, подтверждающие личность), и четко сформулируйте, что именно вы хотите узнать: какие данные у них есть, откуда они их получили, зачем обрабатывают и кому передают. Такой запрос можно отправить письменно или через электронную почту, если подпишете его электронной подписью. По закону компания обязана ответить вам в течение 10 рабочих дней. <br /><br />И если вас ответ не устроил, вы вправе требовать удаления ваших персональных данных - оператор обязан будет это сделать (кроме тех данных, которые он обязан хранить в силу закона). Правда, нередко это одновременно будет означать, что вы не сможете более пользоваться этим сервисом.</blockquote><h3>Для разработчиков: прозрачность как конкурентное преимущество</h3><p>Сокращайте и визуализируйте соглашения</p><p>Т-Банк провел редизайн пользовательского договора: заменил юридические термины простыми формулировками, добавил инфографику и чек-листы ключевых пунктов. Это снизило количество обращений в поддержку по вопросам непонятных условий.</p><p><b>Внедряйте градацию согласия</b></p><p>Разделите запросы на данные по категориям:</p><ul><li>базовые — необходимые для работы сервиса;</li><li>опциональные — аналитика, реклама, улучшение продукта.</li></ul><p>Европейский GDPR требует такой практики — например, при установке приложения Signal пользователь <a href="https://signal.org/legal/">отдельно разрешает</a> доступ к контактам и уведомлениям. В России подобный подход выделит ваш продукт на фоне конкурентов.</p><p><b>Добавьте «режим адвоката»</b></p><p>Встройте в интерфейс кнопку «Главные риски за 60 секунд»: краткую выжимку ключевых положений. Сервис ProtonMail <a href="https://protonmail.com/security-details">делает это</a> эффективно — на странице регистрации четко указано: «Мы не храним IP-адреса и не передаём данные третьим лицам».</p><h2>Будущее соглашений: нейросети и законодательство</h2><p>Эволюция пользовательских соглашений развивается по двум направлениям: технологические инструменты для упрощения понимания и ужесточение законодательных требований. Оба тренда активно проявляются в 2025 году.</p><h3>ИИ-ассистенты: возможности и ограничения</h3><p>Крупные IT-компании разрабатывают инструменты для анализа юридических документов. Яндекс.Помощник интегрировал функцию сканирования соглашений: система выделяет спорные пункты цветными маркерами и генерирует упрощенные пояснения.</p><p>Однако нейросети не заменяют юристов. ИИ-сервисы нередко пропускают скрытые условия в длинных документах.</p><p>Основные проблемы:</p><ul><li>неспособность интерпретировать двусмысленные формулировки;</li><li>игнорирование ссылок на внешние документы;</li><li>ошибки в трактовке арбитражных оговорок.</li></ul><h3>Законодательные изменения: новые требования</h3><p>В июне 2024 года принят Федеральный закон № 123-ФЗ, вносящий поправки в 152-ФЗ.</p><p>Ключевые новации:</p><ul><li>запрет автоматического продления платных подписок без отдельного подтверждения через SMS или email (ст. 15.4);</li><li>обязательное выделение условий сбора биометрических данных жирным шрифтом;</li><li>штрафы до 3% годового оборота за сокрытие практик передачи данных третьим лицам.</li></ul><p>Новые требования уже дают результаты.</p><h3>Перспективы: стандартизация и блокчейн</h3><p>ЕС <a href="https://data-privacy-office.com/ai-act-overview/">разрабатывает</a> AI Act — единый стандарт для ИИ-анализа соглашений. Эксперименты с блокчейн-реестрами условий проводят Сбербанк и Тинькофф: технология фиксирует версии документов и предотвращает скрытые изменения.</p><h2>Заключение: ваша цифровая подпись — это ответственность</h2><p>Пользовательские соглашения — не формальность, а юридически обязывающий документ. Их игнорирование в 2025 году связано со многими рисками. Каждый клик «Принять» несёт реальные последствия: от скрытой слежки до потери прав на контент.</p><p>Что делать сегодня? Начните с малого. Даже беглый просмотр разделов «Данные» и «Автоматическое продление» снижает риски. Не забывайте о законе 152-ФЗ. Если это необходимо, требуйте от компаний полный отчёт о ваших данных через форму на портале Роскомнадзора.</p><p>Голосуйте кошельком. Переходите на сервисы с прозрачными правилами. Осознанное согласие — не роскошь, а базовый навык цифровой эпохи. Ваши данные стоят тех 10 минут, которые вы потратите на чтение перед кликом «Принять».</p>]]></content:encoded>
    </item>
    <item>
      <title>DRM, ИИ и форензика: гид по защите видеоконтента от пиратов и хакеров</title>
      <link>https://tproger.ru/articles/drm--ii-i-forenzika--gid-po-zashhite-videokontenta-ot-piratov-i-hakerov</link>
      <comments>https://tproger.ru/articles/drm--ii-i-forenzika--gid-po-zashhite-videokontenta-ot-piratov-i-hakerov?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Татьяна Жукова]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/drm--ii-i-forenzika--gid-po-zashhite-videokontenta-ot-piratov-i-hakerov</guid>
      <description><![CDATA[<p>Вместе с Александром Павлычевым, сооснователем видеохостинга Kinescope, рассмотрим, как защитить видеоконтент от киберугроз и пиратства.</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/drm--ii-i-forenzika--gid-po-zashhite-videokontenta-ot-piratov-i-hakerov">DRM, ИИ и форензика: гид по защите видеоконтента от пиратов и хакеров</a>»</p>]]></description>
      <category><![CDATA[Интернет]]></category>
      <category><![CDATA[API]]></category>
      <category><![CDATA[Android]]></category>
      <category><![CDATA[Git]]></category>
      <category><![CDATA[Apple]]></category>
      <category><![CDATA[Опрос]]></category>
      <category><![CDATA[Google]]></category>
      <category><![CDATA[PHP]]></category>
      <category><![CDATA[IDE]]></category>
      <category><![CDATA[Windows]]></category>
      <category><![CDATA[Работа]]></category>
      <category><![CDATA[Opera]]></category>
      <category><![CDATA[HR]]></category>
      <category><![CDATA[Xbox]]></category>
      <category><![CDATA[Сервисы]]></category>
      <category><![CDATA[Firefox]]></category>
      <category><![CDATA[Маркетинг]]></category>
      <category><![CDATA[Хакеры]]></category>
      <category><![CDATA[YouTube]]></category>
      <category><![CDATA[Взлом]]></category>
      <category><![CDATA[Сервер]]></category>
      <category><![CDATA[Kubernetes]]></category>
      <category><![CDATA[Библиотеки]]></category>
      <category><![CDATA[Машин]]></category>
      <category><![CDATA[аналитик]]></category>
      <category><![CDATA[1C]]></category>
      <category><![CDATA[Бизнес]]></category>
      <category><![CDATA[Разработка]]></category>
      <category><![CDATA[CDN]]></category>
      <category><![CDATA[Видеоконтент]]></category>
      <category><![CDATA[Стриминговые сервисы]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Mon, 21 Jul 2025 14:00:03 GMT</pubDate>
      <content:encoded><![CDATA[<p>Пиратство
и кибератаки ежегодно обходятся бизнесу в миллиарды долларов, а утечки
видеоконтента угрожают не только стриминговым платформам, но и компаниям,
использующим видео для обучения, маркетинга или внутренних процессов. Как
выстроить защиту видеоконтента от кражи? 
Александр Павлычев, сооснователь видеохостинга Kinescope, рассказывает
про многоуровневую стратегию, DRM, цифровую форензику и ИИ-мониторинг, которые
помогут разработчикам и бизнесу остановить пиратов и хакеров.</p><p>Цифровой контент — актив, который требует
защиты не меньше, чем банковские данные. Многие привыкли, что свежий сериал или
долгожданный фильм оказывается в сети за неделю до премьеры или в день релиза,
а дорогостоящий курс можно скачать бесплатно на «складчинах». В 2024 году
пиратство нанесло российским правообладателям ущерб в <a href="https://www.tadviser.ru/index.php/%D0%A1%D1%82%D0%B0%D1%82%D1%8C%D1%8F:%D0%9F%D0%B8%D1%80%D0%B0%D1%82%D1%81%D0%BA%D0%B8%D0%B5_%D1%81%D0%B0%D0%B9%D1%82%D1%8B_%D0%B8_%D0%B7%D0%B0%D1%89%D0%B8%D1%82%D0%B0_%D0%B0%D0%B2%D1%82%D0%BE%D1%80%D1%81%D0%BA%D0%BE%D0%B3%D0%BE_%D0%BF%D1%80%D0%B0%D0%B2%D0%B0_%D0%B2_%D0%A0%D0%BE%D1%81%D1%81%D0%B8%D0%B8#.2A.D0.9E.D0.B1.D1.8A.D0.B5.D0.BC_.D1.80.D1.8B.D0.BD.D0.BA.D0.B0_.D0.BE.D0.BD.D0.BB.D0.B0.D0.B9.D0.BD-.D0.BF.D0.B8.D1.80.D0.B0.D1.82.D1.81.D1.82.D0.B2.D0.B0_.D0.B2_.D0.A0.D0.BE.D1.81.D1.81.D0.B8.D0.B8_.D1.81.D0.BD.D0.B8.D0.B7.D0.B8.D0.BB.D1.81.D1.8F__.D0.BD.D0.B0_4.2C2.25_.D0.B4.D0.BE_.E2.82.BD3.2C36_.D0.BC.D0.BB.D1.80.D0.B4">3,36 млрд</a> рублей, а глобальные потери
медиаиндустрии превысили <a href="https://www.forbes.com/sites/niallmccarthy/2019/06/26/pirated-video-gets-viewed-over-200-billion-times-a-year-infographic/">$71 миллиард</a>. Утечки контента происходят через
уязвимости в системах доставки, запись экрана или взлом серверов.</p><p>Но угрозы безопасности видеконтента не
ограничиваются пиратством. Кибератаки добавляют новый уровень сложности: в
отличие от пиратов, которые стремятся монетизировать контент через нелегальное
распространение, хакеры могут преследовать иные цели — от вымогательства до
саботажа инфраструктуры. Например, говорить, что в их распоряжении есть
интимные видеозаписи жертвы (ещё лучше, если это CEO известной компании) и
вымогать крупную сумму денег. Или <a href="https://www.forbes.ru/tekhnologii/465207-servis-poprostu-udalilsa-kak-vzlomali-rutube-i-cto-budet-s-videohostingom-dal-se">взломать Rutube</a> и саботировать инфраструктуру
сервиса, как это было в 2022 году. Киберугрозы также могут включать DDoS-атаки,
эксплуатацию уязвимостей в API или кражу пользовательских данных, что приводит
к последствиям:</p><ul><li>Коммерческие риски: снижение выручки, подрыв
бизнес-модели, что особенно актуально для премиальных и эксклюзивных материалов
и сервисов.</li><li>Правовые последствия: иски от правообладателей
или штрафы за утечку персональных данных.</li><li>Репутационные издержки: утрата доверия
пользователей и партнеров, особенно если платформа позиционируется как
безопасная.</li></ul><p>Важно понимать, что защита должна
учитывать не только копирование контента, но и целостность всей экосистемы — от
API до клиентского плеера.</p><h2>Многоуровневая защита: из
чего она состоит</h2><p>Механизмы пиратства
и кибератак многогранны: злоумышленники используют разные методы, от простого
скачивания до сложных схем обхода защиты. Поэтому стратегия должна
включать несколько уровней.</p><p><b>1. Защита от несанкционированного
доступа и копирования</b></p><p>Первый барьер —
ограниченный доступ к контенту:</p><ul><li>Шифрование: AES-128 или AES-256 для защиты видеопотоков.</li><li>Авторизация: токены JWT или OAuth для проверки прав пользователей.</li><li>Системы управления цифровыми правами (DRM) устанавливают ограничения на воспроизведение контента — по устройствам, географическому положению и времени. Если отсутствует соответствующий ключ шифрования, выдаваемый лицензионным сервером, воспроизведение может быть заблокировано.</li></ul><p><b>2. Пиратские копии</b></p><p>Даже если контент
уже украден, важно оперативно выявить его нелегальное распространение.
Технологии AI-мониторинга
и цифровой форензики сканируют даркнет, соцсети и пиратские сайты. ИИ
распознает видео по фрагментам, даже если оно перекодировано.</p><p><b>Технический нюанс</b>: ИИ-системы используют сверточные нейросети (CNN) для анализа визуальных и
аудиохарактеристик. Разработчикам стоит интегрировать такие решения через API, например, от Google Cloud Vision или специализированных
вендоров.</p><p><b>3. Отслеживание источника утечки</b></p><p>Ключевой вопрос при
утечке: кто и как получил доступ к контенту? Водяные знаки и «цифровые
отпечатки» (fingerprinting) позволяют встраивать уникальные идентификаторы в видеофайлы. Fingerprinting, например, создает хэши
аудио- и видеофрагментов для поиска копий.</p><p><b>Технический нюанс</b>: сессионные водяные знаки добавляют задержку в
стриминг. Проблема решается предварительной обработкой сегментов для HLS/DASH-протоколов.</p><p><b>4. Противодействие пиратским
ресурсам</b></p><p>Удалить копии после
обнаружения можно через:</p><ul><li>Обращение в РКН и к платформе, где появилось видео. Если реакции от платформы нет, РКН или провайдер хостинга заблокируют сайт по запросу.</li><li>Автоматическую блокировку ссылок через API хостингов.</li><li>Юридическое давление на пиратские платформы.</li></ul><h2>Технологии против
пиратов: DRM, ИИ, водяные знаки и «цифровые
отпечатки»</h2><p>Современные решения
для защиты видео объединяют несколько технологий, каждая из которых решает
определенные задачи. Рассмотрим их подробнее.</p><p><b>DRM</b><b> (управление цифровыми правами)</b></p><p>DRM-системы шифруют контент и управляют лицензиями на доступ к видеопотоку. DRM защищает контент на
уровне клиента и сервера, предотвращая неавторизованный доступ и перехват.
Такие системы интегрируются в плееры и платформы и показывают контент только
авторизованным пользователям.</p><p>DRM-системы опираются на три ключевых компонента:</p><ol><li>Лицензионный сервер отвечает за выдачу и проверку ключей расшифровки контента.</li><li>Клиентская часть DRM (Content Decryption Module, CDM) интегрирована в браузер/плеер.</li><li>Упаковщик контента (Packager) подготавливает видеопотоки для защищенной доставки.</li></ol><p>Но есть техническая проблема совместимости — DRM-системы неоднородны по платформам:</p><ul><li>Widevine (Android, Chrome, Firefox, Opera);</li><li>PlayReady (Windows, Xbox, некоторые Smart TV);</li><li>FairPlay (экосистема Apple);</li><li>WisePlay DRM (экосистема Huawei).</li></ul><p>Решение — мульти-DRM упаковщики, поддерживающие все стандарты через единую интеграцию. Используйте библиотеки, например, Shaka Player, для упрощенной интеграции мульти-DRM.</p><p><b>Водяные знаки (Digital</b><b> Watermarking</b><b>)</b></p><p>Водяные знаки —
метки, встроенные в видео, которые содержат информацию о правообладателе или
пользователе, что помогает отследить источник утечки, если контент появляется
на пиратских ресурсах. Они могут быть видимыми или незаметными: первые
отпугивают пиратов, а вторые помогают отследить источник утечки.</p><p><b>Отслеживание «цифровых следов» (Fingerprinting</b><b>)</b></p><p>В отличие от водяных
знаков, которые внедряются в контент, технология фингерпринтинга генерирует
хэши фрагментов видео и аудио для поиска копий в сети без модификации самих
файлов. Это позволяет находить пиратские копии, даже если они были изменены
(например, перекодированы или обрезаны). Работает это так: система создает
«цифровой отпечаток» оригинального видео и затем автоматически сканирует
интернет в поисках материалов с похожими характеристиками.</p><p>Например, YouTube Content ID верифицирует права на
материалы и затем в автоматическом режиме отслеживает загрузки на платформе.
Когда пользователь загружает видео, Content ID сравнивает его с базой отпечатков, и, если
обнаруживает совпадение с материалами, может заблокировать ролик за нарушение
авторских прав, перенаправить доход от рекламы правообладателю или уведомить
владельца контента.</p><p><b>Цифровая форензика</b></p><p>Цифровая форензика —
это сбор и исследование данных для раскрытия цифровых преступлений. Проще
говоря, цифровая криминалистика. Специалисты-форензики анализируют источники
пиратских копий через анализ метаданных, характеристик кодирования, артефактов
сжатия и других цифровых «улик», чтобы выявить, как и когда произошла утечка.
Например, уникальные артефакты в H.264-кодеке могут указать на устройство, с
которого записали экран.</p><p><b>AI</b><b>-мониторинг</b></p><p>Искусственный
интеллект ускоряет поиск пиратских копий через анализ огромных массивов данных
в интернете с помощью компьютерного зрения и машинного обучения. ИИ-системы
мониторинга используют сверточные нейросети (CNN), которые способны распознавать визуальные
образы и алгоритмы, такие как Mel-Frequency Cepstral Coefficients (MFCC) (используется для распознавания речи). С их
помощью можно находить копии даже при перекодировании или обрезке.</p><p>Уже существует
множество готовых решений на основе ИИ. Например, Red Points постоянно мониторит соцсети, видеоплатформы и
пиратские сайты с применением машинного обучения, компьютерного зрения и
распознавания изображений, а при обнаружении совпадений автоматически
отправляет запросы на удаление через API. Piracymeter и Bytescare анализируют списки доменов, поисковые результаты Google и торрент-трекеров. Bytescare также может
находить пиратские копии ПО.</p><p>Такие решения
быстрее ручного мониторинга и больше подходят для больших каталогов видео. Они
могут работать автономно или подключаться через REST API, но требуют настройки для снижения ложных
срабатываний.</p><h3>Пример комплексного подхода к защите видео</h3><p>Для защиты
видеоконтента компании всё чаще используют решения, которые сочетают несколько
технологий. Например, разработчик систем безопасности GS Labs совместно с видеохостингом Kinescope создал <a href="https://www.cnews.ru/news/line/2025-04-30_gs_labs_i_kinescope_realizuyut_sovmestnye">систему</a>, интегрирующую DRM, водяные знаки и цифровую форензику. Она
позволяет шифровать контент, встраивать уникальные идентификаторы для
отслеживания утечек и анализировать источники пиратских копий. Такое решение
работает как в облаке, что даёт стриминговым платформам масштабируемость, так и
локально, что важно для компаний с собственной инфраструктурой.</p><h2>Модели внедрения технологий защиты видеоконтента</h2><p>Выбор модели
внедрения зависит от потребностей компании, ее бюджета и технических
возможностей. Рассмотрим три основные модели.</p><h2>Локальные
решения (on-premises)</h2><p>Локальные системы
устанавливаются на серверах компании, что подходит для крупных медиакомпаний с
собственной инфраструктурой. Их преимущества — полный контроль над данными и
независимость от внешних провайдеров. Из минусов — высокие затраты на
оборудование, обслуживание и персонал.</p><h2>Облачные/SaaS-решения</h2><p>Облачные платформы
минимизируют затраты, предлагают гибкость и масштабируемость. Они идеальны для
стартапов и онлайн-кинотеатров, которые не хотят инвестировать в собственные
серверы. SaaS-модель
позволяет быстро внедрить защиту, минимизируя затраты на инфраструктуру.</p><p><b>Совет</b>: используйте облачные решения с SOC 2 или ISO 27001 сертификацией для защиты данных.</p><h2>Гибридные
модели</h2><p>Гибридные решения
сочетают локальные и облачные компоненты. Например, компания может хранить
критически важные данные на своих серверах, а для мониторинга и аналитики
использовать облачные сервисы. Такая модель обеспечивает баланс между контролем
и масштабируемостью, но требует внимательной интеграции.</p><p><b>Совет: </b>используйте Kubernetes для оркестрации гибридных систем и минимизации downtime.</p><h2>Что стоит сделать прямо сейчас, чтобы защитить видеоконтент</h2><ol><li>Подобрать постоянное комплексное решение: исследуйте вендоров и технологии на рынке.</li><li>Провести аудит инфраструктуры: проверьте уязвимости в CDN, API и плеере, например, с помощью OWASP ZAP.</li><li>Интегрировать DRM: выберите мульти-DRM решение, совместимое с Widevine, PlayReady и FairPlay.</li><li>Внедрить мониторинг: подключите ИИ через API для поиска копий.</li><li>Провести пентесты в BurpSuite, симулируя пиратские атаки и взлом.</li><li>Отработать реакцию на инциденты.</li></ol><p>Если вы тоже
работаете с видео и хотите усилить его безопасность, начните с анализа текущих
процессов: какие технологии уже задействованы, где есть пробелы и какие решения
помогут закрыть их в первую очередь. Такой системный подход создаст барьер
против киберугроз, нелегального копирования и распространения видеоконтента.</p>]]></content:encoded>
    </item>
    <item>
      <title>Как встроить распознавание банковской карты в браузер</title>
      <link>https://tproger.ru/articles/raspoznavanie-bankovskoj-karty-v-brauzere--kak-s-pomoshhyu-tehnologii-webassembly-integrirovat-raspoznavanie-v-veb-stranicu</link>
      <comments>https://tproger.ru/articles/raspoznavanie-bankovskoj-karty-v-brauzere--kak-s-pomoshhyu-tehnologii-webassembly-integrirovat-raspoznavanie-v-veb-stranicu?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Smart Engines]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/raspoznavanie-bankovskoj-karty-v-brauzere--kak-s-pomoshhyu-tehnologii-webassembly-integrirovat-raspoznavanie-v-veb-stranicu</guid>
      <description><![CDATA[<p>Рассказываем, как с помощью технологии WebAssembly интегрировать распознавание в веб-страницу</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/raspoznavanie-bankovskoj-karty-v-brauzere--kak-s-pomoshhyu-tehnologii-webassembly-integrirovat-raspoznavanie-v-veb-stranicu">Как встроить распознавание банковской карты в браузер</a>»</p>]]></description>
      <category><![CDATA[Интернет]]></category>
      <category><![CDATA[Android]]></category>
      <category><![CDATA[Распознавание]]></category>
      <category><![CDATA[Работа]]></category>
      <category><![CDATA[Боты]]></category>
      <category><![CDATA[Финтех]]></category>
      <category><![CDATA[WebAssembly]]></category>
      <category><![CDATA[Мессенджер]]></category>
      <category><![CDATA[GTK]]></category>
      <category><![CDATA[Сервер]]></category>
      <category><![CDATA[Библиотеки]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Fri, 18 Jul 2025 07:00:04 GMT</pubDate>
      <content:encoded><![CDATA[<p>Привет, Tproger!</p><p>Мы в Smart Engines занимаемся разработкой интеллектуальных систем для распознавания документов. Мы уже рассказывали вам, как просто и быстро интегрировать наши решения для <a href="https://tproger.ru/articles/kak-vstroit-raspoznavanie-pasporta-rf-v-android--powagovoe-rukovodstvo">распознавания паспорта</a>, а также <a href="https://tproger.ru/articles/kak-vstroit-raspoznavanie-dokumentov-v-android--powagovoe-rukovodstvo">распознавания жестких и гибких форм</a> в Android.</p><p>Сегодня речь пойдет про браузерное распознавание. Оно в последние несколько лет пользуется колоссальным спросом со стороны рынка – прежде всего у  финтеха. Кроме того, развертывание PWA-приложений понадобится компаниям при интеграции функциональности в новый отечественный мессенджер MAX.</p><p>Поговорим о том, в чем плюсы распознавания в вебе и главное – как его развернуть на примере банковской карты.</p><h2>Исторический экскурс</h2><p>Технология WebAssembly (WASM) появилась в 2015 году и два года спустя была реализована во всех основных браузерах. Тогда же ученые Smart Engines начали проводить с WASM первые эксперименты.</p><p>Немного похвастаемся: в 2021 году мы первыми в стране представили промышленные технологии для распознавания документов в вебе. Это оказалось очень кстати, поскольку на фоне удаления мобильных приложений из магазинов к интерес к технологиям распознавания QR и банковских карт в браузере вырос.</p><p>Банки и финтех стали искать способы, как перенести привычную для пользователя функциональность – платежи по QR, распознавание номера телефона, распознавание банковской карты – из мобильного приложения в веб.</p><p>Ответ нашелся быстро – WASM и Smart Engines.</p><h2>В чем плюсы?</h2><p>Браузерное распознавание имеет очень много преимуществ. <b>Во-первых</b>, это все преимущества веб приложения:</p><ul><li>Кроссплатформенность;</li><li>Возможность доступа к приложению из любой точки с интернет-соединением</li><li><b>Мгновенное</b> развертывание и обновление приложения, что <b>позволяет пользователям всегда работать с актуальной версией</b>.</li></ul><p><b>Во-вторых</b>, предусматривает совершенно иной уровень защиты персональных данных. Пользователь не выгружает свои данные на сервер для распознавания, а, напротив, загружает модуль для распознавания изображений с персональными данными себе.</p><p>И, <b>в-третьих</b>, позволяет в сжатые сроки реализовать фронтэнд-интеграцию силами web-разработчиков.</p><p>Все преимущества браузерного распознавания уже оценили наши партнёры, нацеленные на развитие своих интернет-сервисов. Среди них – Альфа-Банк, Газпромбанк и другие.</p><h2>Распознавание кодифицированных объектов</h2><p>Одним из самых востребованных направлений в OCR сейчас является распознавание кодифицированных объектов, таких как баркоды, номера телефонов, банковских карт и прочие машиночитаемые зоны.</p><p>В своё время мы выделили распознавание таких объектов в отдельный продукт <a href="https://smartengines.ru/smart-code-engine/">Smart Code Engine</a> для того, чтобы иметь возможность гибче работать с различными сценариями распознавания, а также иметь возможность пойти дальше в деле оптимизации скорости и размера библиотеки. В результате появился Smart Code Engine 2.0 – продукт получил новый интерфейс и возможность максимально гибко настраивать поведение для получения лучшего качества распознавания.</p><p>Библиотека Smart Code Engine написана на С++ и портировалась в веб с помощью инструмента Emscripten. Поскольку вся кодовая база, от низкоуровневых вычисления над изображениями до архитектуры поисковой сети, поддерживается нашим научным отделом, качественное портирование не составляло особых проблем.</p><p>Js-интерфейс библиотеки представляет собой практически зеркальный С++ интерфейс и с его помощью распознавание банковской карты реализуется вот так:</p><p>Этот код необходимо поместить в веб-воркер, чтобы не нагружать UI поток браузера лишними вычислениями.</p><p>Передача изображений в библиотеку осуществляется прямо с чтения пикселей элемента canvas, где вы выводите изображения с камеры устройства или прикрепленного файла PDF.</p><p>В процессе работы распознавания у вас есть возможность нарисовать поверх изображения найденные элементы документа за мгновение до распознавания.</p><p>Вот как это выглядит на выходе:</p><figure><img src="https://media.tproger.ru/user-uploads/110363/2025-07-17/fd81bc20-66a7-4d20-90ee-ce1bf5a93827.gif" alt="Автоматический ввод данных банковской карты в браузере" /><figcaption>Распознавание банковской карты в браузере при помощи Smart Code Engine</figcaption></figure><p>Как вы можете заметить, интеграция Smart Code Engine SDK не вызывает сложностей – внедрение происходит практически мгновенно, а скорость распознавания сопоставима с нативными библиотеками.</p>]]></content:encoded>
    </item>
    <item>
      <title>Поминки по хайпу: технологии, которые не смогли</title>
      <link>https://tproger.ru/articles/pominki-po-hajpu--tehnologii--kotorye-ne-smogli</link>
      <comments>https://tproger.ru/articles/pominki-po-hajpu--tehnologii--kotorye-ne-smogli?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Виктория Эберт]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/pominki-po-hajpu--tehnologii--kotorye-ne-smogli</guid>
      <description><![CDATA[<p>Почему метавселенная, NFT, Google Glass и 3D-ТВ провалились — разбор хайповых технологий, как хайп стал разочарованием ✔ Tproger</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/pominki-po-hajpu--tehnologii--kotorye-ne-smogli">Поминки по хайпу: технологии, которые не смогли</a>»</p>]]></description>
      <category><![CDATA[Интернет]]></category>
      <category><![CDATA[Android]]></category>
      <category><![CDATA[Git]]></category>
      <category><![CDATA[Apple]]></category>
      <category><![CDATA[Безопасность]]></category>
      <category><![CDATA[Опрос]]></category>
      <category><![CDATA[Google]]></category>
      <category><![CDATA[IDE]]></category>
      <category><![CDATA[Работа]]></category>
      <category><![CDATA[Tor]]></category>
      <category><![CDATA[HTML]]></category>
      <category><![CDATA[Боты]]></category>
      <category><![CDATA[HR]]></category>
      <category><![CDATA[Samsung]]></category>
      <category><![CDATA[Блокчейн]]></category>
      <category><![CDATA[Ethereum]]></category>
      <category><![CDATA[Xen]]></category>
      <category><![CDATA[Lua]]></category>
      <category><![CDATA[Маркетинг]]></category>
      <category><![CDATA[Twitter]]></category>
      <category><![CDATA[ARM]]></category>
      <category><![CDATA[Игра]]></category>
      <category><![CDATA[Discord]]></category>
      <category><![CDATA[Сервер]]></category>
      <category><![CDATA[NFT]]></category>
      <category><![CDATA[аналитик]]></category>
      <category><![CDATA[1C]]></category>
      <category><![CDATA[Бизнес]]></category>
      <category><![CDATA[Разработка]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Wed, 09 Jul 2025 10:00:15 GMT</pubDate>
      <content:encoded><![CDATA[<h2>Метавселенные: киберпанк не наступил</h2><p>Все ждали, что вот-вот начнётся киберпанк: наши аватары будут тусоваться в 3D, ходить по виртуальным улицам и работать в офисе на Марсе. Но метавселенная не случилась и вместо этого мы <a href="https://news.ycombinator.com/item?id=43280564#:~:text=Without%20a%20robust%20economic%20model,erosion%20of%20real%2Dworld%20connections.">получили</a> пустые миры, лаги и виртуальную морскую болезнь. Чтобы попасть в эту «новую реальность», нужен мощный комп, дорогущий VR-шлем и вестибулярка космонавта. Массовому пользователю это не по карману и <a href="https://www.reddit.com/r/Futurology/comments/1ej412m/whatever_happened_to_the_metaverse/">не по душе</a>. Даже если вы добрались до метавечеринки — вас ждала примитивная мультяшная графика.</p><p>Метавселенная — красивый технологический концепт, но без реального запроса со стороны людей. Одни видели в ней VR и AR, другие — NFT и блокчейн, третьи — некий 3D-интернет. И стало непонятно: что это вообще было и зачем?</p><figure><img src="https://media.tproger.ru/user-uploads/111449/2025-06-27/ae184ea5-b970-4174-adac-ad239ca6a175.png" alt="метавселенная" /><figcaption>Источник: Clara McMichael / digitaltrends.com</figcaption></figure><p>Метавселенная обещала стать новым поколением соцсетей, что именно там будет жить наше будущее общение и работа. Весь хайп смыл новый тренд: волна генеративного ИИ. Meta* <i>(признана в России экстремистской организацией и запрещена)</i> и другие техногиганты свернули свои эксперименты и переключились на нейросети.</p><p>У бизнеса с метавселенными тоже не сложилось: ни чёткой модели монетизации, ни реальных кейсов. Продажа виртуальной недвижимости в Decentraland, мерч для аватаров, баннеры в виртуальных тусовках — всё больше напоминает Web3-версию The Sims, чем серьёзную платформу с реальной экономикой. Так что будущее в 3D отложили до лучших времён.</p><p>Игровые платформы вроде Minecraft, Roblox, Fortnite — это по сути и есть настоящие метавселенные, которые давно живут своей жизнью. Среднестатистический пользователь от виртуальных тусовок отказывается: ему проще зайти в Discord или залипнуть в обычный стрим на Twitch, чем надевать шлем ради планёрки в Horizon Worlds.</p><blockquote>Я могу просто посмотреть стрим и получить лучший опыт. Надевать шлем не имеет смысла — никакой пользы</blockquote><p>Громкие обещания про «полное погружение» и «эффект присутствия» на практике <a href="https://www.businessinsider.com/metaverse-dead-obituary-facebook-mark-zuckerberg-tech-fad-ai-chatgpt-2023-5?">разбивались</a> о суровую реальность — кривую техническую реализацию. Сейчас платформы выглядят заброшенными: пустые сцены, аватары без ног и скучные шаблонные взаимодействия. Ещё одна проблема — отсутствие единого мира. Все платформы живут по отдельности, между ними нет порталов и возможности перемещаться. К тому же, в виртуальности были серьёзные проблемы с безопасностью — например, случаи <a href="https://www.theguardian.com/society/2025/jun/10/the-misogyny-of-the-metaverse-is-mark-zuckerbergs-dream-world-a-no-go-area-for-women">домогательств</a>.</p><p>Есть надежда, что метавселенная вернётся — когда технологии и контекст будут готовы. Когда VR-шлемы станут лёгкими, дешевыми и удобными, появятся реальные сценарии, а не просто презентации для инвесторов. Тогда, может быть, мы ещё туда заглянем.<b> А пока — rest in pixels, Metaverse.</b></p><h2>NFT-мания</h2><p>Пока одни тусовались в метавселенной и зарабатывали миллионы на продаже пикселей, другие гуглили, что такое OpenSea и почему JPEG стоит как однушка в Москве. Сейчас NFT называют либо финансовым пузырём, либо зачатками новой цифровой инфраструктуры.</p><p>Пандемия и локдаун дали интернету второе дыхание. Люди заскучали и начали скупать цифровое искусство, как раньше собирали марки, карточки или скины в играх. В 2021 году NFT стали мейнстримом: <a href="https://cryptopunks.app/">CryptoPunks</a>, <a href="https://boredapeyachtclub.com/">Bored Ape</a>, <a href="https://www.beeple-crap.com/">Beeple</a> — эти имена знали все. К цифровой лихорадке подключились бренды: <a href="https://www.adidas.com/us/blog/825513-into-the-metaverse-lets-go">Adidas</a>, <a href="https://www.nytimes.com/2022/05/26/style/nike-nft-sneaker.html">Nike</a> и даже <a href="https://corporate.mcdonalds.com/corpmcd/our-stories/article/40-anniversary-mcrib.html">McDonald’s</a> начали продавать цифровой мерч в метавселенных. Пиксельные обезьяны разлетались, как будто золото будущего: в январе 2022 NFT-маркетплейс OpenSea побил все рекорды, ведь месячный объём торгов <a href="https://www.reuters.com/business/future-of-money/cryptoverse-bonfire-nfts-2022-07-05/">составил</a> около $5 млрд. Владение NFT стало признаком цифрового престижа. Люди устанавливали токены себе на аватарки в Twitter, потому что это был цифровой Rolex: если у тебя был токен — ты в теме. А если нет — шёл читать <a href="https://tproger.ru/articles/nft-kak-iskusstvo-chto-jeto-i-kak-sozdat-nft-token-opyt-it-razrabotchika-kontur">гайды</a> на Tproger.</p><figure><img src="https://media.tproger.ru/user-uploads/111449/2025-06-27/e2640635-0d76-4d5d-ad8b-6ee25ee73691.png" alt="NFT" /><figcaption>Источник: Bored Ape Yacht Club</figcaption></figure><p>Но уже к лету того же года рынок начал сдуваться. В июне 2022 объем OpenSea <a href="https://www.reuters.com/business/future-of-money/cryptoverse-bonfire-nfts-2022-07-05/">упал</a> до ~$700 млн, а в октябре 2023 он <a href="https://www.rbc.ru/crypto/news/654b85cb9a7947b3071db244#:~:text=%D0%9F%D0%BE%20%D0%B4%D0%B0%D0%BD%D0%BD%D1%8B%D0%BC%20%D0%B0%D0%BD%D0%B0%D0%BB%D0%B8%D1%82%D0%B8%D1%87%D0%B5%D1%81%D0%BA%D0%BE%D0%B3%D0%BE%20%D1%81%D0%B5%D1%80%D0%B2%D0%B8%D1%81%D0%B0%20The,%D0%91%D0%BB%D0%B8%D0%B6%D0%B0%D0%B9%D1%88%D0%B8%D0%B9%20%D0%BA%D0%BE%D0%BD%D0%BA%D1%83%D1%80%D0%B5%D0%BD%D1%82">составлял</a> лишь $91 млн. Минус 98% от пиковых значений. Что же пошло не так?</p><p>Большинство NFT не дают прав на владение цифровым активом. Вы покупаете не саму картинку, а ссылку на неё в блокчейне. Если сервер с изображением ляжет — останется только строчка кода, свидетельствующая о вашем хорошем вкусе. Многие NFT были просто картинками. Ни привязки к играм, ни доступа к сообществам, ни других функций — только красивая (или не очень) обёртка.</p><blockquote>Зачем мне вообще покупать этот NFT вместо настоящего произведения искусства?</blockquote><p>Тысячи NFT-проектов <a href="https://www.nfthailer.com/reports/q3-nft-market-report">выходили</a> каждый день, рынок быстро перенасытился, и в итоге NFT-платформы утонули в спаме и мошенничестве. Один из самых распространённых трюков — <a href="https://financialcrimeacademy.org/understanding-nft-wash-trading/">wash trading</a>: пользователь продаёт токен сам себе, чтобы искусственно раздуть спрос. Исследования <a href="https://www.coindesk.com/web3/2022/12/23/over-30b-of-nft-trading-volume-on-ethereum-is-wash-trading-research-suggests">показывают</a>, что по итогам 2022 года более половины объёма торгов NFT на Ethereum приходилось на липовые сделки. Кто-то считает, что NFT со временем обесценились. Но возможно, что они с самого начала были пустышками.</p><p>Ещё один удар по доверию — кражи и хаос с плагиатом. Работы художников массово превращали в NFT <a href="https://www.nbcnews.com/tech/security/nft-art-sales-are-booming-just-artists-permission-rcna10798">без их ведома</a>: копировали, заливали и продавали, как своё. Никто не спрашивал разрешения у авторов, и уж точно не предлагал процент с продаж. NFT также <a href="https://www.cbsnews.com/news/nft-art-environmental-costs/">критиковали</a> за углеродный след и загрязнение окружающей среды.</p><p>NFT как спекулятивный пузырь — фактически умер. Большинство коллекций потеряли всякий торговый смысл: объёмы упали, активные игроки исчезли, а токены превратились в мёртвые цифровые артефакты. Лихорадочные инвестиции, основанные на спекуляциях, просто сдулись.</p><p>Но сама концепция уникального цифрового актива живёт дальше. Токен как технология адаптируется и трансформируется. В играх NFT уже показали себя как востребованный юзкейс: игроки могут владеть, торговать и прокачивать виртуальные предметы. <a href="https://www.startwithnfts.com/posts/i-responded-to-a-quora-user-who-said-nfts-arent-valuable-heres-what-happened/">Эксперты</a> считают, что инфраструктура останется, и на её базе появятся проекты с реальной практической ценностью. А NFT превратится в элемент цифровой инфраструктуры — как инструмент доступа и сертификат владения. Цифровой «паспорт», который фиксирует принадлежность к сообществам, открывает возможности для участия в клубах и эксклюзивных событиях.</p><h2>3D‑телевизоры: история провала объёмного кино у вас дома</h2><figure><img src="https://media.tproger.ru/user-uploads/111449/2025-06-27/196f3c5f-fea5-433b-a513-4063fa84cfcd.png" alt="3D TV" /><figcaption>Источник: VAVA</figcaption></figure><p>В начале 2010-х 3D-ТВ казались мегатрендом после хита «Аватар». Однако к 2016 году большинство крупных производителей <a href="https://theconversation.com/3d-television-is-dead-so-what-next-72192?">отказались</a> от выпуска моделей с поддержкой 3D. Многие пользователи так и не получили качественный опыт из-за технических ограничений и ранней стадии развития.</p><blockquote>Я знаю, почему 3D-телевизоры провалились: производители поспешили поймать волну кинотеатрального бумa, сделав технологию с тяжёлыми и требующими подзарядки очками. В то же время на горизонте появились большие плоские телевизоры без очков, которые выглядели гораздо лучше и удобнее для пользователей.</blockquote><p>Что пошло не так? Во-первых, сами 3D-очки. Их нужно было заряжать, носить поверх своих, а сидеть при этом строго под определённым углом, иначе магия пропадала. Многие <a href="https://www.reddit.com/r/metro/comments/1enuq1c/why_did_3d_tvs_die_out_this_crap_is_mindblowing/">отмечают</a>, что это было неудобно — очки были дорогими, тяжелыми, а некоторые зрители уставали уже на середине фильма: жаловались на напряжение в глазах, дискомфорт и головные боли. Технология, которая должна была удивлять, в итоге просто раздражала.</p><p>Контента почти не было, и пользователи, купив дорогой телевизор, сталкивались с вопросом: а что, собственно, смотреть? 3D-телевизоры были дороже своих 2D-аналогов, и с развитием 4K, HDR и OLED-технологий потребители начали отдавать предпочтение лучшему качеству изображения без 3D. Зачем платить за условную «глубину», если можно просто получить красивую живую картинку из коробки.</p><p>Несмотря на провал 3D-ТВ в их классическом виде, эксперты <a href="https://www.wired.com/story/3d-is-back/">не ставят</a> на них технологии крест. Как пишет WIRED, новый виток связан с автостереоскопическими дисплеями: они используют трекинг взгляда, линзы и AI, чтобы создавать объёмное изображение прямо на экране — без всяких аксессуаров.</p><h2>Google Glass: будущее было на носу</h2><figure><img src="https://media.tproger.ru/user-uploads/111449/2025-06-27/6878713e-86e0-4dd2-b509-48b4a883ef32.png" alt="Google Glass" /><figcaption>Источник: Google</figcaption></figure><p>Google Glass подавали как прорыв — интерфейс будущего прямо у вас перед глазами. Но вместо футуризма — странная дужка с экранчиком сбоку. Стоила как хороший ноутбук, делала как плохой смартфон. Пользователи получали уведомления на уровне браслета и фото из 2005 года. Памяти почти нет, батарея умирает быстрее, чем вы успеете сказать «Окей, Google».</p><p>Соучредитель Google Сергей Брин позже <a href="https://techcrunch.com/2025/05/20/googles-sergey-brin-i-made-a-lot-of-mistakes-with-google-glass/">признал</a>, что не понимал, как устроены поставки и насколько сложно произвести такие очки массово и недорого. И это многое объясняет: в Google Glass вложили идею, но не довели её до жизнеспособного устройства.</p><p>Хотя запуск обставили красиво: дали очки техноинфлюенсерам, звёздам, первопроходцам — маркетинг остался без главного: никакой конкретики, ни сроков, ни объяснения, зачем это всё нужно. Продукт обсуждали, хайп был — но в продаже его не было. Сама общественность встретила Glass с настороженностью: главной проблемой стала <a href="https://www.wired.com/story/google-glass-reasonable-expectation-of-privacy/">конфиденциальность</a>. У очков не было явного индикатора съёмки, и люди не понимали, записывают их или нет.</p><p>Некоторые <a href="https://www.reddit.com/r/virtualreality/comments/1ai5chh/google_glass_was_ahead_of_its_time/">считают</a>, что Google Glass просто опередили своё время. Прототип показали ещё в 2013 году на Google I/O, а уже к 2015-му производство <a href="https://www.bbc.com/news/technology-30831128">свернули</a>. На практике очки оказались недостаточно удобными, многие обозреватели говорили, что они нелепо выглядят, а способов их применения никто так и не придумал. При цене в $1500 очки превратились в атрибут избранных гиков, а не в массовый гаджет.</p><p>По <a href="http://www.cio.com/article/2369965/consumer-technology/how-many-people-actually-own-google-glass-.html">оценкам</a> аналитиков, всего было продано не более 250 тыс. таких устройств, причем на старте Google отдала лишь 10 000 очков ограниченному кругу «избранных». Попасть к покупателю было сложно — очки продавали только по рекомендациям действующих владельцев. Функционально устройство не впечатляло: маленький прозрачный дисплей с разрешением 640×360, слабая 5-Мп камера, мало памяти и скромные 2–3 часа работы от батареи не соответствовали ожиданиям пользователей.</p><p>После провала на массовом рынке Google сменила стратегию на бизнес‑фокус. С 2014 года разрабатывалась корпоративная версия Glass Enterprise Edition, адаптированная для промышленных задач. Однако эти бизнес-успехи не спасли проект на массовом рынке, и Google окончательно <a href="https://support.google.com/glass-enterprise/customer/answer/13417888">закрыла</a> проект в 2023 году.</p><p>На фоне фиаско Google Glass, современные игроки делают выводы — и действуют иначе. Ray-Ban Meta* (признана в России экстремистской организацией и запрещена) не обещают революцию — они интегрируют ИИ и камеру в повседневную форму очков. Не «будущее на лице», а стильный способ снять сторис и получить подсказки от ИИ. Apple Vision Pro, напротив, сознательно уходит в премиум и не обещает быть массовым — только для профессионалов, с чётким сценарием: дополнительный дисплей, работа с контентом и Facetime. А Android XR (например, от Samsung) с <a href="https://www.techradar.com/computing/virtual-reality-augmented-reality/heres-what-we-know-about-the-5-android-xr-smart-glasses-currently-in-development">амбицией</a> создать экосистему, куда подключаются другие производители.</p><h2>Главные фейлы: почему хайп умер быстрее, чем мы успели надеть шлемы</h2><ul><li>Переоценка трендов: компании хотели <b>влететь в хайповый тренд</b>. В итоге технологии оказывались сырыми или неудобными.</li><li>Нет <b>ценности для пользователя</b>: эти продукты часто не решали реальных задач, а разработчики не объясняли, почему именно их стоит использовать.</li><li>Сложность и <b>неудобства</b>: тяжёлые VR-шлемы, громоздкие или нелепые устройства.</li><li>Непроработанные <b>риски</b>: проблемы с приватностью, мошенничеством и токсичностью подрывали репутацию и доверие.</li></ul><p>В итоге большинство хайповых технологий проваливаются не из-за идеи, а из-за недостатка внимания к пользовательскому опыту, адекватности технических решений и реальным потребностям рынка. Технологии должны идти в ногу с ожиданиями и возможностями людей, а не только с фантазиями инвесторов и маркетологов. Будущее — за теми, кто сумеет не просто создать инновацию, а сделать её удобной, полезной и понятной.</p>]]></content:encoded>
    </item>
    <item>
      <title>У вас Android? Тогда Gemini уже умеет читать WhatsApp-переписки и звонки. Как это отключить</title>
      <link>https://tproger.ru/news/u-vas-android--togda-gemini-uzhe-umeet-chitat-whatsapp-perepiski-i-zvonki--kak-eto-otklyuchit</link>
      <comments>https://tproger.ru/news/u-vas-android--togda-gemini-uzhe-umeet-chitat-whatsapp-perepiski-i-zvonki--kak-eto-otklyuchit?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Булат Яббаров]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/u-vas-android--togda-gemini-uzhe-umeet-chitat-whatsapp-perepiski-i-zvonki--kak-eto-otklyuchit</guid>
      <description><![CDATA[<p>Google активировал Gemini на Android с доступом к WhatsApp, звонкам и сообщениям — даже без включённого отслеживания. Рассказываем, как отключить или удалить помощника</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/u-vas-android--togda-gemini-uzhe-umeet-chitat-whatsapp-perepiski-i-zvonki--kak-eto-otklyuchit">У вас Android? Тогда Gemini уже умеет читать WhatsApp-переписки и звонки. Как это отключить</a>»</p>]]></description>
      <category><![CDATA[Android]]></category>
      <category><![CDATA[Google]]></category>
      <category><![CDATA[Искусственный интеллект]]></category>
      <category><![CDATA[Мессенджер]]></category>
      <category><![CDATA[Приложение]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Tue, 08 Jul 2025 17:53:14 GMT</pubDate>
      <content:encoded><![CDATA[<p>С 7 июля Google активировала расширенные возможности помощника Gemini на Android: теперь он может взаимодействовать с приложениями вроде WhatsApp, «Телефон», «Сообщения» и «Утилиты», даже если вы не включали отслеживание активности в настройках Gemini.</p><p>Функции кажутся удобными — скажите: «Отправь сообщение в WhatsApp [контакту]», и Gemini выполнит команду. Но всё не так однозначно.</p><h2>В чём проблема</h2><p>Gemini теперь может:</p><ul><li>читать и пересылать уведомления из мессенджеров;</li><li>распознавать изображения;</li><li>действовать от вашего имени в приложениях, даже если отслеживание отключено.</li></ul><p>Google заявляет, что не будет использовать ваши чаты для обучения моделей при отключённой активности.</p><p>Но технически помощник продолжает иметь доступ к WhatsApp и другим приложениям через Google Ассистента и «Утилиты».</p><h2>Как отключить доступ Gemini к WhatsApp и другим приложениям</h2><ol><li>Откройте приложение Gemini на Android.</li><li>Перейдите в <i>профиль → Apps</i>.</li><li>Отключите все расширения вручную.</li></ol><p>Чтобы полностью отключить отслеживание:</p><ol><li>Зайдите в <i>Gemini → Profile → Gemini Apps Activity</i>.</li><li>Переключите в <i>выключено</i> (<i>off</i>).</li></ol><p>⚠️ Даже после этого Google будет хранить ваши данные ещё 72 часа — «для безопасности и контекстных ответов».</p><h2>Как удалить Gemini полностью (спойлер: непросто)</h2><p>Google не даёт прямого способа удаления Gemini. Но энтузиасты нашли обходной путь — через ADB (Android Debug Bridge):</p><ol><li>Скачайте Platform Tools с<a href="https://developer.android.com/studio/releases/platform-tools"> developer.android.com</a>.</li><li>Включите USB-отладку (<i>Настройки → О телефоне → 7 раз тапните по номеру сборки → Разработчик → Включить отладку</i>).</li><li>Подключите телефон к компьютеру и разрешите доступ.</li><li>В терминале выполните:</li></ol><p>Это удалит Gemini… но не полностью.</p><p>Помощник остаётся встроенным в приложение Google — и пока оно есть, Gemini тоже с вами. Чтобы избавиться от него окончательно:</p><ul><li>удалите все обновления приложения Google;</li><li>отключите его (если позволяет устройство).</li></ul><p>⚠️ Важно: Удаление приложения Google может повлечь за собой сбои в работе других сервисов. Действуйте на свой страх и риск.</p>]]></content:encoded>
    </item>
    <item>
      <title>Цифровой минимализм: как с помощью технологий снизить зависимость от технологий</title>
      <link>https://tproger.ru/articles/cifrovoj-minimalizm--ili-kak-s-pomoshhyu-tehnologij-snizit-zavisimost-ot-tehnologij</link>
      <comments>https://tproger.ru/articles/cifrovoj-minimalizm--ili-kak-s-pomoshhyu-tehnologij-snizit-zavisimost-ot-tehnologij?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Денис Кудерин]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/articles/cifrovoj-minimalizm--ili-kak-s-pomoshhyu-tehnologij-snizit-zavisimost-ot-tehnologij</guid>
      <description><![CDATA[<p>Цифровой минимализм в 2025: практические стратегии осознанного использования гаджетов, проверенные методы цифрового детокса и работающие инструменты для контроля экранного времени. </p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/articles/cifrovoj-minimalizm--ili-kak-s-pomoshhyu-tehnologij-snizit-zavisimost-ot-tehnologij">Цифровой минимализм: как с помощью технологий снизить зависимость от технологий</a>»</p>]]></description>
      <category><![CDATA[Интернет]]></category>
      <category><![CDATA[Оптимизация]]></category>
      <category><![CDATA[Android]]></category>
      <category><![CDATA[Инструменты]]></category>
      <category><![CDATA[Git]]></category>
      <category><![CDATA[Опрос]]></category>
      <category><![CDATA[Новости]]></category>
      <category><![CDATA[Практика]]></category>
      <category><![CDATA[Google]]></category>
      <category><![CDATA[Социальные сети]]></category>
      <category><![CDATA[iOS]]></category>
      <category><![CDATA[Музыка]]></category>
      <category><![CDATA[Работа]]></category>
      <category><![CDATA[ВКонтакте]]></category>
      <category><![CDATA[Telegram]]></category>
      <category><![CDATA[Сервисы]]></category>
      <category><![CDATA[Яндекс]]></category>
      <category><![CDATA[Мессенджер]]></category>
      <category><![CDATA[YouTube]]></category>
      <category><![CDATA[Приложение]]></category>
      <category><![CDATA[Spotify]]></category>
      <category><![CDATA[TikTok]]></category>
      <category><![CDATA[Смартфоны]]></category>
      <category><![CDATA[Подкасты]]></category>
      <category><![CDATA[Статьи]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Tue, 08 Jul 2025 10:00:03 GMT</pubDate>
      <content:encoded><![CDATA[<p>Технологии в 2025 году стали неотъемлемой частью повседневности: умные устройства адаптируются под наши привычки, алгоритмы предсказывают желания еще до того, как мы их осознаем. Однако чем глубже цифровизация проникает в жизнь, тем сложнее контролировать ее влияние.</p><p>Современный человек часами зависает в интернете. Исследования показывают, что постоянные уведомления и действия в режиме вынужденной многозадачности снижают продуктивность на 40% и увеличивают уровень стресса.</p><p>Цифровой минимализм — не отказ от технологий, а их осознанное использование. Речь идет о том, чтобы оставить только те инструменты, которые действительно помогают, и избавиться от всего, что отвлекает. При этом сами технологии могут стать союзниками в этом процессе.</p><h2>Суть цифрового минимализма: философия осознанного потребления</h2><p>Концепцию цифрового минимализма популяризировал профессор Джорджтаунского университета Кэл Ньюпорт в книге «Цифровой минимализм: Как перестать жить на автомате и вернуть себе концентрацию» (2019). Его основная идея заключается в том, что технологии должны служить человеку, а не подчинять его себе.</p><p>Спустя шесть лет проблема стала еще актуальнее. Согласно <a href="https://www.web-canape.ru/business/statistika-interneta-i-socsetej-na-2025-god-cifry-i-trendy-v-mire-i-v-rossii/?utm_referrer=https%3a%2f%2fwww.google.com%2f">Digital 2025 Report</a>, среднестатистический пользователь тратит 5,7 часов в день на взаимодействие с цифровыми устройствами, причем 37% этого времени уходит на бессмысленный скроллинг. Это не просто пустая трата времени: нейробиологи доказали, что постоянное переключение между задачами ухудшает когнитивные функции и повышает уровень кортизола, гормона стресса.</p><h3>Почему цифровой минимализм важен в 2025 году</h3><p>Есть объективные причины ограничивать потребление цифрового контента:</p><ul><li>Информационная перегрузка. Ежедневно человек сталкивается с тысячами рекламных сообщений, уведомлений и новостных заголовков. Мозг не успевает фильтровать этот поток, что приводит к хронической усталости и снижению концентрации.</li><li>Социальные сети заменяют реальное общение. Исследования показывают, что активные пользователи соцсетей на 30% реже встречаются с друзьями лично, что ведет к эмоциональному выгоранию и чувству одиночества.</li><li>Технологии крадут время. В среднем человек проверяет смартфон 150 раз в день, при этом 60% этих действий не имеют конкретной цели.</li></ul><p>Важно! Зависимость формируется на нейробиологическом уровне. Уведомления и лайки активируют систему вознаграждения мозга, схожую с механизмом наркотической зависимости.</p><h2>Фундаментальные принципы цифрового минимализма</h2><p>Цифровой минимализм перестал быть просто модным термином — в 2025 году это необходимость для сохранения ментального здоровья и продуктивности. Рассмотрим три ключевых принципа, которые помогут выстроить здоровые отношения с технологиями.</p><h3>Осознанное взаимодействие с технологиями</h3><p>Современные устройства и приложения разрабатывают с одной целью — максимально удержать наше внимание. В 2025 году алгоритмы стали настолько совершенными, что могут предугадывать наши действия. Осознанность — это первый шаг к цифровой свободе.</p><p>Практические методы осознанного использования:</p><ul><li>Перед открытием приложения задавайте вопрос: «Зачем я это делаю?»</li><li>Установите временные лимиты для развлекательных сервисов через системные настройки.</li><li>Используйте специализированные устройства для конкретных задач (электронные книги для чтения, камеры для фотосъемки).</li><li>Включите монохромный режим экрана, чтобы снизить визуальную привлекательность интерфейсов.</li></ul><p>Осознанность требует регулярной рефлексии. Раз в неделю анализируйте статистику использования телефона и корректируйте привычки.</p><h3>Радикальная оптимизация цифрового пространства</h3><p>Оптимизация в 2025 году вышла за рамки простого удаления ненужных приложений.</p><p>Современные подходы включают:</p><ol><li>Ревизию подписок и уведомлений. Отпишитесь от рассылок, которые не читаете. Отключите push-уведомления для всех приложений, кроме действительно важных. Используйте функции сортировки входящих (например, «Умный inbox» в Яндекс.Почте).</li><li>Создание цифровых зон. Рабочий профиль — только профессиональные приложения. Личный профиль — мессенджеры и полезные сервисы. Развлекательный профиль — доступ по расписанию.</li><li>Автоматизацию рутинных операций. Настройте правила обработки писем (фильтры, шаблоны ответов). Используйте голосовых ассистентов для повторяющихся задач. Включите «умные» ответы в мессенджерах.</li></ol><p>Оптимизация — постоянный процесс. Раз в месяц проводите цифровую «уборку».</p><h3>Полный контроль над цифровой средой</h3><p>Контроль означает не ограничения, а создание персонализированной экосистемы.</p><p>Технологии позволяют:</p><ul><li>Настраивать интерфейсы под конкретные задачи — например, минималистичные лаунчеры.</li><li>Использовать «цифровые фазы» (утренняя, рабочая, вечерняя) с разными наборами доступных функций.</li><li>Применять геозависимые правила — автоматически включать режим «Не беспокоить» на работе.</li><li>Создавать временные ограничения для определенных категорий приложений.</li></ul><p>Особое внимание стоит уделить аппаратным решениям, которые мы рассмотрим в следующем разделе. При этом контроль должен быть гибким. Раз в квартал пересматривайте настройки и адаптируйте их под текущие потребности.</p><h2>Как технологии помогают бороться с цифровой зависимостью</h2><p>Парадоксально, но лучшие инструменты для цифрового минимализма — это сами технологии. Современные приложения и сервисы позволяют фильтровать информацию, блокировать отвлекающие факторы и даже перестраивать привычки.</p><h3>Приложения для контроля экранного времени</h3><p>Современные смартфоны оснащены встроенными функциями отслеживания времени использования, но сторонние решения предлагают больше гибкости.</p><h4>Freedom</h4><p>Это приложение позволяет блокировать соцсети и развлекательные сайты на всех устройствах, включая умные часы. Пользователи отмечают, что уже через две недели использования время, проведенное в соцсетях, сокращается в среднем на 28%.</p><figure><img src="https://media.tproger.ru/user-uploads/113565/2025-06-17/8f2a951f-8d40-4030-8719-caabc52a7c72.png" alt="" /></figure><h4>Cold Turkey (Detox Lock)</h4><p>Более жесткий инструмент. Он не просто блокирует отвлекающие сайты, но и позволяет создавать расписания, исключающие доступ в YouTube или TikTok даже после перезагрузки компьютера. Это особенно полезно для тех, кто работает удаленно и постоянно отвлекается. Аналог для пользователей Андроид из РФ — Detox Lock.</p><figure><img src="https://media.tproger.ru/user-uploads/113565/2025-06-17/e928961c-ce1c-40c0-b471-a456a59b02eb.png" alt="" /></figure><h3>OneSec</h3><p>Приложение, которое добавляет паузу перед открытием соцсетей. Когда вы пытаетесь запустить ВКонтакте или мессенджер, оно спрашивает: «А точно ли вам это нужно?» Простое, но эффективное решение, заставляющее задуматься перед бессмысленным скроллингом.</p><figure><img src="https://media.tproger.ru/user-uploads/113565/2025-06-17/8cf118c3-750d-4dc1-a7e7-7b9684e661cb.png" alt="" /></figure><h3>Автоматизация рутинных задач</h3><p>Чем меньше рутины, тем меньше поводов брать в руки телефон. Современные инструменты автоматизации позволяют значительно сократить время, которое мы тратим на повторяющиеся действия.</p><h4>Superhuman и Spark</h4><p>Почтовые клиенты, которые автоматически сортируют письма по категориям. Вместо того чтобы вручную разбирать входящие, вы сразу видите только важные сообщения.</p><h4>Focus Mode в iOS и Android</h4><p>Встроенные функции, которые помогут настроить уведомления так, чтобы они не отвлекали в рабочее время. Можно, например, разрешить звонки только от избранных контактов.</p><h4>ChatGPT-5 и другие голосовые ассистенты</h4><p>Уже умеют не просто отвечать на вопросы, но и выполнять сложные задачи — бронировать столики в ресторанах, заказывать товары или даже вести переписку от вашего имени.</p><p>Главное правило автоматизации: если действие повторяется чаще двух раз в неделю — его стоит делегировать алгоритмам.</p><h2>Как создать цифровую среду, которая не отвлекает</h2><p>В 2025 году цифровые устройства стали настолько умными, что начали предугадывать наши желания. Но эта «помощь» часто превращается в ловушку: бесконечные уведомления, рекомендации и персонализированный контент затягивают нас в цифровую воронку. Хорошая новость: те же технологии помогут выстроить здоровые отношения с гаджетами. Рассмотрим три ключевых направления оптимизации.</p><h3>Визуальная гигиена: монохромный режим и не только</h3><p>Цветовые схемы современных интерфейсов разрабатывают целые команды нейропсихологов. Яркие оттенки, анимации и контрасты стимулируют выброс дофамина, создавая эффект цифрового фастфуда. Исследование MIT (2023) показало: переход на монохромную палитру снижает время использования смартфона на 22% и уменьшает импульсивные клики.</p><figure><img src="https://media.tproger.ru/user-uploads/113565/2025-06-17/c43bdcdf-7674-41ef-bf76-d5707d7ce4b2.jpg" alt="" /></figure><p>Но визуальная гигиена — это не только оттенки серого. В 2025 году появились новые инструменты:</p><ul><li>Динамическая регулировка контраста — доступна в последних версиях iOS и Android. Автоматически снижает насыщенность цветов вечером.</li><li>«Текст-режим» в браузерах (например, Mercury Reader) убирает рекламу и оставляет только основной контент.</li><li>Минималистичные лаунчеры (вроде Before Launcher) заменяют иконки приложений на текстовые метки.</li></ul><p>Как это работает на практике? После перехода на монохромную тему и текстовый лаунчер юзеры реже открывают телефон «просто посмотреть». Исчезает визуальный мусор — пропадает рефлекс постоянно проверять устройство.</p><h3>Борьба с цифровыми «ловушками внимания»</h3><p>Современные приложения — это сложные системы манипуляции вниманием. Автоподбор контента, бесконечная лента, персонализированные уведомления созданы для одного — удержать нас в экране как можно дольше. Но есть контрмеры.</p><p>В Telegram, который стал основной платформой для общения в русскоязычном сегменте, можно настроить режим «Только новые сообщения». Это аналог хронологической ленты — вы видите посты в порядке публикации, без алгоритмического ранжирования. Включается через Настройки → Конфиденциальность → Режим отображения постов.</p><p>YouTube теперь предлагает три варианта просмотра:</p><ul><li>стандартный (с рекомендациями);</li><li>только подписки;</li><li>«чистый» режим (поиск по запросу без побочного контента).</li></ul><p>Особого внимания заслуживает система уведомлений. Появилась практика «цифровых зон»:</p><ul><li>рабочая зона: только почта и корпоративные мессенджеры;</li><li>личная зона: звонки и SMS;</li><li>тихая зона: полное отключение всех оповещений.</li></ul><h3>Возвращение к «аналоговому» цифровому</h3><p>Самые продвинутые пользователи начинают сознательно ограничивать смарт-функции. Тренд на цифровой аскетизм проявляется в нескольких формах.</p><p>Электронные книги с E-Ink дисплеями (PocketBook, ONYX Boox) теперь поддерживают только базовые функции чтения — без браузеров и соцсетей. По данным ритейлеров, спрос на такие устройства вырос на 40% за последний год.</p><figure><img src="https://media.tproger.ru/user-uploads/113565/2025-06-17/bf23ecf0-106b-484a-8ede-ed147b55bc15.jpg" alt="" /></figure><p>Умные блокноты (Remarkable 3, Rocketbook) стали популярны среди тех, кто хочет совместить удобство цифровых заметок с фокусом ручного письма. Нейробиологи подтверждают: рукописный текст лучше усваивается и запоминается.</p><p>Отдельный тренд — функциональные гаджеты. Вместо универсальных смартфонов люди начинают использовать:</p><ul><li>камеры Fujifilm (или аналоги) с ограниченным набором функций;</li><li>MP3-плееры для музыки без стриминговых сервисов;</li><li>электронные словари вместо мобильных приложений.</li></ul><p>Пользователи отмечают, что при переходе на камеру Fujifilm X100VI они начинают чаще смотреть по сторонам, а не в экран.</p><h3>Почему эти методы работают</h3><p>Нейрофизиологи выделяют три механизма воздействия:</p><ul><li>Устранение триггеров — монохромные схемы и минималистичные интерфейсы не провоцируют дофаминовый отклик.</li><li>Снижение когнитивной нагрузки — меньше визуального шума, больше ментальных ресурсов.</li><li>Формирование новых паттернов — специализированные устройства создают четкие поведенческие сценарии.</li></ul><p>Важно понимать: эти методы не требуют полного отказа от технологий. Речь идет о сознательном проектировании цифровой среды, где каждая функция служит конкретной цели, а не рассеивает внимание. Как показывает практика, даже небольшие изменения дают заметный эффект уже через 2-3 недели.</p><h2>Долгосрочные стратегии: как не вернуться к цифровому хаосу</h2><p>Цифровой минимализм требует системного подхода — разовых действий недостаточно. Рассмотрим три проверенных метода, которые помогают сохранить контроль над технологиями в долгосрочной перспективе.</p><h3>Плановый цифровой детокс</h3><p>Исследователи University of Pennsylvania доказали: даже кратковременное воздержание от цифровых устройств перезагружает когнитивные функции. Их рекомендация — 24-часовой детокс раз в месяц. Но как сделать его эффективным?</p><figure><img src="https://media.tproger.ru/user-uploads/113565/2025-06-17/e90a0783-1baf-4338-912e-71168e0e1653.jpg" alt="" /></figure><p>Подготовку стоит начинать за 2-3 дня. Постепенно сокращайте время в соцсетях, предупредите коллег и близких о временной недоступности. В 2025 году появились специальные сервисы для автоматического ответа на сообщения во время детокса, например, AwayMessage для Telegram.</p><p>В день детокса сосредоточьтесь на офлайн-активностях с четкой структурой:</p><ul><li>утренняя прогулка без гаджетов;</li><li>чтение бумажных книг или специализированных e-ink устройств;</li><li>настольные игры или встречи с друзьями.</li></ul><p>Важно: не пытайтесь компенсировать пропущенные уведомления после детокса. Просматривайте только действительно важные сообщения.<br /></p><h3>Персонализированные правила цифровой гигиены</h3><p>Универсальных рецептов не существует — каждый должен разработать собственные нормы взаимодействия с технологиями.</p><p>Вот как это сделать:</p><ul><li><b>Анализ цифровых привычек.</b> В течение недели фиксируйте: время первого и последнего использования смартфона, частоту бесцельных проверок устройств, приложения, которые забирают больше всего времени.</li><li><b>Постепенное внедрение ограничений.</b> Начните с малого: первые 30 минут после пробуждения — без гаджетов, обеденный перерыв — без соцсетей, последний час перед сном — в режиме «Не беспокоить».</li><li><b>Техническая поддержка.</b> Используйте встроенные инструменты: фокус-режимы в iOS/Android, функцию «Цифровое благополучие», приложения для трекинга экранного времени.</li></ul><h3>Осознанное потребление контента</h3><p>Алгоритмы предугадывают наши интересы, формируя зависимость. Чтобы не попасть в  «пузырь фильтров», нужно сознательно формировать информационную диету.</p><p>Современные подкаст-платформы (Яндекс.Музыка, Spotify) предлагают режим «Без рекомендаций» — вы слушаете только выбранные выпуски. Аналогичные функции появились в YouTube («Только подписки») и новостных агрегаторах.</p><p>Для профессионального развития выбирайте контент с четкой структурой:</p><ul><li>подкасты с расшифровками (например, «Будет сделано!»);</li><li>образовательные платформы с прогресс-трекингом (Stepik, Coursera);</li><li>телеграм-каналы с аналитикой вместо кликбейта.</li></ul><p>Ключевой принцип: каждый источник информации должен иметь понятную цель и ограниченное время потребления. Например, 30 минут утром на профессиональные новости и 20 минут вечером на развлекательный контент.</p><p>Главное — последовательность. Не пытайтесь внедрить все изменения сразу. Начните с одного элемента, закрепите привычку, затем добавляйте следующий. Помните, что на формирование устойчивой цифровой дисциплины требуется в среднем 66 дней.</p><p>Над цифровой зависимостью можно только смеяться. И это можно сделать в нашем <a href="https://t.me/+JWynXkY6aXcxZGNi">тг-канале</a>!</p>]]></content:encoded>
    </item>
    <item>
      <title>HUAWEI откроет исходный код «убийцы» Java и Swift — языка Cangjie</title>
      <link>https://tproger.ru/news/--huawei-otkroet-ishodnyj-kod--ubijcy--java-i-swift---yazyka-cangjie</link>
      <comments>https://tproger.ru/news/--huawei-otkroet-ishodnyj-kod--ubijcy--java-i-swift---yazyka-cangjie?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Булат Яббаров]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/--huawei-otkroet-ishodnyj-kod--ubijcy--java-i-swift---yazyka-cangjie</guid>
      <description><![CDATA[<p>HUAWEI 30 июля откроет исходный код языка Cangjie — альтернативы Java и Swift, созданной для HarmonyOS с упором на ИИ и безопасность</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/--huawei-otkroet-ishodnyj-kod--ubijcy--java-i-swift---yazyka-cangjie">HUAWEI откроет исходный код «убийцы» Java и Swift — языка Cangjie</a>»</p>]]></description>
      <category><![CDATA[Java]]></category>
      <category><![CDATA[Android]]></category>
      <category><![CDATA[iOS]]></category>
      <category><![CDATA[Swift]]></category>
      <category><![CDATA[Сервисы]]></category>
      <category><![CDATA[Приложение]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Fri, 04 Jul 2025 04:37:45 GMT</pubDate>
      <content:encoded><![CDATA[<p>HUAWEI <a href="https://www.scmp.com/tech/big-tech/article/3316506/huawei-open-source-self-developed-programming-language-cangjie-rival-java-and-swift">объявила</a>, что 30 июля откроет исходный код собственного языка программирования Cangjie. Это часть стратегии компании по снижению зависимости от иностранных технологий и развития своей экосистемы.</p><h2>Что такое Cangjie</h2><p>Cangjie — язык общего назначения, разработанный для HarmonyOS Next. Это та самая операционная система, созданная на замену Android после американских санкций.</p><p>По словам HUAWEI, язык подходит для <b>разработки «во всех сценариях»</b>, включая мобильные приложения, распределённые системы и ИИ-сервисы.</p><p>Особенности Cangjie:</p><ul><li>Нативная поддержка ИИ</li><li>Фокус на безопасности</li><li>Поддержка приложений не только на HarmonyOS, но и на Android с iOS</li></ul><p>Таким образом, Cangjie позиционируется как альтернатива Java (в экосистеме Android) и Swift (в iOS).</p><h2>Как развивается экосистема</h2><p>Язык разрабатывался почти пять лет и впервые был представлен в июне 2023 года. За несколько недель он привлёк свыше <b>10 000 заявок на участие в тестировании</b>.</p><p>Уже в октябре прошлого года Cangjie стал доступен всем разработчикам HarmonyOS, а к июлю 2025 его используют крупные игроки:</p><ul><li><b>Meituan</b> — пишет на Cangjie приложение для доставки, релиз которого ожидается в III квартале;</li><li><b>JD.com</b> — использует язык в мобильных решениях для собственной платформы.</li></ul><h2>Почему это важно</h2><p>Cangjie — ещё один шаг в сторону <b>технологического суверенитета</b> Китая. Под американскими санкциями HUAWEI активно выстраивает собственную экосистему — от ОС и чипов до языков программирования и облачных сервисов.</p><h2>Что дальше</h2><p>С 30 июля исходный код Cangjie будет доступен всем. HUAWEI рассчитывает, что открытие языка ускорит его адаптацию и создаст альтернативу западным технологиям — в первую очередь в Китае, а затем и за его пределами.</p><p>Посмотреть документацию языка можно по <a href="https://cangjie-lang.cn/en/docs?url=/0.53.13/user_manual/source_en/first_understanding/basic.html">ссылке</a>.</p>]]></content:encoded>
    </item>
    <item>
      <title>DOOM запустили на беговой дорожке. И это прекрасно</title>
      <link>https://tproger.ru/news/--doom-zapustili-na-begovoj-dorozhke--i-eto-prekrasno</link>
      <comments>https://tproger.ru/news/--doom-zapustili-na-begovoj-dorozhke--i-eto-prekrasno?scrollTo=tproger-comments</comments>
      <dc:creator><![CDATA[Булат Яббаров]]></dc:creator>
      <guid isPermaLink="true">https://tproger.ru/news/--doom-zapustili-na-begovoj-dorozhke--i-eto-prekrasno</guid>
      <description><![CDATA[<p>DOOM запустили на беговой дорожке Life Fitness с Android — теперь классическую игру можно проходить, пока бежишь. И это не шутка</p><p>— Читать дальше «<a rel="follow" href="https://tproger.ru/news/--doom-zapustili-na-begovoj-dorozhke--i-eto-prekrasno">DOOM запустили на беговой дорожке. И это прекрасно</a>»</p>]]></description>
      <category><![CDATA[Android]]></category>
      <category><![CDATA[Игра]]></category>
      <category><![CDATA[Приложение]]></category>
      <category><![CDATA[Взлом]]></category>
      <category><![CDATA[Новости]]></category>
      <slash:comments>0</slash:comments>
      <pubDate>Tue, 01 Jul 2025 11:12:14 GMT</pubDate>
      <content:encoded><![CDATA[<p>Энтузиаст с Reddit смог установить DOOM на велотренажёр Life Fitness. Теперь игру можно проходить, пока бежишь. Буквально.</p><p>Пользователь под ником <i>u/TardisEngineer</i> стал, по его словам, первым человеком, установившим Android-приложение на тренажёры Life Fitness.</p><p>Благодаря найденной уязвимости, он смог вручную установить <i>Freedoom</i> — свободную версию DOOM — на консоль беговой дорожки и запустить её прямо в меню тренажёра.</p><h2>Как это вообще возможно</h2><p>Многие современные тренажёры Life Fitness (модели SE, SE3 HD, SE4 и другие) работают на <b>Android 5</b> и поддерживают обновление прошивки с флешки.</p><p>Автор новости нашёл на официальном сайте Life Fitness архивы с апдейтами и обнаружил в них открытые конфигурационные файлы.</p><p>В одном из них достаточно было добавить строчку:</p><p>…и положить в нужную папку APK-файл игры, чтобы та появилась в интерфейсе тренажёра как отдельное приложение.</p><p>После этого он аналогичным способом установил файловый менеджер и вручную перенёс WAD-файлы игры в нужную директорию.</p><figure><img src="https://media.tproger.ru/user-uploads/111041/2025-07-01/b57e2a47-52ac-49a0-8e02-b263161942bf.jpeg" alt="" /></figure><h2>Какие есть проблемы</h2><p>Запустить игру — это ещё не всё. Управлять в процессе сложно: сенсорный экран не поддерживает мультитач, поэтому стрелять и двигаться одновременно нельзя.</p><p>А любое нажатие снизу экрана вызывает интерфейс тренировки и может прервать сессию. Кроме того, консоль автоматически завершает работу, если пользователь стоит более 10 секунд — приходится играть <i>в движении</i>.</p><h2>Зачем всё это</h2><p>Автор говорит, что взлом потребовал месяцев работы, тестов и экспериментов.</p><p>Но результат того стоит: теперь он может запускать DOOM на тренажёре в любом спортзале, где установлены модели Life Fitness с соответствующей прошивкой. И пусть это неудобно, но это <b>DOOM. На. Беговой. Дорожке.</b></p><p>Инструкции он <a href="https://www.reddit.com/r/itrunsdoom/comments/1lmn1l1/doom_running_on_a_life_fitness_se3_elliptical">опубликовал</a> на Reddit, а в теории подобный трюк можно провернуть и с другими приложениями. Например, с Doom II, эмулятором NES или даже файлообменником.</p><p>Так что если вам казалось, что DOOM уже запустили везде, то вот вам ещё один пункт в копилку.</p>]]></content:encoded>
    </item>
  </channel>
</rss>