<?xml version="1.0" encoding="UTF-8"?>

<rss version="2.0" xmlns:dc="http://purl.org/dc/elements/1.1/" >

  <channel>
    <title><![CDATA[Все статьи подряд / Android / Хабр]]></title>
    <link>https://habr.com/ru/hubs/android_dev/articles/</link>
    <description><![CDATA[Android – пишем под самую популярную мобильную ОС]]></description>
    <language>ru</language>
    <managingEditor>editor@habr.com</managingEditor>
    <generator>habr.com</generator>
    <pubDate>Sat, 02 May 2026 22:32:09 GMT</pubDate>
    
    
      <image>
        <link>https://habr.com/ru/</link>
        <url>https://habrastorage.org/webt/ym/el/wk/ymelwk3zy1gawz4nkejl_-ammtc.png</url>
        <title>Хабр</title>
      </image>
    

    
      
        
    
    <item>
      <title><![CDATA[Почему я написал Paginator вместо Paging 3]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1030294/</guid>
      <link>https://habr.com/ru/articles/1030294/?utm_campaign=1030294&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/98c/e10/bcc/98ce10bcc13317ac87b39a24e54a2eb3.png" /><p>Это статья от автора библиотеки, поэтому нейтральным разбор не будет. Но это и не рассказ про<br> конкретный проект — а разбор задач, на которых, на мой взгляд, Paging 3 начинает буксовать, и<br> того, как <a href="https://github.com/jamal-wia/Paginator" rel="noopener noreferrer nofollow">Paginator</a> устроен, чтобы эти задачи<br> закрывать. KMP-библиотека пагинации для Android, iOS, JVM и Desktop. Ниже — почему она появилась<br> именно как отдельная библиотека, а не как fork или обёртка над Paging 3.</p> <a href="https://habr.com/ru/articles/1030294/?utm_campaign=1030294&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Thu, 30 Apr 2026 18:12:52 GMT</pubDate>
      <dc:creator><![CDATA[Jamal_Aliev]]></dc:creator>
      
      <category><![CDATA[kmp]]></category><category><![CDATA[kotlin]]></category><category><![CDATA[paging3]]></category><category><![CDATA[paging]]></category><category><![CDATA[paginator]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Kotlin IR Compiler Plugin в дизайн-системе: автотесты с Compose без ручной разметки]]></title>
      <guid isPermaLink="true">https://habr.com/ru/companies/bcs_company/articles/1029496/</guid>
      <link>https://habr.com/ru/companies/bcs_company/articles/1029496/?utm_campaign=1029496&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/787/7a1/111/7877a1111e9b981bf9e6f156d5dd954d.png" /><p>Меня зовут Максим, я Android-разработчик в команде дизайн-системы «БКС Мир инвестиций». В 2025 году у нас шёл большой редизайн: компонентная библиотека росла, команды подключали новые Compose компоненты, а вместе с этим быстро рос и объём UI-тестов.</p><p>Для команды это быстро стало не абстрактной инженерной задачей, а вопросом скорости и стабильности разработки. Нужно было дать тестировщикам единый способ находить компоненты на экране и проверять их состояние, не заставляя разработчиков вручную поддерживать одинаковую тестовую разметку в каждом компоненте.</p><p>Эта статья про то, как мы решили задачу через Kotlin IR Compiler Plugin. Снаружи решение выглядит почти незаметно: разработчик ставит одну аннотацию, а на этапе компиляции компонент автоматически получает стабильный testTag и тестовые semantics, собранные из его state. В результате у команды стало меньше бойлерплейта в компонентах, меньше риска рассинхронизации между state и тестами, а экранные UI-тесты получили более устойчивый контракт работы с дизайн-системой.</p> <a href="https://habr.com/ru/articles/1029496/?utm_campaign=1029496&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Wed, 29 Apr 2026 09:30:09 GMT</pubDate>
      <dc:creator><![CDATA[MaxTox3 (БКС Финтех)]]></dc:creator>
      
      <category><![CDATA[android]]></category><category><![CDATA[compose]]></category><category><![CDATA[kotlin]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Telegram Mini App для PWA-приложения: как я перешёл с TWA для RuStore и что выяснил по дороге]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1029400/</guid>
      <link>https://habr.com/ru/articles/1029400/?utm_campaign=1029400&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<p>Я разрабатываю PWA для голосовой практики английского. Несколько раз пытался опубликовать его в RuStore через Trusted Web Activity (TWA) — Google-обёртку, которая упаковывает PWA в подписанный Android AAB. После четырёх отказов модерации я понял, что для моего класса приложений TWA в RuStore не работает, и за день переключился на Telegram Mini App.</p><p>Эта статья — не история стартапа, а разбор технических решений:</p> <a href="https://habr.com/ru/articles/1029400/?utm_campaign=1029400&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Wed, 29 Apr 2026 06:20:28 GMT</pubDate>
      <dc:creator><![CDATA[anatoliyshirokikh]]></dc:creator>
      
      <category><![CDATA[telegram mini app]]></category><category><![CDATA[twa]]></category><category><![CDATA[trusted web activity]]></category><category><![CDATA[rustore]]></category><category><![CDATA[bubblewrap]]></category><category><![CDATA[pwa]]></category><category><![CDATA[android]]></category><category><![CDATA[hmac]]></category><category><![CDATA[авторизация]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Цифровая тень: что скрывают под капотом популярные Android-приложения (результаты аудита)]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1029004/</guid>
      <link>https://habr.com/ru/articles/1029004/?utm_campaign=1029004&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/9d3/c41/fec/9d3c41fec603e48e7abac2aaef0db5de.jpg" /><p>Привет, Хабр!</p><p>Ну вот вы ставите Яндекс Go, жмёте «Разрешить» на всё подряд — микрофон, контакты, местоположение. Такси же, надо. А потом выясняется, что приложение лезет в буфер обмена. 16 раз в разных местах кода. Зачем такси буфер обмена — я так и не понял.</p><p>Короче, я взял семь популярных Android-приложений и разобрал их по косточкам. SAST, реверс-инжиниринг, декомпиляция DEX, разбор манифестов, ковыряние в нативных библиотеках. Под раздачу попали: Яндекс Go, Карты, Музыка, Пэй, Телемост, Mir Pay и мессенджер МАКС (бывший ICQ New / VK Messenger).</p><p>Спойлер: один мессенджер умеет распознавать ключевые слова прямо в аудиопотоке звонков. Не метаданные, не «кто кому звонил» — а именно слова.</p><p> &lt;cut/&gt; </p> <a href="https://habr.com/ru/articles/1029004/?utm_campaign=1029004&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Tue, 28 Apr 2026 09:45:56 GMT</pubDate>
      <dc:creator><![CDATA[johnick1234]]></dc:creator>
      
      <category><![CDATA[android]]></category><category><![CDATA[реверс-инжиниринг]]></category><category><![CDATA[приватность]]></category><category><![CDATA[слежка]]></category><category><![CDATA[уязвимости]]></category><category><![CDATA[яндекс]]></category><category><![CDATA[vpn]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Это ты на фото? SMS-RAT. Методы обфускации]]></title>
      <guid isPermaLink="true">https://habr.com/ru/companies/usergate/articles/1028474/</guid>
      <link>https://habr.com/ru/companies/usergate/articles/1028474/?utm_campaign=1028474&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/17a/c6b/ee3/17ac6bee3cf4435d43fe63ce49a8feed.png" /><p>Привет, Хабр! На связи команда UserGate uFactor и я, Иван Князев!</p><p>Угрозы для устройств на базе Android хорошо изучены, но вместе с тем вариантов их реализации становится всё больше. Если ранее злоумышленники делали акцент на сложный функционал и полный контроль над устройством, то сегодня они всё чаще выбирают облегчённые версии, которые проще распространять и сложнее детектировать.<br> </p> <a href="https://habr.com/ru/articles/1028474/?utm_campaign=1028474&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Tue, 28 Apr 2026 09:08:30 GMT</pubDate>
      <dc:creator><![CDATA[UserGate (UserGate)]]></dc:creator>
      
      <category><![CDATA[информационная безопасность]]></category><category><![CDATA[usergate]]></category><category><![CDATA[социальная инженерия]]></category><category><![CDATA[мошенничество]]></category><category><![CDATA[mamont]]></category><category><![CDATA[android]]></category><category><![CDATA[malware]]></category><category><![CDATA[telegram]]></category><category><![CDATA[впо]]></category><category><![CDATA[osint]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[17 лучших бесплатных аналогов Photoshop (топ альтернатив)]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1028946/</guid>
      <link>https://habr.com/ru/articles/1028946/?utm_campaign=1028946&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/810/7c8/5cd/8107c85cd2434ab649fe3fb84f339b10.png" /><p>Друзья, я снова с подборкой программ! Поскольку работаю с графикой и перепробовал много редакторов, то хочу подсказать, чем заменить Photoshop. Нашел варианты и для обработки фотографий, и для серьезного дизайна. Каждый по праву можно назвать лучшим бесплатным аналогом Фотошопа на русском языке.</p> <a href="https://habr.com/ru/articles/1028946/?utm_campaign=1028946&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Tue, 28 Apr 2026 08:30:46 GMT</pubDate>
      <dc:creator><![CDATA[pokrovsk]]></dc:creator>
      
      <category><![CDATA[Программы]]></category><category><![CDATA[программное обеспечение]]></category><category><![CDATA[софт]]></category><category><![CDATA[software]]></category><category><![CDATA[обработка фотографий]]></category><category><![CDATA[обработка фото]]></category><category><![CDATA[обработка изображений]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Динамические product flavors в Android: когда статической конфигурации уже мало]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1027280/</guid>
      <link>https://habr.com/ru/articles/1027280/?utm_campaign=1027280&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/934/63c/6a3/93463c6a3dc8ba4d4994d45bcfd13fd3.jpg" /><p>Рано или&nbsp;поздно каждый Android‑разработчик сталкивается с&nbsp;задачей «одно приложение&nbsp;— много сборок»: white‑label‑решения, региональные версии, отдельные сборки для&nbsp;разных магазинов приложений, демо для&nbsp;клиентов, внутренние окружения.</p><p>Встроенный механизм product flavors в&nbsp;Android Gradle Plugin отлично справляется со своей задачей&nbsp;— пока количество вариантов умещается в&nbsp;голове и в&nbsp;паре экранов <code>build.gradle.kts</code>.</p><p>В&nbsp;этой статье я разберу подход, при&nbsp;котором конфигурация flavors строится динамически: список вариантов и их параметры живут вне <code>build.gradle.kts</code>.</p> <a href="https://habr.com/ru/articles/1027280/?utm_campaign=1027280&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Tue, 28 Apr 2026 07:00:11 GMT</pubDate>
      <dc:creator><![CDATA[PALiarMo]]></dc:creator>
      
      <category><![CDATA[android]]></category><category><![CDATA[gradle]]></category><category><![CDATA[product flavors]]></category><category><![CDATA[build variants]]></category><category><![CDATA[kotlin dsl]]></category><category><![CDATA[white-label]]></category><category><![CDATA[android gradle plugin]]></category><category><![CDATA[build.gradle.kts]]></category><category><![CDATA[android studio]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Мобильная разработка за неделю #629 (20 — 26 апреля)]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1028094/</guid>
      <link>https://habr.com/ru/articles/1028094/?utm_campaign=1028094&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/205/af0/929/205af0929916d9ded2176823a5944316.jpg" /><p>В новом дайджесте уход Тима Кука и ненависть к Gboard, диск выбора месяца в стиле Airbnb и анимация зачеркивания текста в SwiftUI, основы разработки приложений для iOS, приватность в обычной клавиатуре, Kotlin-агент широкого профиля KMP, атаки мобильных приложений глазами хакера, рост релизов в App Store и Google Play и многое другое. Заходите!</p> <a href="https://habr.com/ru/articles/1028094/?utm_campaign=1028094&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Sun, 26 Apr 2026 11:56:26 GMT</pubDate>
      <dc:creator><![CDATA[RoboForm]]></dc:creator>
      
      <category><![CDATA[разработка мобильных приложений]]></category><category><![CDATA[разработка под android]]></category><category><![CDATA[разработка под ios]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Сломал руку, купил Pixel 10, возненавидел Gboard и написал свой офлайн-голосовой ввод для Android на GigaAM v3]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1027884/</guid>
      <link>https://habr.com/ru/articles/1027884/?utm_campaign=1027884&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/8d4/cd9/eab/8d4cd9eabda9b3e1bf5cad015cc291e1.png" /><p>Написал полностью офлайновый голосовой ввод на русском для Android. Никаких серверов, подписок и привязок к аккаунтам. За распознавание отвечает открытая нейросеть GigaAM v3 от Сбера: модель зашита прямо в APK, работает без интернета и отлично расставляет знаки препинания.</p><p>Главная фишка — не нужно отказываться от любимой клавиатуры со свайпом. Это не замена Gboard, а просто плавающая кнопка, которая появляется поверх любого поля ввода. Работает элементарно: тапнул — говоришь. Как только делаешь естественную паузу в речи, готовый текст тут же влетает в активное окно. Напрямую, минуя буфер обмена.</p><p>Стек: GigaAM v3 + sherpa-onnx (NNAPI / CPU) + крошечный детектор речи Silero VAD. Требования: Android 13+, ARM64. Исходники открыты (MIT).</p> <a href="https://habr.com/ru/articles/1027884/?utm_campaign=1027884&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Sat, 25 Apr 2026 15:06:13 GMT</pubDate>
      <dc:creator><![CDATA[amidexe]]></dc:creator>
      
      <category><![CDATA[Android]]></category><category><![CDATA[GigaAM]]></category><category><![CDATA[голосовой ввод]]></category><category><![CDATA[распознавание речи]]></category><category><![CDATA[sherpa-onnx]]></category><category><![CDATA[русский язык]]></category><category><![CDATA[open source]]></category><category><![CDATA[говорун]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Пишем логический калькулятор, лёжа на диване: как Termux и Си заменяют IDE, когда лень вставать]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1027400/</guid>
      <link>https://habr.com/ru/articles/1027400/?utm_campaign=1027400&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/679/bf8/758/679bf8758fc5bf552dcb0784e8bc2a91.jpg" /><p>Говорят, для&nbsp;программирования на&nbsp;Си нужен стол, стул, мощный ПК и Linux. У&nbsp;меня другой стек: диван, планшет на&nbsp;Андроиде и Termux. Но&nbsp;иногда мой монитор помещается в&nbsp;карман&nbsp;— это смартфон.</p><p>В&nbsp;этой статье я расскажу, как&nbsp;небольшая лень привела к&nbsp;созданию пяти версий логического калькулятора и почему мобильный кодинг&nbsp;— это не&nbsp;только боль, но&nbsp;и своеобразная свобода.</p><p><strong>Противостояние против индустрии</strong></p><p>Идея родилась внезапно. Захотелось проверить одну логическую схему, но&nbsp;вставать и идти к&nbsp;компьютеру&nbsp;было выше моих сил. Так началось моё «преступление» против канонов профессиональной разработки.</p> <a href="https://habr.com/ru/articles/1027400/?utm_campaign=1027400&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Sat, 25 Apr 2026 14:27:15 GMT</pubDate>
      <dc:creator><![CDATA[DataViz]]></dc:creator>
      
      <category><![CDATA[C]]></category><category><![CDATA[Termux]]></category><category><![CDATA[Android]]></category><category><![CDATA[Программирование]]></category><category><![CDATA[Логика]]></category><category><![CDATA[Консоль]]></category><category><![CDATA[DIY]]></category><category><![CDATA[Мобильная разработка]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[LxBox: переносим опыт singbox-launcher в Android]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1027734/</guid>
      <link>https://habr.com/ru/articles/1027734/?utm_campaign=1027734&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/db1/ea3/c23/db1ea3c23cabf7f61e81f4d8f5d22ce8.jpg" /><p>Привет. Полгода назад я выложил <a href="https://github.com/Leadaxe/singbox-launcher" rel="noopener noreferrer nofollow">singbox-launcher</a> — десктопный GUI для управления ядром <a href="https://sing-box.sagernet.org/" rel="noopener noreferrer nofollow">sing-box</a>. По фидбеку стало понятно: идея зашла, людям удобно собирать и отлаживать конфиги на ноутбуке, а потом переносить их на роутеры и другие сетевые устройства. Подробнее о десктопной версии я <a href="https://habr.com/ru/articles/1007568/" rel="noopener noreferrer nofollow">писал на Хабре</a>.</p><p>Пару слов для тех, кто не в контексте. Есть небольшой класс кроссплатформенных сетевых ядер, которые умеют гибкую маршрутизацию трафика и поддерживают современный набор протоколов: WireGuard, VLESS, SOCKS5, Shadowsocks, Hysteria2, TUIC и так далее. Sing-box в этом списке — не самый раскрученный, но для меня он оказался наиболее интересным: быстрая эволюция, внимание к деталям, чистый код, живое общение мейнтейнеров с пользователями, классно организованный по логике конфиг.</p><p>Довольно быстро стали приходить запросы на Android-порт. Первое время казалось, что это будет прямое переиспользование десктопного кода. На практике сценарии потребления на мобильных оказались сильно другими: другой UX, другой lifecycle, Doze и background-лимиты, OEM-специфика, ограниченный экран, другие ожидания от автозапуска и обновлений. В итоге пришлось переписать практически всё с нуля.</p><p>Результат этой работы — <strong>LxBox</strong>, и сегодня я хочу рассказать, чем он отличается от существующих Android-клиентов и как устроен изнутри.</p> <a href="https://habr.com/ru/articles/1027734/?utm_campaign=1027734&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Fri, 24 Apr 2026 21:44:44 GMT</pubDate>
      <dc:creator><![CDATA[developer]]></dc:creator>
      
      <category><![CDATA[sing-box]]></category><category><![CDATA[LxBox]]></category><category><![CDATA[Flutter]]></category><category><![CDATA[Android]]></category><category><![CDATA[Dart]]></category><category><![CDATA[WireGuard]]></category><category><![CDATA[маршрутизация трафика]]></category><category><![CDATA[open source]]></category><category><![CDATA[VLESS]]></category><category><![CDATA[spec-driven]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Мессенджер на Paginator. Боевые задачи]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1027686/</guid>
      <link>https://habr.com/ru/articles/1027686/?utm_campaign=1027686&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/a7d/759/9fe/a7d7599fed1323bf34eca3e90cca7525.png" /><p>В <a href="#" rel="noopener noreferrer nofollow">прошлой статье</a> я сравнивал Paginator с Paging 3 на кошачьем уровне: «вот простой фид, смотрите — три строки вместо тридцати». Это полезно для первого знакомства, но не отвечает на главный вопрос: <strong>а как оно себя поведёт, когда продукт начнёт требовать то, ради чего люди обычно и пишут свой велосипед поверх Paging 3?</strong></p><p>В этой статье я беру мессенджер — потому что мессенджер это честный полигон. Там есть:</p> <a href="https://habr.com/ru/articles/1027686/?utm_campaign=1027686&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Fri, 24 Apr 2026 17:27:28 GMT</pubDate>
      <dc:creator><![CDATA[Jamal_Aliev]]></dc:creator>
      
      <category><![CDATA[kmp]]></category><category><![CDATA[paging]]></category><category><![CDATA[paginator]]></category><category><![CDATA[paging3]]></category><category><![CDATA[mobile]]></category><category><![CDATA[multiplatform]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Вторая жизнь старого смартфона в качестве домашнего сервера]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1027584/</guid>
      <link>https://habr.com/ru/articles/1027584/?utm_campaign=1027584&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<p>С появлением нейросетей реализовывать идеи в разработке стало гораздо проще. Идеи практически любого масштаба, надо сказать. Хочу рассказать о довольно крупномасштабной.</p><p>Дисклеймер: этот пост —  про вайб-кодинг, поэтому в нём не будет приведено ни единой строки кода. Я просто показываю идею, не детали реализации. И немного мнения о вайбкодинге в целом — в конце публикации.</p> <a href="https://habr.com/ru/articles/1027584/?utm_campaign=1027584&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Fri, 24 Apr 2026 13:15:53 GMT</pubDate>
      <dc:creator><![CDATA[1024rk]]></dc:creator>
      
      <category><![CDATA[вайб-кодинг]]></category><category><![CDATA[голосовой ассистент]]></category><category><![CDATA[llm-приложения]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Ch4IR: мой 4х канальный видеорекордер на Android который не умеет делать запись]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1025844/</guid>
      <link>https://habr.com/ru/articles/1025844/?utm_campaign=1025844&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/529/4da/b13/5294dab130400eba585edab2af1a53f8.png" /><p>Да, в далёком 2018г. я целых 24 часа работал на какой то фабрике в Подмосковье. Делающей салаты и другие полуфабрикаты. В каком то отделе, то ли контроля, то ли безопасности. В общем надо было смотреть в камеры видео наблюдения. Ну и вроде всё, сутки через трое. Хотел уйти с 5/2 на 1/3. Но я не согласился, слишком тяжело, слишком. Через 6 лет после тех суток я начну изучать Java и пробовать писать приложения на андроид. Третьим моим пет приложением будет Ch4IR.</p><p>Написанный на библиотеке LibVLC и в память о несложивщейся карьере в сесурити.</p><p> Он был настоящим RTSP рекордером: отображал 4 потока, писал 4 потока на флешку или usb диск, нарезал куски видео по 60 минут и автоматически удалял записи старше указанной даты. Он умел воспроизводить записи и перематывать их. Но всё изменилось, перед самой публикацией.</p> <a href="https://habr.com/ru/articles/1025844/?utm_campaign=1025844&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Назад в 2025</a>]]></description>
      
      <pubDate>Fri, 24 Apr 2026 07:00:06 GMT</pubDate>
      <dc:creator><![CDATA[JDJ]]></dc:creator>
      
      <category><![CDATA[rtsp]]></category><category><![CDATA[m3u8]]></category><category><![CDATA[m3u]]></category><category><![CDATA[iptv]]></category><category><![CDATA[twitch]]></category><category><![CDATA[видеонаблюдение]]></category><category><![CDATA[dahua]]></category><category><![CDATA[rvi]]></category><category><![CDATA[android]]></category><category><![CDATA[вайб-кодинг]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Как мы считаем досрочное погашение кредита: что реально работает в коде]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1027196/</guid>
      <link>https://habr.com/ru/articles/1027196/?utm_campaign=1027196&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/49c/ccf/aa7/49cccfaa74eeaa3a7198f8842cd8594d.png" /><p>Когда я начал делать кредитный трекер, казалось, что финансовая математика — самая простая часть проекта. Формула аннуитета есть в любом учебнике, Excel справляется за пять минут.</p><p>Я ошибался.</p><p>Небольшой контекст: до этого я довольно долго не делал ничего для Android — работал в других областях, экосистема успела заметно измениться. Вернуться оказалось неожиданно приятно: Compose после нескольких лет XML-вёрстки ощущается как глоток свежего воздуха, KSP вместо KAPT работает заметно быстрее, а Room с Flow и корутинами — это уже совсем другой уровень удобства по сравнению с тем, что я помнил. Так что статья отчасти и про это: как выглядит возвращение в Android-разработку после перерыва.</p><p>Под катом — технический разбор того, как на самом деле устроен кредитный калькулятор внутри Android-приложения. С реальным кодом, реальными компромиссами и честным признанием того, что мы намеренно упростили.</p> <a href="https://habr.com/ru/articles/1027196/?utm_campaign=1027196&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Fri, 24 Apr 2026 06:30:55 GMT</pubDate>
      <dc:creator><![CDATA[isergeymd]]></dc:creator>
      
      <category><![CDATA[финтех]]></category><category><![CDATA[мобильная разработка]]></category><category><![CDATA[Android]]></category><category><![CDATA[личные финансы]]></category><category><![CDATA[Kotlin]]></category><category><![CDATA[Jetpack Compose]]></category><category><![CDATA[алгоритмы]]></category><category><![CDATA[опыт]]></category><category><![CDATA[personal finance]]></category><category><![CDATA[money management]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Paging 3 хорош. Пока вам не понадобится что-то ещё]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1027320/</guid>
      <link>https://habr.com/ru/articles/1027320/?utm_campaign=1027320&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/93f/04f/4fb/93f04f4fb58eff0615205566a048a5ac.png" /><p>Если коротко: пагинация — это когда вы не грузите 100 000 товаров из каталога одним запросом, а показываете их страницами по 20–50 штук и подгружаете следующую порцию, когда пользователь домотал до конца.</p><p>Звучит как задача на полдня. На практике — по-разному.</p><p>Я пишу мобильные приложения уже давно, и каждый раз, когда в новом проекте появлялась пагинация, рядом с ней через месяц-другой появлялся один и тот же набор багов и ad-hoc-решений. Флаги <code>isLoadingNextPage</code>, <code>isLoadingPrevious</code>, <code>isRefreshing</code>, <code>isEmpty</code>, <code>hasError</code>, <code>hasNextPage</code>. Попытки «просто заменить элемент без перезагрузки страницы». Восстановление позиции после убийства процесса. Прыжок на конкретную страницу по deeplink.</p><p>На Android есть Jetpack Paging 3, и его берут по умолчанию. Но как только вы выходите за рамки «загрузи следующие 20 элементов на скролле вниз» — начинается интересное. А если ваш проект — Kotlin Multiplatform, то Paging 3 вообще не ваш вариант: это Android-библиотека, она не едет на iOS.</p><p>Я расскажу про опенсорсную библиотеку <a href="https://github.com/jamal-wia/Paginator" rel="noopener noreferrer nofollow">Paginator</a>, которую делаю последние несколько лет. Она работает одинаково на Android, JVM и iOS из одного <code>commonMain</code>, закрывает сложные сценарии из коробки — и даже на самой обычной ленте настраивается короче, чем Paging 3. Это не поход против Paging 3 и не попытка что-то кому-то доказать. Это просто описание того, что есть другой инструмент, и он делает то же самое компактнее.</p> <a href="https://habr.com/ru/articles/1027320/?utm_campaign=1027320&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Fri, 24 Apr 2026 06:16:40 GMT</pubDate>
      <dc:creator><![CDATA[Jamal_Aliev]]></dc:creator>
      
      <category><![CDATA[paging]]></category><category><![CDATA[paging library]]></category><category><![CDATA[paging3]]></category><category><![CDATA[paginator]]></category><category><![CDATA[kmp]]></category><category><![CDATA[android]]></category><category><![CDATA[kotlin]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Android и AccessibilityService: защита чувствительных экранов от чтения интерфейса]]></title>
      <guid isPermaLink="true">https://habr.com/ru/companies/hex_team/articles/1025368/</guid>
      <link>https://habr.com/ru/companies/hex_team/articles/1025368/?utm_campaign=1025368&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/773/f76/1df/773f761df031b70f6a32613c61b337d9.png" /><p>Современные Android-приложения всё чаще работают с данными, утечка которых критична для пользователя: платёжной информацией, одноразовыми кодами, персональными сведениями и содержимым приватных экранов. При этом на практике защита таких интерфейсов нередко сводится только к запрету скриншотов или ограничению вывода изображения, хотя реальная проблема шире: злоумышленник может попытаться получить не снимок экрана, а его структурированное представление через механизмы специальных возможностей. В результате чувствительные данные становятся доступны для чтения, анализа и автоматизированного сопровождения действий пользователя. В статье рассматривается именно эта проблема и предлагается практический многослойный подход к защите чувствительных экранов в Android, который сочетает средства защищённого вывода, ограничение доступности данных в accessibility-дереве, очистку семантики интерфейса и дополнительные меры против побочных каналов утечки.</p> <a href="https://habr.com/ru/articles/1025368/?utm_campaign=1025368&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Wed, 22 Apr 2026 09:00:27 GMT</pubDate>
      <dc:creator><![CDATA[grigorevmp (HEX.TEAM)]]></dc:creator>
      
      <category><![CDATA[Android]]></category><category><![CDATA[accessibility service]]></category><category><![CDATA[rat]]></category><category><![CDATA[защита приложения на android]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Мониторинг LTE модемов: Huawei B535-232a]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1025734/</guid>
      <link>https://habr.com/ru/articles/1025734/?utm_campaign=1025734&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/f62/f57/c6d/f62f57c6d2b6a004bf5b052eef37cfc9.png" /><p>В предыдущей <a href="https://habr.com/ru/articles/1014040/" rel="noopener noreferrer nofollow">статье</a> я рассказывал о своём приложении позволяющем мониторить уровень сигнала и тип интернета в смартфонах и некоторых моделях роутеров, работающих c мобильным интернетом. В опросе к той статье со счётом (8 : 2) победило мнение описывать, с кодом на Java добавление новых роутеров в приложение. Не знаю из какого хаба были победители, но повод ещё раз попиарить приложение найден.</p><p>Как и планировал, приобрёл Huawei B535-232a. Подержанный,  с одной антеннкой, потёртый корпус, слегка глючный, но работающий. Вбиваем в адресную строку хуавеевские 192.168.8.1 и </p> <a href="https://habr.com/ru/articles/1025734/?utm_campaign=1025734&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Подключаемся</a>]]></description>
      
      <pubDate>Tue, 21 Apr 2026 08:52:40 GMT</pubDate>
      <dc:creator><![CDATA[JDJ]]></dc:creator>
      
      <category><![CDATA[android]]></category><category><![CDATA[lte]]></category><category><![CDATA[мобильный интернет]]></category><category><![CDATA[huawei]]></category><category><![CDATA[вайб-кодинг]]></category><category><![CDATA[реверс-инжиниринг]]></category><category><![CDATA[4g антенна]]></category><category><![CDATA[4g роутер]]></category><category><![CDATA[качество связи]]></category><category><![CDATA[безлимитные тарифы]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Echo Layer: как я пытался встроить приватность в обычную клавиатуру]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1025808/</guid>
      <link>https://habr.com/ru/articles/1025808/?utm_campaign=1025808&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/d23/3fc/86e/d233fc86e2e686978ed8efd503cfc7ea.png" /><p>Привет Хабр! Меня зовут Артур Валиев, и я разработчик небольшого мобильного приложения с&nbsp;названием «Echo Layer».</p><p>Меня давно не&nbsp;отпускала одна мысль: почти все разговоры о&nbsp;приватной переписке в&nbsp;какой‑то момент упираются не&nbsp;в&nbsp;шифрование, не&nbsp;в&nbsp;криптографию, не&nbsp;в&nbsp;архитектуру, а&nbsp;в&nbsp;банальную человеческую инерцию. Можно сколько угодно строить красивую систему, можно делать open source, end‑to‑end encryption, писать про&nbsp;zero knowledge и отсутствие серверных логов, но&nbsp;потом ты возвращаешься в&nbsp;реальную жизнь и видишь, что&nbsp;люди всё равно сидят там, где им удобно. В&nbsp;Telegram, в&nbsp;WhatsApp, в&nbsp;VK, сейчас уже и MAX, в&nbsp;корпоративных чатах, в&nbsp;почте, в&nbsp;комментариях, где угодно. И если для&nbsp;приватности нужно сначала всех пересадить в&nbsp;новое приложение, то задача почти обречена.</p><p>Именно в&nbsp;этот момент у&nbsp;меня и сместился фокус. Я перестал думать о&nbsp;мессенджере как&nbsp;о&nbsp;конечном продукте. Мне стало интереснее другое: а&nbsp;можно&nbsp;ли не&nbsp;строить новый канал связи, а&nbsp;встроить приватный слой поверх уже существующих каналов? Не&nbsp;просить человека менять привычки, не&nbsp;ломать его сценарий общения, не&nbsp;заставлять его уговаривать собеседника «перейти вот сюда», а&nbsp;аккуратно встать между пользователем и текстом. Потому что, если честно, в&nbsp;большинстве случаев мессенджер&nbsp;— это просто оболочка. Внутри всё равно есть текст, который пользователь написал, и текст, который приложение потом отправило. Значит, если контролировать текст до&nbsp;отправки, можно контролировать довольно много.</p><p>Так Echo Layer и появился. Не&nbsp;как «новый безопасный чат», а&nbsp;как&nbsp;попытка превратить сам ввод текста в&nbsp;место, где может жить приватность.</p> <a href="https://habr.com/ru/articles/1025808/?utm_campaign=1025808&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Mon, 20 Apr 2026 19:23:47 GMT</pubDate>
      <dc:creator><![CDATA[arturwise]]></dc:creator>
      
      <category><![CDATA[разработка приложений]]></category><category><![CDATA[java]]></category><category><![CDATA[криптография]]></category><category><![CDATA[мессенджеры]]></category><category><![CDATA[клавиатура]]></category><category><![CDATA[открытый исходный код]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Мобильная разработка за неделю #628 (13 — 19 апреля)]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1025256/</guid>
      <link>https://habr.com/ru/articles/1025256/?utm_campaign=1025256&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/f0a/b9e/5f4/f0ab9e5f40587b468c9b220e52878ac0.jpg" /><p>В этом выпуске сравнение быстродействия SwiftUI и UIKit, план изучения Android-разработки и Kotlin DSL для Android-шейдеров, прагматичный взгляд на архитектуру Flutter и пара детективов с поиском багов, как не надо делать скриншоты в App Store, диспетчеризация дома, поддержка Swift в разных IDE, тестирование взаимодействия нескольких устройств и многое другое. Заходите!</p> <a href="https://habr.com/ru/articles/1025256/?utm_campaign=1025256&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Sun, 19 Apr 2026 13:04:38 GMT</pubDate>
      <dc:creator><![CDATA[RoboForm]]></dc:creator>
      
      <category><![CDATA[разработка под android]]></category><category><![CDATA[разработка под ios]]></category><category><![CDATA[разработка мобильных приложений]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Мыслепреступление на Android: как скрыть Перехватчик трафика от Государственных приложений]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1024890/</guid>
      <link>https://habr.com/ru/articles/1024890/?utm_campaign=1024890&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/8f9/330/a1b/8f9330a1bf004ee2feb9ec6f1192b525.png" /><p>Государство усиливает заботу о гражданах: крупные сервисы и государственные приложения на Android всё активнее выявляют использование Перехватчиков трафика. Разбираемся, какими методами ведётся это наблюдение — и что Ненадёжные элементы противопоставляют Праведному взору Государства.  </p> <a href="https://habr.com/ru/articles/1024890/?utm_campaign=1024890&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Sat, 18 Apr 2026 01:12:25 GMT</pubDate>
      <dc:creator><![CDATA[66demon666]]></dc:creator>
      
      <category><![CDATA[root]]></category><category><![CDATA[android]]></category><category><![CDATA[vpn]]></category><category><![CDATA[xposed]]></category><category><![CDATA[privacy]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Получение текстового и машиночитаемого представления из Microsoft Launcher]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1024832/</guid>
      <link>https://habr.com/ru/articles/1024832/?utm_campaign=1024832&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/d78/0bf/931/d780bf931f0d1b84d16e2ee00afc2121.jpg" /><p>TL;DR Автору понадобилось экспортировать состояние домашнего экрана Microsoft Launcher. Для этого пришлось написать два скрипта и столкнуться с различными проблемами. Кому нужна сразу инструкция, <a href="#heading-1-5" rel="noopener noreferrer nofollow">тык сюда</a>.</p> <a href="https://habr.com/ru/articles/1024832/?utm_campaign=1024832&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Fri, 17 Apr 2026 17:40:55 GMT</pubDate>
      <dc:creator><![CDATA[Kenya-West]]></dc:creator>
      
      <category><![CDATA[microsoft]]></category><category><![CDATA[microsoft launcher]]></category><category><![CDATA[лаунчеры]]></category><category><![CDATA[android]]></category><category><![CDATA[бекапы]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Какую напоминалку выбрать на Android: честный разбор 10 приложений под разные сценарии]]></title>
      <guid isPermaLink="true">https://habr.com/ru/companies/leadertask/articles/1024736/</guid>
      <link>https://habr.com/ru/companies/leadertask/articles/1024736/?utm_campaign=1024736&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/66e/111/0e2/66e1110e21e7db4acbdddf80f1169c43.png" /><p>Привет, Хабр! С тобой снова на связи Майя с очередным обзором. Два месяца назад писала про напоминалки для iPhone. Теперь посмотрим, что есть для Android.&nbsp;</p><p>Рынок напоминалок для Android перенасыщен: от простых стикеров до полноценных таск-менеджеров с AI. Выбрать сложно, потому что маркетинговые описания одинаковые, а реальные различия — в деталях. Я собрала 10 приложений с разной философией и разложила их по сценариям использования, чтобы вы сразу нашли своё.  </p> <a href="https://habr.com/ru/articles/1024736/?utm_campaign=1024736&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Fri, 17 Apr 2026 14:24:01 GMT</pubDate>
      <dc:creator><![CDATA[maiya_dom (ЛидерТаск)]]></dc:creator>
      
      <category><![CDATA[напоминания в андроид]]></category><category><![CDATA[напоминалка для андроид]]></category><category><![CDATA[напоминание в телефоне андроид]]></category><category><![CDATA[лучшая напоминалка для андроид]]></category><category><![CDATA[скачать напоминалку на андроид]]></category><category><![CDATA[голосовое напоминание]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Как мы подружили QA и unit-тесты через Allure (и встроили их в регресс)]]></title>
      <guid isPermaLink="true">https://habr.com/ru/companies/banki/articles/1021854/</guid>
      <link>https://habr.com/ru/companies/banki/articles/1021854/?utm_campaign=1021854&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/f72/468/d17/f72468d17badc4ac7c47b47bff748735.png" /><p>Всем привет! Меня зовут Артем. Я Android QA Engineer в команде Банки.ру.</p><p>Было ли у вас такое, что unit-тесты в проекте есть, но на практике ими почти никто не пользуется? Разработчики их пишут, но для QA это “что-то где-то в коде”: нельзя нормально посмотреть результаты, оценить покрытие или использовать в регрессе.</p><p>В статье рассказал, как мы решили эту проблему: сделали unit-тесты видимыми через Allure, связали их с тест-кейсами и встроили в реальный процесс тестирования.</p> <a href="https://habr.com/ru/articles/1021854/?utm_campaign=1021854&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Wed, 15 Apr 2026 10:01:57 GMT</pubDate>
      <dc:creator><![CDATA[tineza (Банки.ру)]]></dc:creator>
      
      <category><![CDATA[unit-тесты Android]]></category><category><![CDATA[Allure TestOps]]></category><category><![CDATA[интеграция unit-тестов в регресс]]></category><category><![CDATA[аннотации Allure]]></category><category><![CDATA[тестовое покрытие Android]]></category><category><![CDATA[Bamboo CI unit-тесты]]></category><category><![CDATA[разметка unit-тестов]]></category><category><![CDATA[QA и разработка взаимодействие]]></category><category><![CDATA[автоматизация регресса Android]]></category><category><![CDATA[управление тест-кейсами]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Anubis: заморозка приложений по состоянию VPN]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1023352/</guid>
      <link>https://habr.com/ru/articles/1023352/?utm_campaign=1023352&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/14f/183/802/14f183802369b8f842fcb9e5ddf286fc.png" /><p>Приложения на вашем телефоне могут обнаружить VPN через SOCKS5 на localhost и слить IP-адрес сервера. Рабочий профиль (Island, Insular, Shelter) скрывает VPN от  ConnectivityManager, но не от tun0, маршрутов и локальных портов. Так родился open-souce Anubis, который решает проблему иначе - автоматически отключает приложения через pm disable-user при смене состояния VPN. Мёртвое приложение не может ничего детектить, потому что его не существует.</p> <a href="https://habr.com/ru/articles/1023352/?utm_campaign=1023352&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Под капот Anubis</a>]]></description>
      
      <pubDate>Tue, 14 Apr 2026 12:17:23 GMT</pubDate>
      <dc:creator><![CDATA[sogonov]]></dc:creator>
      
      <category><![CDATA[Android]]></category><category><![CDATA[VPN]]></category><category><![CDATA[Shizuku]]></category><category><![CDATA[pm disable-user]]></category><category><![CDATA[приватность]]></category><category><![CDATA[заморозка приложений]]></category><category><![CDATA[Kotlin]]></category><category><![CDATA[Jetpack Compose]]></category><category><![CDATA[reverse engineering]]></category><category><![CDATA[open source]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Превращаем Сlaude Code в дизайнера мирового уровня: генерация UI-компонентов, тем и аудит по гайдлайнам]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1023084/</guid>
      <link>https://habr.com/ru/articles/1023084/?utm_campaign=1023084&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<p>Скилл для Claude Code, который знает Material Design 3 лучше, чем вы: 30+ компонентов с Compose-маппингами, генерация тем из seed-цвета, адаптивная навигация и аудит готового приложения по 10 категориям — от цветовых токенов до accessibility. Compose-first, Flutter вторичный, веб в maintenance mode. 454 звезды за 4 дня.</p> <a href="https://habr.com/ru/articles/1023084/?utm_campaign=1023084&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Mon, 13 Apr 2026 22:06:54 GMT</pubDate>
      <dc:creator><![CDATA[nlaik]]></dc:creator>
      
      <category><![CDATA[material-design]]></category><category><![CDATA[android]]></category><category><![CDATA[jetpack-compose]]></category><category><![CDATA[claude-code]]></category><category><![CDATA[ui]]></category><category><![CDATA[дизайн]]></category><category><![CDATA[ai]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Новый народный мессенджер России ч.2. Ловите Ласточку]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1022914/</guid>
      <link>https://habr.com/ru/articles/1022914/?utm_campaign=1022914&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/50b/748/4b4/50b7484b480aa5e06c0a114238a28f73.png" /><p>Несколько недель назад я описал на Хабре идею «честного российского мессенджера» с открытым кодом и прозрачным compliance. <a href="https://habr.com/ru/articles/1016784/" rel="noopener noreferrer nofollow">Та статья была про «зачем»</a>. Эта — про «как получилось». Web-клиент и Android-приложение полностью переписаны и работают в production, серверная часть развёрнута и обслуживает реальные подключения. iOS пока не трогали. Ниже — разбор архитектуры, решения, которые мы приняли, грабли, на которые наступили, и открытый набор людей в проект.</p> <a href="https://habr.com/ru/articles/1022914/?utm_campaign=1022914&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Mon, 13 Apr 2026 13:12:41 GMT</pubDate>
      <dc:creator><![CDATA[ANTON62]]></dc:creator>
      
      <category><![CDATA[мессенджеры]]></category><category><![CDATA[ласточка]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Вынесение бизнес‑логики из BLoC в use‑cases: прагматичный взгляд на архитектуру Flutter]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1022838/</guid>
      <link>https://habr.com/ru/articles/1022838/?utm_campaign=1022838&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/7d8/ca5/2dd/7d8ca52ddcf0fd5f0f49c8d054a4b697.png" /><p>Начиная писать Flutter-приложение, для стейт-менеджмента часто хватает простого&nbsp;<code>setState</code>&nbsp;или простого решения, по типу BLoC/Cubit без излишеств. Но с течением жизни проекта ваши блоки могут начать превращаться в god objects. Внутри хендлеров могут находиться и запросы в сервисы, и валидация, и эмиттеры состояния, а для крупной страницы точно одним ивентом не обойдешься. В таких условиях разработка сильно затрудняется, становится сложно поддерживать и масштабировать проект, снижается тестируемость.</p><p>Это не субъективный опыт — строгая разделенная архитектура повышает гибкость, переиспользуемость и тестируемость кода. BLoC сам по себе — паттерн с отличной дисциплиной потока данных и строгим отделением бизнес‑логики от UI, но стоит немного расслабиться, и он разрастается до god объекта.</p><p>Цель этой статьи — продемонстрировать, как вынесение бизнес логики в use-cases может помочь вернуть контроль над ViewModel слоем. Это не попытка навязать единственный вариант реализации, а материал про технический компромисс, подтвержденный цифрами и опытом.</p> <a href="https://habr.com/ru/articles/1022838/?utm_campaign=1022838&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Mon, 13 Apr 2026 11:46:04 GMT</pubDate>
      <dc:creator><![CDATA[myadzuta]]></dc:creator>
      
      <category><![CDATA[flutter]]></category><category><![CDATA[dart]]></category><category><![CDATA[bloc]]></category><category><![CDATA[чистая архитектура]]></category><category><![CDATA[use cases]]></category><category><![CDATA[state management]]></category><category><![CDATA[архитектура]]></category><category><![CDATA[мобильная разработка]]></category><category><![CDATA[тестирование]]></category><category><![CDATA[dependency injection]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Маяк в пустыне: Kotlin DSL для Android-шейдеров]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1022546/</guid>
      <link>https://habr.com/ru/articles/1022546/?utm_campaign=1022546&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/c1d/c63/2ef/c1dc632ef842855ba7ddda531930e820.jpg" /><p>Когда я впервые всерьёз сел писать AGSL под Android, ощущение было очень странное. С одной стороны - современный графический конвейер,&nbsp;<code>RuntimeShader</code>,&nbsp;<code>RenderEffect</code>, красивые эффекты и весь этот техно-киберпанк. С другой - шейдерный код живёт внутри строковых литералов,&nbsp;<code>uniform</code>-ы приходится объявлять и привязывать вручную, а отладка периодически начинается с философского вопроса: «в какой именно строке я сейчас всё сломал?»</p><p>В какой-то момент я поймал очень «кин-дза-дзовское» настроение: вроде перед тобой космическая технология, а инструменты ощущаются так, будто тебе выдали гравицапу без инструкции и сказали: «ну ты это... лети». Можно, конечно. Но хочется, чтобы летели не только самые упорные.</p><p>Собственно, так и появился&nbsp;<strong>RedByteFX</strong>. Я сделал его не только ради собственного удобства. Мне хотелось решить ещё одну задачу: сделать AGSL более массовой и понятной технологией для Android-разработчиков. Потому что в нативном виде AGSL мощный, но психологически для многих выглядит как «не трогай, это на Новый год». А мне хотелось, чтобы к шейдерам можно было подойти без дрожи в коленях и без ощущения, что сейчас придётся разговаривать с господином ПЖ на древнем пацакском наречии.</p> <a href="https://habr.com/ru/articles/1022546/?utm_campaign=1022546&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Sun, 12 Apr 2026 14:31:17 GMT</pubDate>
      <dc:creator><![CDATA[red-byte]]></dc:creator>
      
      <category><![CDATA[android]]></category><category><![CDATA[kotlin]]></category><category><![CDATA[agsl]]></category><category><![CDATA[dsl]]></category><category><![CDATA[мобильная разработка]]></category><category><![CDATA[дизайн мобильных приложений]]></category><category><![CDATA[мобильные игры]]></category><category><![CDATA[шейдеры]]></category><category><![CDATA[opengl]]></category><category><![CDATA[мобильная графика]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Мобильная разработка за неделю #627 (6 — 12 апреля)]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1022510/</guid>
      <link>https://habr.com/ru/articles/1022510/?utm_campaign=1022510&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/96f/392/f8a/96f392f8a05655892e25efa1da5c0c2d.jpg" /><p>В новом дайджесте пружинная анимация и Kotlin без «воды, будущее Android-приложений с AppFunctions и путь к сингулярности, лампа с цифровым джинном, как Gemma 4 меняет правила игры, ошейники для коров, замена List, Remote Compose и многое другое. Заходите!</p> <a href="https://habr.com/ru/articles/1022510/?utm_campaign=1022510&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Sun, 12 Apr 2026 12:42:45 GMT</pubDate>
      <dc:creator><![CDATA[RoboForm]]></dc:creator>
      
      <category><![CDATA[разработка мобильных приложений]]></category><category><![CDATA[разработка под android]]></category><category><![CDATA[разработка под ios]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Отправим стукачей в ГУЛАГ]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1022390/</guid>
      <link>https://habr.com/ru/articles/1022390/?utm_campaign=1022390&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/06d/90f/725/06d90f725fd5160ab7dc57646544641d.png" /><p>Сегодня наше правительство издаёт циркуляры, по которым программы из жизненно важного для среднего гражданина списка должны стучать “куда надо” о том, что у гражданина есть VPN.</p><p>Всё это - произвол в чистой форме, а потому мы можем и должны этому сопротивляться.</p><p>Гражданское сопротивление, гражданское неповиновение - вот то, что мы противопоставим этому произволу.</p><p>Они хотят сделать стукачей из установленных на наших смартфонах программ?</p><p>Мы ответим им тем, что отправим стукачей в цифровой ГУЛАГ. Изолируем эти мерзкие сущности из нашего мира!</p><p>Данная статья - инструкция о том, как установить и настроить песочницу Insular/Island. О том, как выселить всех стукачей на отдельный остров и заставить их работать там в изоляции. Без права переписки.</p> <a href="https://habr.com/ru/articles/1022390/?utm_campaign=1022390&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Если претит стукачество - читаем дальше</a>]]></description>
      
      <pubDate>Sat, 11 Apr 2026 22:17:09 GMT</pubDate>
      <dc:creator><![CDATA[linux-over]]></dc:creator>
      
      <category><![CDATA[песочница]]></category><category><![CDATA[android]]></category><category><![CDATA[информационная безопасность]]></category><category><![CDATA[фашизм]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Room или SQLite? Как не писать SQL запросы вручную на Android]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1021890/</guid>
      <link>https://habr.com/ru/articles/1021890/?utm_campaign=1021890&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/97a/f40/6d4/97af406d4bd920d2b7f9a75fad066259.png" /><p>Каждое Android-приложение, которое хранит данные на устройстве, рано или поздно сталкивается с базой данных. Встроенная SQLite — надёжное решение, но работа с ней через SQLiteOpenHelper требует написания SQL-запросов вручную, преобразования курсоров в объекты и постоянного контроля за закрытием соединений. Это отнимает время и довольно часто вызывает ошибки.</p><p>Google предложил библиотеку Room, которая является оберткой над SQLite и реализует паттерн ORM (Object-Relational Mapping). В этой статье мы на конкретном примере сравним, как выглядят операции добавления и чтения данных на чистом SQLite и на Room. Вы увидите, почему Room избавляет от «шаблонного кода» и делает работу с БД простой и безопасной.</p> <a href="https://habr.com/ru/articles/1021890/?utm_campaign=1021890&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Fri, 10 Apr 2026 12:16:34 GMT</pubDate>
      <dc:creator><![CDATA[guseyn_vibee]]></dc:creator>
      
      <category><![CDATA[Room]]></category><category><![CDATA[SQLite]]></category><category><![CDATA[Android]]></category><category><![CDATA[базы данных]]></category><category><![CDATA[ORM]]></category><category><![CDATA[Kotlin]]></category><category><![CDATA[мобильная разработка]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Как сделать мобильное приложение удобным и уникальным: 8 шагов от идеи до тестирования]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1021856/</guid>
      <link>https://habr.com/ru/articles/1021856/?utm_campaign=1021856&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/f2c/f15/011/f2cf15011c6d19a50a2ff639aa86b1a2.png" /><p>Знакомо, правда? Мечтаешь создать невозможное: уникальное, новое, то, чего ещё нет на рынке. И при этом чтобы это было твоё «детище», твой продукт, которым ты будешь гордиться и который станет по-настоящему стоящим и полезным для мира. </p><p>Думаешь, анализируешь, ищешь вариант, генерируешь идеи… Но всё не то. И каждый раз сталкиваешься с тем, что это уже кто-то реализовал. Да ещё и так круто, что подступиться страшно.</p><p>В этой статье я расскажу о проектировании мобильного приложения "Balance" по методу колеса жизненного баланса — от выбора идеи до кликабельных прототипов и тестирования.</p><p>Изучая UI/UX-дизайн, маркетинг и рынок в целом, я пришла к главному выводу: уникальность заключается не в том, чтобы придумать то, чего никто никогда не делал, а в том, чтобы сделать так, как никто другой не делает: удобно, красиво, с душой. И для этого не нужна команда дизайнеров. Только вы, ваше желание и правильные шаги.</p> <a href="https://habr.com/ru/articles/1021856/?utm_campaign=1021856&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Fri, 10 Apr 2026 11:38:13 GMT</pubDate>
      <dc:creator><![CDATA[kate_vnutri]]></dc:creator>
      
      <category><![CDATA[мобильные приложения]]></category><category><![CDATA[дизайн интерфейсов]]></category><category><![CDATA[аналитика мобильных приложений]]></category><category><![CDATA[проектирование интерфейсов]]></category><category><![CDATA[целевая аудитория]]></category><category><![CDATA[тестирование]]></category><category><![CDATA[приложение за сутки]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Сегодня мы построим свою локальную модель на смартфоне. С блэкджеком и WebUI]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1021610/</guid>
      <link>https://habr.com/ru/articles/1021610/?utm_campaign=1021610&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/b11/faf/746/b11faf746f3f4e41dd496f80ccc4e164.png" /><p>Недавно Apple подтвердила стратегическое партнерство с Google для интеграции ИИ Gemini в свои устройства.&nbsp;  Сегодня мы их опередим и поднимем свою LLM в Android-смартфоне. С блэкджеком и WebUI.</p> <a href="https://habr.com/ru/articles/1021610/?utm_campaign=1021610&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Fri, 10 Apr 2026 03:56:28 GMT</pubDate>
      <dc:creator><![CDATA[BlackJackBander]]></dc:creator>
      
      <category><![CDATA[AI]]></category><category><![CDATA[termux]]></category><category><![CDATA[LLM]]></category><category><![CDATA[Ollama]]></category><category><![CDATA[android]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Proxyman Scripts: как превратить прокси в инструмент автоматизации тестирования]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1021390/</guid>
      <link>https://habr.com/ru/articles/1021390/?utm_campaign=1021390&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/f3d/4a4/dbe/f3d4a4dbe768e5d9b765f9f7cfc43520.jpg" /><p>Когда в проекте появляются сложные сценарии: нестабильный бэкенд, редкие ошибки, зависимость от внешних сервисов, классические инструменты тестирования могут тормозить. Любая правка требует участия сервера, а воспроизведение бага превращается в квест.</p><p>В этот момент прокси-инструменты вроде Proxyman начинают играть совсем другую роль. Это уже не просто «посмотреть запросы», а полноценный слой управления трафиком.</p><p>Меня зовут Станислав, я Test-инженер в KODE, в этой статье разберу, как использовать Proxyman Scripts не как вспомогательную фичу, а как инструмент автоматизации тестирования.</p> <a href="https://habr.com/ru/articles/1021390/?utm_campaign=1021390&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Thu, 09 Apr 2026 12:26:09 GMT</pubDate>
      <dc:creator><![CDATA[APPKODE]]></dc:creator>
      
      <category><![CDATA[proxyman]]></category><category><![CDATA[qa]]></category><category><![CDATA[тестирование]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Playwright + Appium + WebdriverIO: как эта связка усиливает тестирование гибридного Android-приложения]]></title>
      <guid isPermaLink="true">https://habr.com/ru/companies/fix_price/articles/1020244/</guid>
      <link>https://habr.com/ru/companies/fix_price/articles/1020244/?utm_campaign=1020244&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/5f9/206/217/5f920621791b8b50f1223be2828f2e4c.png" /><p>Привет, хабровчане! С вами снова Евгений Иванов, QA-lead в компании Fix Price. В этот раз поделюсь с Вами опытом внедрения автоматизации для гибридного мобильного приложения на Android.&nbsp;</p><p>У этого решения есть свои плюсы и минусы, и мы продолжаем работать над его развитием. Но уже сейчас понятно: оно приносит реальную пользу команде во время регрессионных и предрелизных прогонов. Расскажу подробнее, как мы собрали связку Playwright + Appium + WebdriverIO и что из этого вышло.</p> <a href="https://habr.com/ru/articles/1020244/?utm_campaign=1020244&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Tue, 07 Apr 2026 08:57:30 GMT</pubDate>
      <dc:creator><![CDATA[Evgen5578 (Fix Price)]]></dc:creator>
      
      <category><![CDATA[playwright]]></category><category><![CDATA[appium]]></category><category><![CDATA[WebdriverIO]]></category><category><![CDATA[тестирование]]></category><category><![CDATA[тестирование веб-приложений]]></category><category><![CDATA[Android]]></category><category><![CDATA[автотест]]></category><category><![CDATA[keycloak]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Разбираем Remote Compose: как Google предлагает строить BDUI]]></title>
      <guid isPermaLink="true">https://habr.com/ru/companies/alfa/articles/1018986/</guid>
      <link>https://habr.com/ru/companies/alfa/articles/1018986/?utm_campaign=1018986&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/9cd/a5a/44a/9cda5a44a2e273633dd241845b3c10b9.png" /><p>Технологии Backend-Driven UI уже давно используются во многих компаниях, включая Альфа-Банк. Существует множество реализаций этого подхода, и недавно Google представил собственное решение — <strong>Remote Compose</strong>.</p><p>Remote Compose выглядит очень перспективной технологией. Фреймворк активно развивается и поддерживается командой Google. Однако на момент написания статьи технология всё ещё находится в alpha-версии, поэтому использовать её на проде пока рано.&nbsp;</p><p>Но я изучил этот фреймворк и хочу поделиться своим опытом, а когда Remote Compose выйдет в бета-версию вы будете знать, как с ним работать</p><p>В статье разберём:</p><p><strong>•</strong>  &nbsp;общую концепцию Remote Compose,<br><strong>•</strong>  &nbsp;чем он отличается от классического BDUI,<br><strong>•</strong>  &nbsp;какие интересные технические решения используются внутри,<br><strong>•</strong>  &nbsp;несколько практических примеров использования.</p> <a href="https://habr.com/ru/articles/1018986/?utm_campaign=1018986&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Tue, 07 Apr 2026 08:06:58 GMT</pubDate>
      <dc:creator><![CDATA[danilkha (Альфа-Банк)]]></dc:creator>
      
      <category><![CDATA[android]]></category><category><![CDATA[compose]]></category><category><![CDATA[jetpack compose]]></category><category><![CDATA[bdui]]></category><category><![CDATA[sdui]]></category><category><![CDATA[google]]></category><category><![CDATA[backend-driven ui]]></category><category><![CDATA[remote compose]]></category><category><![CDATA[compose remote]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Из-за критической уязвимости VLESS клиентов скоро все ваши VPN будут заблокированы]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1020080/</guid>
      <link>https://habr.com/ru/articles/1020080/?utm_campaign=1020080&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/a87/7ea/622/a877ea6229547865764c450a590fc5d6.png" /><p>Вскоре после нахождения <a href="https://habr.com/ru/articles/1006666/" rel="noopener noreferrer nofollow">шпионского модуля в Max</a> я обнаружил критическую уязвимость во всех известных VLESS клиентах.</p><p>Эта уязвимость позволяет обходить per-app split tunneling и приватные пространства (Knox/Shelter/Island/etc) и гарантированно обнаруживать выходной ip прокси, который вы используете.</p><p>При этом один из клиентов уязвим настолько, что позволяет дампить ваши конфиги и, в худшем случае, расшифровать весь ваш трафик.</p><p>Я сообщил об этом разработчикам этих клиентов, но они это проигнорировали. На днях минцифры разослала методичку, из которой ясно что они либо знают, либо скоро узнаю об этой уязвимости.</p><p>Я решил, что ждать больше нельзя и нужно публиковать статью об этом чтобы у вас всех был хотя бы шанс. Но сейчас защиты от этого нет.</p> <a href="https://habr.com/ru/articles/1020080/?utm_campaign=1020080&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Tue, 07 Apr 2026 07:06:41 GMT</pubDate>
      <dc:creator><![CDATA[runetfreedom]]></dc:creator>
      
      <category><![CDATA[прокси]]></category><category><![CDATA[socks5]]></category><category><![CDATA[обход блокировок]]></category><category><![CDATA[xray]]></category><category><![CDATA[sing-box]]></category><category><![CDATA[слежка]]></category><category><![CDATA[spyware]]></category><category><![CDATA[роскомнадзор]]></category><category><![CDATA[тспу]]></category><category><![CDATA[vpn]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Room 3 — новый мажор «комнаты». И да, теперь с поддержкой wasmJs]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1019598/</guid>
      <link>https://habr.com/ru/articles/1019598/?utm_campaign=1019598&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/76e/6ca/56f/76e6ca56fed35c7e8655c0d92024b5e5.png" /><p>Привет! Давайте разберёмся, что там накатили в новом мажоре Room. На момент написания актуальная версия — 3.0.0-alpha02, а стабильный релиз обещают где-то к лету.</p><p>Если вдруг выпали из контекста: Room — это <strong>повсеместно используемая</strong> ORM-обёртка над SQLite ранее только для Android, с недавнего времени и для Kotlin Multiplatform.</p><p>И у неё вышел 3 мажор! Подробнее внутри.</p> <a href="https://habr.com/ru/articles/1019598/?utm_campaign=1019598&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Sun, 05 Apr 2026 20:07:59 GMT</pubDate>
      <dc:creator><![CDATA[akozlovskiy]]></dc:creator>
      
      <category><![CDATA[kmp]]></category><category><![CDATA[room]]></category><category><![CDATA[kotlin multiplatform]]></category><category><![CDATA[kotlin coroutines]]></category><category><![CDATA[android]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Мобильная разработка за неделю #626 (30 марта — 5 апреля)]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1019408/</guid>
      <link>https://habr.com/ru/articles/1019408/?utm_campaign=1019408&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/abb/741/045/abb7410458ec4588d362e2a87ca07256.jpg" /><p>В новом выпуске выпуск приложений в App Store без Mac и Android Service своей мечты, узкие места в производительности Android-приложений и как Swift работает с памятью, Android SDK на Swift, кризис в RuStore и путь к тёмной стороне, захват категории Cast to TV в Google Play, галлюцинации LLM и многое другое. Заходите!</p> <a href="https://habr.com/ru/articles/1019408/?utm_campaign=1019408&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Sun, 05 Apr 2026 07:49:42 GMT</pubDate>
      <dc:creator><![CDATA[RoboForm]]></dc:creator>
      
      <category><![CDATA[разработка под android]]></category><category><![CDATA[разработка под ios]]></category><category><![CDATA[разработка мобильных приложений]]></category>
    </item>
  

  

  

	
  

  

  

      

      

      

    
  </channel>
</rss>
