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

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

  <channel>
    <title><![CDATA[Все статьи подряд / React Native / Хабр]]></title>
    <link>https://habr.com/ru/hubs/react-native/articles/</link>
    <description><![CDATA[React Native – фреймворк для разработки нативных приложений]]></description>
    <language>ru</language>
    <managingEditor>editor@habr.com</managingEditor>
    <generator>habr.com</generator>
    <pubDate>Wed, 06 May 2026 00:35:01 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[Почему RBAC недостаточно: опыт построения тарифно-зависимой системы доступа в SaaS или о чём молчат в статьях компаний]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1028298/</guid>
      <link>https://habr.com/ru/articles/1028298/?utm_campaign=1028298&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<p>Тема разграничения доступности действий в рамках конкретного тенанта выходит далеко за рамки ERP домена и требует особо пристальной реализации. Это особенно применимо для коммерческих систем (коей и является <a href="https://github.com/Kroncl" rel="noopener noreferrer nofollow">Kroncl</a> - название системы), в которых классический RBAC требует определённых доработок, включающих адаптацию к упрощённой features-based access control (в народе - FBAC, является своего рода реализацией ABAC). Кроме того, технологические компании крайне редко (уникальные случаи всё же есть) посвящают публичные статьи внутреннему устройству своих систем тарификации, что крайне печально, ведь это буквально могли быть рассказы о том, как архитектурные решения напрямую влияют на маркетинг и как следствие доходность компании.</p><p>Как же строить системы определения доступа не вокруг конкретных действий, а экономической модели платформы? Как легко переусложнить то, что переусложнять априори не стоит? Где заканчивается гибкость и начинается ад поддержки?</p> <a href="https://habr.com/ru/articles/1028298/?utm_campaign=1028298&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Mon, 27 Apr 2026 01:02:24 GMT</pubDate>
      <dc:creator><![CDATA[mainbotan]]></dc:creator>
      
      <category><![CDATA[go]]></category><category><![CDATA[архитектура]]></category><category><![CDATA[rbac]]></category><category><![CDATA[abac]]></category><category><![CDATA[тарификация]]></category><category><![CDATA[php]]></category><category><![CDATA[доступы]]></category><category><![CDATA[saas]]></category><category><![CDATA[erp]]></category><category><![CDATA[crm]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Год с React Hook Form и Zod: меньше кода, но не без нюансов]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1025218/</guid>
      <link>https://habr.com/ru/articles/1025218/?utm_campaign=1025218&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/d62/038/bca/d62038bca318e650f8edc498416486de.jpg" /><p>Всем привет! Думаю, что не ошибусь если скажу, что почти каждому фронтендеру приходиться заниматься разработкой сложных форм. Те, кто уже имеют такой опыт знают, что работа с формами доставляет боль и страдания. Необходимо держать в голове все правила валидации и заполнения форм, связи между зависимыми полями, нужно как-то связывать данные формы с UI, при этом избегая лишних ререндеров.</p> <a href="https://habr.com/ru/articles/1025218/?utm_campaign=1025218&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Sun, 19 Apr 2026 11:15:39 GMT</pubDate>
      <dc:creator><![CDATA[alexkomarchev]]></dc:creator>
      
      <category><![CDATA[react]]></category><category><![CDATA[react.js]]></category><category><![CDATA[reactjs]]></category><category><![CDATA[reactive programming]]></category><category><![CDATA[typescript]]></category><category><![CDATA[javascript]]></category><category><![CDATA[frontend]]></category><category><![CDATA[front-end]]></category><category><![CDATA[front-end разработка]]></category><category><![CDATA[frontend-разработка]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Kafka. WebClient. Feign. WebSocket. Или как общаются микросервисы]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1022974/</guid>
      <link>https://habr.com/ru/articles/1022974/?utm_campaign=1022974&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/cfc/26f/883/cfc26f883c81f1aa5a6320b187dd29a6.png" /><p>Начнем с того, как микросервисы могут общаться? На самом деле все просто, сложные приложения могут состоять из нескольких разных микросервисов.</p><p>Каждый сервис будет иметь свою логику, свою ответственность. Сервисы одной системы могут быть написаны на разных языках программирования. Однако это не будет мешать им общаться. Так вот общение это буквально - обмен информацией. Обмен сообщениями определенного формата, который смогут понять все сервисы. Это похоже на общение между нами. Я говорю что-то собеседник слушает информацию, дальше обрабатывает ее неким образом своим мыслительным аппаратом и формирует ответное сообщение и проговаривает его вслух адресуя голос в направлении оппонента. Для отправки сообщения нам людям, нужно знать адресата или видеть его, для того, чтобы обратиться к нему.</p><p>Адресату, нужно слышать и в идеале уметь понимать на каком языке говорит другой человек. Если вы знаете несколько языков, то вы сможете принять сообщение на одном языке обработать его и перевести в своей голове и выдать перевод другому человеку. Все эти модели общения похожим образом перекладывают на взаимодействие между сервисами.</p> <a href="https://habr.com/ru/articles/1022974/?utm_campaign=1022974&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Mon, 13 Apr 2026 15:08:06 GMT</pubDate>
      <dc:creator><![CDATA[KarimAbushaev]]></dc:creator>
      
      <category><![CDATA[kafka]]></category><category><![CDATA[websocket]]></category><category><![CDATA[java]]></category><category><![CDATA[apache kafka]]></category><category><![CDATA[webclient]]></category><category><![CDATA[feignclient]]></category><category><![CDATA[feign]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Как я не создал Multiroom, а использовал существующий]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1022124/</guid>
      <link>https://habr.com/ru/articles/1022124/?utm_campaign=1022124&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/9a0/190/a7e/9a0190a7e8ae83850f8915c7e756f784.png" /><p>Сидел я значится между двумя ноутбуками, на&nbsp;одном из&nbsp;которых играла музыка. Динамики старые и стерео выдают в&nbsp;неприкрытом моно. Между звуками барабанов и синтезаторов в&nbsp;моей голове прозвучала мысль&nbsp;— «А давай‑ка одновременно включим музыку на&nbsp;двух ноутбуках, получу&nbsp;ли я музыкальное наслаждение?»&nbsp;— Получил это музыкальное наслаждение я аж целых три года назад, тогда&nbsp;же появилась идея оформить сеё чудо в&nbsp;виде приложения, которое&nbsp;бы захватывало системный звук устройства и раздавало&nbsp;бы его на&nbsp;динамики любых других устройств (Компьютеры, планшеты, телефоны…), включая устройство захвата.</p> <a href="https://habr.com/ru/articles/1022124/?utm_campaign=1022124&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Sat, 11 Apr 2026 04:16:08 GMT</pubDate>
      <dc:creator><![CDATA[LiuBimba]]></dc:creator>
      
      <category><![CDATA[мультирум]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Нормализация состояния в React через реестр сущностей: паттерн на Zustand с рекурсивным парсингом и мягкими удалениями]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1019110/</guid>
      <link>https://habr.com/ru/articles/1019110/?utm_campaign=1019110&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<p>В этой статье я разберу паттерн Entity Registry — плоский реестр сущностей на базе Zustand, который автоматически нормализует любые ответы API, хранит данные в едином словаре по ID и обеспечивает точечный ре-рендер только тех компонентов, чьи данные действительно изменились. Отдельно разберём трюк с enumerable: false для мягких удалений — пожалуй, самую изящную часть паттерна.</p> <a href="https://habr.com/ru/articles/1019110/?utm_campaign=1019110&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Thu, 09 Apr 2026 08:00:51 GMT</pubDate>
      <dc:creator><![CDATA[Finom]]></dc:creator>
      
      <category><![CDATA[React]]></category><category><![CDATA[Next.js]]></category><category><![CDATA[TypeScript]]></category><category><![CDATA[JavaScript]]></category><category><![CDATA[Vovk.ts]]></category><category><![CDATA[Zustand]]></category><category><![CDATA[Redux]]></category><category><![CDATA[нормализация]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Как я превратил Android-смартфоны в распределенную сеть мониторинга (и спас свои нервы)]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1013686/</guid>
      <link>https://habr.com/ru/articles/1013686/?utm_campaign=1013686&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/4cf/5da/c02/4cf5dac0244e3ac4ac03ba78c62e8bc2.jpeg" /><p>Меня зовут Виталий, я из команды ArcaneGaming. <br>Сегодня я хочу рассказать вам о своем пет-проекте, который немного вышел из-под контроля и превратился в полноценный продукт. <br>Встречайте - <strong><a href="https://snuffer.net/" rel="noopener noreferrer nofollow">Snuffer</a></strong>!</p><p><strong>😫 С чего всё началось?</strong><br> Знаете это чувство, когда вам пишет клиент (или, что еще хуже, мама):</p> <a href="https://habr.com/ru/articles/1013686/?utm_campaign=1013686&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Mon, 23 Mar 2026 11:12:34 GMT</pubDate>
      <dc:creator><![CDATA[ArcaneGamingcom]]></dc:creator>
      
      <category><![CDATA[вайб-кодинг]]></category><category><![CDATA[вайбкодинг]]></category><category><![CDATA[мониторинг сайта]]></category><category><![CDATA[мониторинг сервера]]></category><category><![CDATA[мониторинг логов]]></category><category><![CDATA[мониторинг сети]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Использование OPC UA на нативном приложении в технологии MFC MS Visual C++]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1013496/</guid>
      <link>https://habr.com/ru/articles/1013496/?utm_campaign=1013496&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/a91/59b/56f/a9159b56f06f24c974732d61f59f0855.png" /><p>Ключевые аспекты проектирования и реализации SCADA-систем в автоматизированных системах управления технологическими процессами (АСУТП). Основное внимание уделяется интеграции с базами данных, такими как&nbsp;<strong>SQL Server</strong>, и использованию протокола&nbsp;<strong>OPC UA</strong>&nbsp;для взаимодействия с контроллерами.</p><p>Рассматривается процесс подключения к контроллерам с использованием библиотеки&nbsp;<strong>open62541</strong>, включая настройку безопасности и создание подписок для мониторинга данных.</p> <a href="https://habr.com/ru/articles/1013496/?utm_campaign=1013496&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Mon, 23 Mar 2026 05:15:57 GMT</pubDate>
      <dc:creator><![CDATA[DADCorp]]></dc:creator>
      
      <category><![CDATA[opc ua]]></category><category><![CDATA[промышленная автоматизация]]></category><category><![CDATA[контроллеры]]></category><category><![CDATA[разработка приложений]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Как я запилил свой Scrum Poker, потому что все остальные — отстой]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1010790/</guid>
      <link>https://habr.com/ru/articles/1010790/?utm_campaign=1010790&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/6fe/867/88b/6fe86788b6e9e895a4b339837a789e1b.jpeg" /><p>Знаете это чувство, когда сидишь на очередном спринт-планировании, команда пытается оценить таски, а планинг покер тормозит так, что успеваешь кофе сварить, пока карточка загрузится?</p><p>Вот у меня в AGG TEAM такая же история была. Мы пробовали:</p> <a href="https://habr.com/ru/articles/1010790/?utm_campaign=1010790&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Mon, 16 Mar 2026 10:35:49 GMT</pubDate>
      <dc:creator><![CDATA[ArcaneGamingcom]]></dc:creator>
      
      <category><![CDATA[scrum]]></category><category><![CDATA[poker]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[5 библиотек, которые помогут улучшить UX в вашем React Native-приложении]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1009370/</guid>
      <link>https://habr.com/ru/articles/1009370/?utm_campaign=1009370&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/736/d55/a78/736d55a78da3903dbd5c8079a742c3ec.jpg" /><p>Даже если вы разрабатываете MVP в условиях жестких сроков, не стоит забывать: результатом нашей работы будет приложение, которым будут пользоваться реальные люди. Причем первыми пользователями вполне могут оказаться инвесторы, заказчики или стейкхолдеры, которые оценивают продукт на ранней стадии.</p><p>И будет здорово, если их первая реакция будет не «ну, работает», а «вау, это выглядит как полноценный продукт».</p><p>Почему разработчикам вообще стоит задумываться о пользовательском опыте? Кажется, что это зона ответственности product/project-менеджеров, UX-дизайнеров и аналитиков. Но на практике у разработчиков в мобильных проектах есть довольно большая свобода влиять на UX-детали.</p><p>Более того, многие мелкие улучшения интерфейса стоят буквально десятки строк кода и несколько минут времени, но при этом заметно повышают ощущение «живости» приложения.</p><p>Меня зовут Алексей Цуцоев, я Frontend TeamLead в KODE. В этой статье разберу несколько библиотек, которые позволяют быстро улучшить UX React Native-приложения без значительных затрат на разработку.</p> <a href="https://habr.com/ru/articles/1009370/?utm_campaign=1009370&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Thu, 12 Mar 2026 10:03:53 GMT</pubDate>
      <dc:creator><![CDATA[APPKODE]]></dc:creator>
      
      <category><![CDATA[мобильная разработка]]></category><category><![CDATA[адаптивная вёрстка]]></category><category><![CDATA[интерфейсы]]></category><category><![CDATA[фронтенд]]></category><category><![CDATA[библиотеки]]></category><category><![CDATA[ux]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Детекция рейсов карьерных самосвалов методом шаблонной векторизации: архитектура, алгоритмы и инженерный анализ]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1009248/</guid>
      <link>https://habr.com/ru/articles/1009248/?utm_campaign=1009248&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/a79/b09/ba6/a79b09ba65eada5e2fdbd120dcaac0cc.png" /><p>В горнодобывающей промышленности точный учёт рейсов карьерных самосвалов — ключевой фактор управления производительностью. Традиционные системы диспетчеризации (DISPATCH от Modular Mining, Wenco, российская «Карьер») опираются на GPS-зоны: система фиксирует въезд самосвала в зону экскаватора или пункта разгрузки и по факту пересечения геозон формирует рейс. Однако этот подход не улавливает аномалии внутри цикла — простои, заторы, сбои датчиков, затянувшиеся обеды — и не позволяет классифицировать тип рейса по его «форме».</p><p>Альтернативный подход реализован в системе <strong>«Симуляция и детекция рейсов»</strong> — серверно-клиентском приложении (Go + React + PostgreSQL), которое распознаёт рейсы в реальном времени путём <strong>шаблонной векторизации</strong> телеметрических данных скорости и веса. Вместо привязки к координатам система строит вектор из скользящего окна телеметрии и сравнивает его с заранее сохранёнными эталонными шаблонами через меру сходства (косинусное сходство или нормы L1/L2). Когда степень совпадения превышает порог — рейс считается обнаруженным.</p><p>Данная статья детально разбирает архитектуру, алгоритмическую основу и инженерные решения этого подхода, сопоставляя его с мировой практикой детекции рабочих циклов тяжёлой техники.</p> <a href="https://habr.com/ru/articles/1009248/?utm_campaign=1009248&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Thu, 12 Mar 2026 04:45:18 GMT</pubDate>
      <dc:creator><![CDATA[DmitryNBoyko]]></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[Как я начал создавать медицинские изделия, ч.4]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1008654/</guid>
      <link>https://habr.com/ru/articles/1008654/?utm_campaign=1008654&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/df7/520/14a/df752014a33a45403e46e96833e186bb.jpg" /><p>В этой статье я расскажу о том, на каком этапе сейчас находится разработка нашего устройства: о литье пластиковых деталей, создании приложения для iOS и Android, поездке аппарата в США и работе над новым прототипом.</p> <a href="https://habr.com/ru/articles/1008654/?utm_campaign=1008654&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Tue, 10 Mar 2026 13:44:58 GMT</pubDate>
      <dc:creator><![CDATA[RealZel]]></dc:creator>
      
      <category><![CDATA[здоровье]]></category><category><![CDATA[разработка]]></category><category><![CDATA[esp32]]></category><category><![CDATA[diy]]></category><category><![CDATA[дизайн]]></category><category><![CDATA[фотобиомодуляция]]></category><category><![CDATA[светолечение]]></category><category><![CDATA[медицина]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Как мы написали React Native библиотеку для Яндекс Карт за два дня с Claude]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1004576/</guid>
      <link>https://habr.com/ru/articles/1004576/?utm_campaign=1004576&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/85e/881/a36/85e881a367cac36077c5e6ddf074265e.png" /><p>Сначала коротко о том, зачем нам это было нужно.</p><p>Мы в основном пилим решения для фудтеха, а для мобилок используем React Native (почему, рассказывали<a href="https://habr.com/ru/articles/863388/" rel="noopener noreferrer nofollow"> тут</a>).&nbsp;</p><p>В одном из таких проектов (российская сеть ресторанов по франшизе) нам нужно было прикрутить Яндекс Карты. Изначально хотели взять либу<a href="https://github.com/volga-volga/react-native-yamap/" rel="noopener noreferrer nofollow"> react-native-yamap</a> (респект тем, кто ее делал) — но как выяснилось, она работает только на старой архитектуре RN.&nbsp;</p><p>После обновления до 0.76 версии, где Fabric стала использоваться по умолчанию, приложения на iOS начали падать: карта не рендерится, события не доходят до JS, приложение крашится при взаимодействии с картой и вот это вот всё. И судя по открытым тикетам, мы не одни, кто столкнулся с этой проблемой.&nbsp;</p><p>Полезли искать, написал ли кто-то уже библиотеку под новую архитектуру — но либо таких людей нет, либо ни с кем не делятся. Спойлер: мы пока тоже не будем, ещё обкатываем либу на своих проектах — но уже сейчас хотим рассказать, как собрали новый пакет с помощью Claude Code за два дня. </p> <a href="https://habr.com/ru/articles/1004576/?utm_campaign=1004576&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Fri, 27 Feb 2026 12:51:12 GMT</pubDate>
      <dc:creator><![CDATA[dev_family]]></dc:creator>
      
      <category><![CDATA[React Native]]></category><category><![CDATA[Яндекс Карты]]></category><category><![CDATA[Fabric]]></category><category><![CDATA[TurboModules]]></category><category><![CDATA[Codegen]]></category><category><![CDATA[Claude]]></category><category><![CDATA[iOS]]></category><category><![CDATA[Android]]></category><category><![CDATA[нативные модули]]></category><category><![CDATA[новая архитектура]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[B4 — обход DPI с веб-интерфейсом]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/982498/</guid>
      <link>https://habr.com/ru/articles/982498/?utm_campaign=982498&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/b80/b8c/03a/b80b8c03a257e2db3ab230ec24c76ceb.png" /><p>B4 - инструмент обхода DPI на Go с веб-интерфейсом.</p><p>Хотелось сделать инструмент, который можно поставить на роутер или любой другой linux-девайс, открыть в браузере и получить работающий результат без возни с десятками аргументов командной строки.</p> <a href="https://habr.com/ru/articles/982498/?utm_campaign=982498&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Tue, 24 Feb 2026 22:48:42 GMT</pubDate>
      <dc:creator><![CDATA[Jholinar]]></dc:creator>
      
      <category><![CDATA[go]]></category><category><![CDATA[dpi]]></category><category><![CDATA[dpi-системы]]></category><category><![CDATA[typescript]]></category><category><![CDATA[nfqueue]]></category><category><![CDATA[netfilter]]></category><category><![CDATA[b4]]></category>
    </item>
  

  

  

	
  

  

  

    

  

  

	
  

  
    <item>
      <title><![CDATA[[Перевод] Как мы улучшили время загрузки React Native приложения в 10 раз]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1002542/</guid>
      <link>https://habr.com/ru/articles/1002542/?utm_campaign=1002542&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/62d/313/c85/62d313c85bacdb01af91b52dad329692.png" /><p>Эта статья - перевод <strong><a href="https://x.com/Pumpfun/status/2024888623103955406" rel="noopener noreferrer nofollow">поста</a></strong> в блоге Alex, <a href="https://www.batoncorporation.com/" rel="noopener noreferrer nofollow">Baton Corporation</a> Team Lead, вышедшего 20 февраля 2026 г.</p><p>Я публикую этот перевод, потому что сам много экспериментировал с переносом на этап сборки применение Tailwind стилей, убрав их из runtime. Хоть мне и не удалось добиться таких впечатляющих результатов, как автору статьи, опыт был сугубо положительный, скорость загрузки и многие другие метрики, связанные с отзывчивостью интерфейса, ощутимо выросли.</p> <a href="https://habr.com/ru/articles/1002542/?utm_campaign=1002542&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Далее следует перевод</a>]]></description>
      
      <pubDate>Sun, 22 Feb 2026 18:57:43 GMT</pubDate>
      <dc:creator><![CDATA[globin_write]]></dc:creator>
      
      <category>react</category><category>react-native</category><category>tailwind</category><category>nativewind</category><category>оптимизация</category><category>оптимизация сайта</category><category>css</category>
    </item>
  

  

    
    <item>
      <title><![CDATA[Выбираем технологию для стилей  в React-Native]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/1001246/</guid>
      <link>https://habr.com/ru/articles/1001246/?utm_campaign=1001246&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/54a/fef/380/54afef3801d49ebbd5d432601163a7ca.jpg" /><p>Меня зовут Алексей Цуцоев, сейчас я Frontend TL в KODE. Эту статью я писал, когда только устроился в компанию и мне нужно было систематизировать навыки, передать свой опыт стажерам и просто высказать свои мысли относительно styled. Вижу, что до сих пор многие начинающие разработчики сталкиваются с такой же проблемой, как я в прошлом, поэтому статья вышла из нашей внутренней конфы в мир.&nbsp;</p><p>В этой статье расскажу, какие преимущества и недостатки у каждой из библиотек. Публикация будет полезная тем, кто хочет освежить свои знания в React-Native или только начал их изучение этого стека.</p> <a href="https://habr.com/ru/articles/1001246/?utm_campaign=1001246&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Thu, 19 Feb 2026 06:47:03 GMT</pubDate>
      <dc:creator><![CDATA[APPKODE]]></dc:creator>
      
      <category><![CDATA[styled-components]]></category><category><![CDATA[stylesheet]]></category><category><![CDATA[UniStyles]]></category><category><![CDATA[react-native]]></category><category><![CDATA[стилизация]]></category><category><![CDATA[библиотеки]]></category><category><![CDATA[мобильная разработка]]></category><category><![CDATA[веб-разработа]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Выставить приложение в плей маркет и быть заблокированным через месяц]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/993448/</guid>
      <link>https://habr.com/ru/articles/993448/?utm_campaign=993448&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/b8d/baf/bb5/b8dbafbb5e908227c4817d7731889595.png" /><p>Мы хотели запустить приложение в нише 18+ всего за неделю. Звучало как идеальный план, но на деле это вылилось в три года работы и вечный бан в Google Play. В статье я расскажу, как мы пытались обмануть систему, набивали шишки с React Native и в итоге заменили отдел маркетинга на скрипты в n8n. Это история о том, как потерять аккаунт разработчика, но все-таки построить прибыльный продукт</p> <a href="https://habr.com/ru/articles/993448/?utm_campaign=993448&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Fri, 06 Feb 2026 07:43:36 GMT</pubDate>
      <dc:creator><![CDATA[Ibragimlol]]></dc:creator>
      
      <category><![CDATA[react]]></category><category><![CDATA[expo]]></category><category><![CDATA[react native]]></category><category><![CDATA[мобильная разработка]]></category><category><![CDATA[приложения на ios]]></category><category><![CDATA[приложения на андройд]]></category><category><![CDATA[дизайн приложений]]></category><category><![CDATA[аналитика приложений]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[React Native. Часть 2: Bare Workflow, Expo, стили и платформенные особенности]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/990818/</guid>
      <link>https://habr.com/ru/articles/990818/?utm_campaign=990818&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<p><strong>В <a href="https://habr.com/ru/articles/989776/" rel="noopener noreferrer nofollow">первой части</a> мы разобрали эволюцию архитектуры React Native. Теперь перейдем к практическим вопросам: как организован процесс разработки и какие платформенные особенности встретятся в работе.</strong></p><p><strong>Процесс разработки</strong></p><p>Выбор между классическим подходом и Expo – одно из первых архитектурных решений в проекте. Разберем оба варианта.</p><p><strong>Bare React Native</strong></p><p>Процесс требует настройки окружения (Xcode для iOS, Android Studio для Android). В упрощенном виде процесс&nbsp;<u>запуска приложения для разработки</u>&nbsp;выглядит следующим образом:</p> <a href="https://habr.com/ru/articles/990818/?utm_campaign=990818&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Fri, 30 Jan 2026 05:00:41 GMT</pubDate>
      <dc:creator><![CDATA[true_engineering]]></dc:creator>
      
      <category><![CDATA[React Native]]></category><category><![CDATA[Expo]]></category><category><![CDATA[EAS]]></category><category><![CDATA[Стилизация]]></category><category><![CDATA[Мобильная разработка]]></category><category><![CDATA[Bare]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[React Native. Часть 1: архитектура, производительность и варианты использования]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/989776/</guid>
      <link>https://habr.com/ru/articles/989776/?utm_campaign=989776&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<p>React Native прошел путь от решения с фундаментальными архитектурными ограничениями до платформы с современным, производительным ядром. В этой статье мы разберем, как работала старая архитектура на основе&nbsp;<strong>Bridge</strong>, как ее заменили&nbsp;<strong>JSI, Fabric и Hermes</strong>, и в каких случаях React Native - оптимальный выбор для проекта.</p><p><strong>Старая архитектура с Bridge</strong></p><p>В основе этой архитектуры лежат асинхронный Bridge. Нативный код и JavaScript работали в отдельных потоках.&nbsp;Общение между ними происходило через Bridge, который передавал сообщения в формате JSON.</p> <a href="https://habr.com/ru/articles/989776/?utm_campaign=989776&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Wed, 28 Jan 2026 05:00:54 GMT</pubDate>
      <dc:creator><![CDATA[true_engineering]]></dc:creator>
      
      <category><![CDATA[React Native]]></category><category><![CDATA[Архитектура]]></category><category><![CDATA[JSI]]></category><category><![CDATA[Fabric]]></category><category><![CDATA[Мобильная разработка]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Создание приложения на React Native: часть первая]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/987592/</guid>
      <link>https://habr.com/ru/articles/987592/?utm_campaign=987592&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/8e4/34f/6d5/8e434f6d5e2624722e3c5826072125d4.png" /><p>В этой статье мы познакомимся и детально изучим процесс создания приложения на кроссплатформенном фреймворке React Native. Рассмотрим, какие библиотеки понадобятся для работы, как правильно настроить структуру приложения, собрать его и протестировать его на различных устройствах.</p> <a href="https://habr.com/ru/articles/987592/?utm_campaign=987592&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Приступим</a>]]></description>
      
      <pubDate>Fri, 23 Jan 2026 16:54:59 GMT</pubDate>
      <dc:creator><![CDATA[strok_ova]]></dc:creator>
      
      <category><![CDATA[react]]></category><category><![CDATA[typescript]]></category><category><![CDATA[javascript]]></category><category><![CDATA[mobile]]></category><category><![CDATA[приложение]]></category><category><![CDATA[кроссплатформенность]]></category><category><![CDATA[кроссплатформенная разработка]]></category><category><![CDATA[react native]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Округление и форматирование чисел в React: адаптивный подход]]></title>
      <guid isPermaLink="true">https://habr.com/ru/companies/gnivc/articles/985170/</guid>
      <link>https://habr.com/ru/companies/gnivc/articles/985170/?utm_campaign=985170&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/144/55c/656/14455c656942c2f0918553856b3babbf.png" /><p>Всем привет, на связи снова я — Дмитрий, React-разработчик. И сегодня хочу поднять тему, которая на первый взгляд кажется простой, но на практике может доставить немало сюрпризов - округление и форматирование чисел в интерфейсе.</p><p>Изначально может показаться, что здесь сложного практически ничего нет: есть toFixed() и toLocaleString(), но практика показывает, что реальные интерфейсы почти никогда в это не укладываются.</p><p>Почему? Потому что в разных диапазонах чисел пользователи ждут разного поведения.</p><p>Именно с этим сталкиваются разработчики при работе с таблицами, отчётами, финансовыми данными и аналитикой. </p><p>В этой статье я предложу функцию, которая решает определенные задачи округления и форматирования, и разберу, как она подбирает количество знаков после запятой в зависимости от величины числа</p><p>Ниже опишу требования к форматированию, которые легли в основу функции, и покажу, как они отражаются в коде и в интерфейсе.</p> <a href="https://habr.com/ru/articles/985170/?utm_campaign=985170&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Mon, 19 Jan 2026 13:02:57 GMT</pubDate>
      <dc:creator><![CDATA[4Nun4ku (АО «ГНИВЦ»)]]></dc:creator>
      
      <category><![CDATA[javascript]]></category><category><![CDATA[react]]></category><category><![CDATA[mathematics]]></category><category><![CDATA[frontend]]></category><category><![CDATA[rounding]]></category><category><![CDATA[formatting]]></category><category><![CDATA[numbers]]></category><category><![CDATA[math]]></category><category><![CDATA[working with numbers]]></category><category><![CDATA[case]]></category>
    </item>
  

  

  

	
  

  

  

    

  

  

	
  

  
    <item>
      <title><![CDATA[[Перевод] Убийцы иммутабельной производительности — Zustand/Redux в связке с React]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/984654/</guid>
      <link>https://habr.com/ru/articles/984654/?utm_campaign=984654&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/800/488/eda/800488eda125fdca0789dec8b7063402.webp" /><p>В этой статье мы разберем основные <strong>причины деградации производительности</strong> иммутабельных сторов в связке с React и рассмотрим подходы к написанию высоконагруженного кода, включая <strong>неочевидные и многим не знакомые</strong>.</p> <a href="https://habr.com/ru/articles/984654/?utm_campaign=984654&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Tue, 13 Jan 2026 08:00:46 GMT</pubDate>
      <dc:creator><![CDATA[gen1lee]]></dc:creator>
      
      <category>react</category><category>redux</category><category>zustand</category><category>оптимизация</category><category>производительность</category><category>иммутабельность</category><category>стор</category><category>immutable.js</category><category>typescript</category><category>функциональная парадигма</category>
    </item>
  

  

    
    <item>
      <title><![CDATA[Оптимизация и запуск нейронных сетей на React Native: кейс с травой]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/983598/</guid>
      <link>https://habr.com/ru/articles/983598/?utm_campaign=983598&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/b14/619/3e6/b146193e6750db2ba77b92621f00e0b2.gif" /><p>Во время длинных новогодних выходных я решил заняться новым пет-проектом. Хотелось попробовать что-то интересное, связанное с нейронными сетями, и мне показалась новой для меня идея сделать приложение для распознавания растений, определения вида, возраста и их болезней прямо на мобильном устройстве без сервера, а потом рекомендация того, как лечить, ухаживать и прочее.</p><p>В этой статье поговорим о том, что получилось: от выбора моделей до их оптимизации и интеграции в React Native, а также поделюсь своим открытым кодом запуска, обучения и экспортом моделей нейронных сетей в ONNX, и ссылками на датасеты и проекты с нейронными сетями для растений.</p> <a href="https://habr.com/ru/articles/983598/?utm_campaign=983598&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Thu, 08 Jan 2026 11:21:10 GMT</pubDate>
      <dc:creator><![CDATA[Wladradchenko]]></dc:creator>
      
      <category><![CDATA[ai]]></category><category><![CDATA[mobile development]]></category><category><![CDATA[plant]]></category><category><![CDATA[classification]]></category><category><![CDATA[растениеводство]]></category><category><![CDATA[open source]]></category><category><![CDATA[детекция болезней]]></category><category><![CDATA[мобильная разработка]]></category><category><![CDATA[нейронные сети]]></category><category><![CDATA[оптимизация]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Вайбкодерам и Веб-разработчикам на заметку! Список сайтов с готовыми React UI-Компонентами]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/983350/</guid>
      <link>https://habr.com/ru/articles/983350/?utm_campaign=983350&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<p>Во многих случаях при разработке веб-сервисов и сайтов возникает необходимость в поиске готовых UI-компонентов — как для вдохновения, так и для ускорения работы над интерфейсом. Подобные решения будут полезны всем, кто занимается веб-дизайном и веб-разработкой.</p><p>В статье представлена подборка ресурсов с качественными и интересными UI-компонентами. Список будет дополняться по мере появления действительно достойных сайтов и сервисов.</p><p>❕ - пометка нового контента в статье.<br>[Статья обновлена 7 марта 2026 года]</p> <a href="https://habr.com/ru/articles/983350/?utm_campaign=983350&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Wed, 07 Jan 2026 08:01:04 GMT</pubDate>
      <dc:creator><![CDATA[opensophy]]></dc:creator>
      
      <category><![CDATA[ui]]></category><category><![CDATA[uicollectionview]]></category><category><![CDATA[ui библиотека]]></category><category><![CDATA[open-source]]></category><category><![CDATA[react]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Ваш сайт вам больше не принадлежит: как CVE-2025-11953 отдает ключи хакерам]]></title>
      <guid isPermaLink="true">https://habr.com/ru/companies/selectel/articles/979572/</guid>
      <link>https://habr.com/ru/companies/selectel/articles/979572/?utm_campaign=979572&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/b29/f61/f08/b29f61f08c5e00b6f9b3e1206dc05aed.jpg" /><p>Итак, 5 ноября команда JFrog опубликовала предупреждение об уязвимости CVE-2025-11953 в инструментах командной строки проекта React Native Community CLI. React Native — это платформа которую используют тысячи разработчиков для создания мобильных приложений, которые мы видим в App Store или Google Play. А React Native Community CLI через командную строку предоставляет инструменты для разработки и сборки этих приложений, куда как раз и входил злополучный пакет.</p><p>На первый взгляд, это еще один CVE в длинном списке. Но проблема глубже: уязвимость в популярном пакете может затронуть сотни проектов одновременно и ударить не только по продакшену, но и по устройствам разработчиков и CI-пайплайнам.</p><p>В статье разберем, как библиотеки из удобных помощников превращаются в точку входа для злоумышленников, почему такие инциденты не решаются простым апдейтом и какие механики атак через зависимости встречаются чаще всего. В конце обсудим дилемму — стоит ли вообще полагаться на сторонние фреймворки или лучше писать нативно. Детали под катом.</p> <a href="https://habr.com/ru/articles/979572/?utm_campaign=979572&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Tue, 23 Dec 2025 08:00:33 GMT</pubDate>
      <dc:creator><![CDATA[techno_mot (Selectel)]]></dc:creator>
      
      <category><![CDATA[selectel]]></category><category><![CDATA[информационная безопасность]]></category><category><![CDATA[уязвимости]]></category><category><![CDATA[CVE]]></category><category><![CDATA[информационные технологии]]></category><category><![CDATA[фреймворки]]></category><category><![CDATA[атаки на библиотеки]]></category><category><![CDATA[атаки на инфраструктуру]]></category><category><![CDATA[React Native]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Как мы построили рекламную платформу с нуля]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/977384/</guid>
      <link>https://habr.com/ru/articles/977384/?utm_campaign=977384&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/47e/4ee/74b/47e4ee74b31ecf539059bd7a62606880.png" /><p>Каждая успешная рекламная кампания начинается с технологий, которые остаются за кадром. Но именно от них зависит, увидит ли целевой пользователь нужное объявление, сможет ли рекламодатель быстро настроить кампанию и получить точный отчет, и не сгорит ли его бюджет из-за мошенников или технических сбоев. Когда мы начинали проект AdWebs, нам нужно было создать платформу, которая справится с тремя ключевыми вызовами: высокая нагрузка, безопасность данных и безупречный пользовательский опыт. Вот как мы это сделали.  </p> <a href="https://habr.com/ru/articles/977384/?utm_campaign=977384&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Tue, 16 Dec 2025 15:15:07 GMT</pubDate>
      <dc:creator><![CDATA[mishaapimenovaa]]></dc:creator>
      
      <category><![CDATA[Backend]]></category><category><![CDATA[Frontend]]></category><category><![CDATA[ui ux]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Написать приложение без опыта. Часть 1. Вводная]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/973068/</guid>
      <link>https://habr.com/ru/articles/973068/?utm_campaign=973068&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/771/a57/f88/771a57f88e43c8cee0e2b905bad52ba2.png" /><p>Отпуск, целых две недели, без программирования.<br> К вечеру первого дня уже не знал чем себя занять. Работать мне запретили.. гады.<br> Как ещё может отдыхать программист? Делать новый pet-project.</p><p>Надеюсь на картинке не я...</p> <a href="https://habr.com/ru/articles/973068/?utm_campaign=973068&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Thu, 04 Dec 2025 13:30:48 GMT</pubDate>
      <dc:creator><![CDATA[Chipato]]></dc:creator>
      
      <category><![CDATA[flutter]]></category><category><![CDATA[react native]]></category><category><![CDATA[мобильная разработка]]></category><category><![CDATA[pet-project]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Делаем простой фитнес-трекер на React Native + Expo]]></title>
      <guid isPermaLink="true">https://habr.com/ru/companies/ultravds/articles/969764/</guid>
      <link>https://habr.com/ru/companies/ultravds/articles/969764/?utm_campaign=969764&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/044/6ba/3bc/0446ba3bc6ce26a52f371a2322d02ff9.png" /><p>Лето уже давно позади, зима на носу, а значит — самое время начинать подготовку к следующему лету. Для многих это означает одно: попытку выбраться из состояния «тюленя» хотя бы в состояние «тюленя, который слегка похудел». </p><p>Чтобы совместить полезное с полезным, заодно соберём небольшое приложение — простой трекер веса и тренировок — и посмотрим, как на практике работает мультиплатформенная разработка на React с Expo. Спойлер: почти то же самое, что и обычная разработка на React — и, похоже, именно она окончательно забивает гвоздь в гроб Dart/Flutter и прочих попыток конкурентов сделать вид, что React — это страшный сон, который можно забыть. </p> <a href="https://habr.com/ru/articles/969764/?utm_campaign=969764&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Tue, 25 Nov 2025 10:07:07 GMT</pubDate>
      <dc:creator><![CDATA[ultra_vds (UltraVDS)]]></dc:creator>
      
      <category><![CDATA[ultravds]]></category><category><![CDATA[react]]></category><category><![CDATA[expo]]></category><category><![CDATA[мобильная разработка]]></category><category><![CDATA[продуктивность]]></category><category><![CDATA[зож]]></category><category><![CDATA[asyncstorage]]></category><category><![CDATA[приложения]]></category><category><![CDATA[vps]]></category><category><![CDATA[javascript]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Подстраиваемся под новые требования Google: переходим на 16 KB memory page (гайд для разработчиков React Native)]]></title>
      <guid isPermaLink="true">https://habr.com/ru/companies/ncloudtech/articles/960520/</guid>
      <link>https://habr.com/ru/companies/ncloudtech/articles/960520/?utm_campaign=960520&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/44b/ba2/2f1/44bba22f16139a7e5f3e877c861d38ee.png" /><p>Ну как, вы уже обновили свои приложения для поддержки новых требований Google? Если нет, то эта статья будет вам особенно полезна =) Напомню, что с 1 ноября 2025 года приложения, таргетирующиеся Android 15 и выше, должны поддерживать <strong>16-килобайтные страницы памяти</strong>.</p><p>Как вы помните по предыдущим статьям, я работаю в МойОфис в команде разработки мобильной версии высоконагруженного корпоративного мессенджера <a href="https://myoffice.ru/ecosystem/chats-vks/">Squadus</a> (бэкенд на Node.js, NestJS и Meteor, а веб-интерфейс на React). Мы уже успешно перестроились на новые стандарты Google, и поэтому могу компетентно рассказать, что именно требуется, как адаптировать под это React Native-приложение и что делать, если используемая библиотека ещё не успела обновиться.</p> <a href="https://habr.com/ru/articles/960520/?utm_campaign=960520&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Thu, 30 Oct 2025 11:54:19 GMT</pubDate>
      <dc:creator><![CDATA[SalaarFiend (МойОфис)]]></dc:creator>
      
      <category><![CDATA[react native]]></category><category><![CDATA[mobile development]]></category><category><![CDATA[google]]></category><category><![CDATA[android]]></category><category><![CDATA[мобильная разработка]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[«Ох, зря я туда полез…»: история о том, как мы переезжали на React Native]]></title>
      <guid isPermaLink="true">https://habr.com/ru/companies/profi_ru/articles/954888/</guid>
      <link>https://habr.com/ru/companies/profi_ru/articles/954888/?utm_campaign=954888&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/0d8/4e3/87b/0d84e387b63ebad58a7df809991096df.jpg" /><p>Привет, Хабр! На связи снова Саша Мищенко, тимлид платформенной команды в Профи.ру. И сегодня я хочу поделиться нашей поучительной историей переезда с нативного кода на React Native.</p><p>Если кратко, то было интересно и иногда даже страшно...</p> <a href="https://habr.com/ru/articles/954888/?utm_campaign=954888&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Thu, 09 Oct 2025 09:02:22 GMT</pubDate>
      <dc:creator><![CDATA[Pumppeedd (Профи.ру)]]></dc:creator>
      
      <category><![CDATA[react native]]></category><category><![CDATA[разработка]]></category><category><![CDATA[мобильная разработка]]></category><category><![CDATA[typescript]]></category><category><![CDATA[миграция]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Внедрение пуш-уведомлений в React Native: от Firebase до кастомных модулей]]></title>
      <guid isPermaLink="true">https://habr.com/ru/companies/kuper/articles/952680/</guid>
      <link>https://habr.com/ru/companies/kuper/articles/952680/?utm_campaign=952680&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/4e5/70b/2f3/4e570b2f3a1fce4ffad675574a8c895f.png" /><p>Привет, Хабр! Меня зовут Георгий, и я тимлид команды платформы в компании Купер. Мы специализируемся на разработке IT-приложений для маркетинга и бизнеса, включая кроссплатформенные мобильные решения на базе React Native. В этой статье я хочу поделиться опытом работы с пуш-уведомлениями. Расскажу, с чего мы начинали, какие проблемы встретили и к чему пришли на текущий момент. Все примеры возьму из свежего проекта, исходники которого доступны на GitHub — ссылку оставлю в конце.</p> <a href="https://habr.com/ru/articles/952680/?utm_campaign=952680&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Fri, 03 Oct 2025 10:28:49 GMT</pubDate>
      <dc:creator><![CDATA[geomishin (Купер)]]></dc:creator>
      
      <category><![CDATA[react native]]></category><category><![CDATA[push-уведомления]]></category><category><![CDATA[мобильная разработка]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[MutationObserver + React: меняем ошибки UI Kit без патча библиотеки]]></title>
      <guid isPermaLink="true">https://habr.com/ru/companies/gnivc/articles/949862/</guid>
      <link>https://habr.com/ru/companies/gnivc/articles/949862/?utm_campaign=949862&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/fcb/7fe/2f0/fcb7fe2f00236b60d5e353234eaeba5e.png" /><p>Привет, на связи снова я – React-разработчик Дмитрий. Сегодня отвлечемся от теории и разберем конкретный случай и какое решение для него использовалось.<br> <br> При работе с готовыми UI-библиотеками часто возникает небольшая проблема —&nbsp; компонент хорош, но его поведение нельзя настроить под требования конкретного случая. Я столкнулся с этим на практике, когда в используемой версии UI Kit не было возможности кастомизировать тексты выводимых ошибок, а бизнес-требования четко задали формулировки.<br> <br> В моём случае это был компонент для загрузки файлов. Он работал исправно — позволял выбрать файл, проверял его размер и формат и при ошибках показывал сообщение. Проблема была только в тексте этих сообщений. Нужно было использовать просто другую формулировку текста ошибки.</p><p>Собственно, выглядит компонент загрузки файла вот так:</p> <a href="https://habr.com/ru/articles/949862/?utm_campaign=949862&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Thu, 25 Sep 2025 09:00:24 GMT</pubDate>
      <dc:creator><![CDATA[4Nun4ku (АО «ГНИВЦ»)]]></dc:creator>
      
      <category><![CDATA[mutationobserver]]></category><category><![CDATA[javascript]]></category><category><![CDATA[Reac]]></category><category><![CDATA[reactjs]]></category><category><![CDATA[react.js]]></category><category><![CDATA[ui kit]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Расширяемый CRUD: как строить кастомные интерфейсы на базе Admiral]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/942946/</guid>
      <link>https://habr.com/ru/articles/942946/?utm_campaign=942946&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<p>В последнее время к нам в студию часто поступают запросы на разработку систем бронирования с возможностью управлять записями и справочниками. Особенно это актуально для B2C-сервисов вроде студий красоты и клиник, где нужно быстро и недорого собрать админ-панель, которая сразу включится в работу, без остановки процессов и долгого онбординга.</p><p>Многие из существующих систем-агрегаторов работают по линейному принципу. Это значит, что один мастер может за 1 единицу времени оказывать одну конкретную услугу. Из-за чего возникает проблема с групповыми записями, где один и тот же специалист может гибко участвовать в разных частях процедуры.&nbsp;</p><p>В самих бронированиях также часто происходит изменения – отмены, переносы, замена одних услуг другими – которые часто влияют на график мастеров и требуют мгновенного обновления интерфейса.&nbsp;</p><p>Поэтому компании все чаще обращаются за кастомными решениями. Но у самих разработчиков могут возникнуть вопросы:&nbsp;</p> <a href="https://habr.com/ru/articles/942946/?utm_campaign=942946&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Tue, 02 Sep 2025 21:50:20 GMT</pubDate>
      <dc:creator><![CDATA[dev_family]]></dc:creator>
      
      <category><![CDATA[react native]]></category><category><![CDATA[crud]]></category><category><![CDATA[adminpanel]]></category><category><![CDATA[app development]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Как мы прикрутили real-time чат в админку на React без Jivo и LiveChat]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/938848/</guid>
      <link>https://habr.com/ru/articles/938848/?utm_campaign=938848&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<p>В разработке админок часто приходится делать одно и то же: формы, списки, фильтры, CRUD. Admiral решает эту проблему, предоставляя мощный фреймворк для React, с которым можно быстро собирать административные интерфейсы на готовых паттернах и с гибкой настройкой.</p><p>Недавно нам нужно было добавить чат в админку одного из проектов. Забавно, но решения вроде Jivo или LiveChat мы даже не рассматривали. Так были уверены, что сможем без проблем собрать кастомный чат прямо внутри Admiral.</p><p>Эксперимент завершился удачно и теперь мы хотим поделиться его результатами. В этой статье мы предлагаем вам готовый туториал по интеграции сложной функциональности на примере real-time чата.</p> <a href="https://habr.com/ru/articles/938848/?utm_campaign=938848&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Что было дальше?</a>]]></description>
      
      <pubDate>Tue, 19 Aug 2025 21:46:52 GMT</pubDate>
      <dc:creator><![CDATA[dev_family]]></dc:creator>
      
      <category><![CDATA[админка]]></category><category><![CDATA[реакт]]></category><category><![CDATA[websocket]]></category><category><![CDATA[crud]]></category><category><![CDATA[чат]]></category><category><![CDATA[академическая мобильность]]></category><category><![CDATA[open source]]></category><category><![CDATA[opensourse]]></category><category><![CDATA[admin panel]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[React Native + RxDB: как сделать Local-First приложение, которое не сдохнет без связи]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/935798/</guid>
      <link>https://habr.com/ru/articles/935798/?utm_campaign=935798&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<p>Представьте: вы создали приложение, которое работает ровно тогда, когда у пользователя есть интернет. Нет интернета? Поздравляю, у вас мёртвое приложение и куча недовольных пользователей. Ну или курьер, который стоит как дурак и не может выполнять свою работу, потому что приложение зависло. Бизнес стоит, а вы сидите и ждёте, что всё само решится (нет).</p><p>Если хотите перестать выглядеть полными профанами и дать юзерам что-то, что не падает при первом же обрыве связи — welcome to local-first apps. Здесь всё про то, чтобы сделать локальную базу, а синхронизация — это такая себе приятная бонусная функция, а не священный грааль.</p> <a href="https://habr.com/ru/articles/935798/?utm_campaign=935798&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">А что дальше?</a>]]></description>
      
      <pubDate>Sun, 10 Aug 2025 17:47:15 GMT</pubDate>
      <dc:creator><![CDATA[dev_family]]></dc:creator>
      
      <category><![CDATA[офлайн-режим]]></category><category><![CDATA[offline-first]]></category><category><![CDATA[sqlight]]></category><category><![CDATA[мобильные приложения]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Laravel + Admiral: как не тратить полжизни на авторизацию]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/935198/</guid>
      <link>https://habr.com/ru/articles/935198/?utm_campaign=935198&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<p>Если ты в 2025 году ты всё ещё руками собираешь авторизацию на Laravel для своей админки — у меня для тебя плохие новости. Ты либо получаешь удовольствие от страданий, либо просто не знаешь про <a href="https://github.com/dev-family/admiral." rel="noopener noreferrer nofollow">Admiral</a>. А хорошие новости заключается в том, что это open source фреймворк, который не позволяет не сойти с ума копипаста и рутинной хрени. Вместо этого он делает всё за тебя (что? да!). Ты просто поставишь, настроишь пару штук — и вуаля: авторизация, фронт, работающий бекенд.</p><p>В этом гайде я покажу, как без боли и слёз запустить связку Laravel + Admiral с полной авторизацией. Ни строчки лишнего кода, и ни минуты на сомнительные патчи.</p> <a href="https://habr.com/ru/articles/935198/?utm_campaign=935198&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Что там еще...</a>]]></description>
      
      <pubDate>Thu, 07 Aug 2025 21:33:11 GMT</pubDate>
      <dc:creator><![CDATA[dev_family]]></dc:creator>
      
      <category><![CDATA[laravel]]></category><category><![CDATA[php]]></category><category><![CDATA[adminpanel]]></category><category><![CDATA[opensource]]></category><category><![CDATA[opensource projects]]></category><category><![CDATA[sanctum]]></category><category><![CDATA[api]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Принцип единой ответственности SOLID в React]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/934928/</guid>
      <link>https://habr.com/ru/articles/934928/?utm_campaign=934928&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/676/ff1/cb5/676ff1cb51cfb19e062af0d797e23037.png" /><p>Всем привет! Меня зовут<strong> Дмитрий</strong>, и я руководитель фронтенд-разработки в компании Интелси.</p><p>Сегодня хочу рассказать о принципе единственной ответственности (Single Responsibility Principle) — первом из пяти принципов SOLID, сформулированных Робертом Мартином в его книге <em>"Agile Software Development: Principles, Patterns, and Practices"</em>. Суть этого принципа звучит так: <em>«Класс должен иметь только одну причину для изменения»</em> (<em>A class should have only one reason to change</em>).</p> <a href="https://habr.com/ru/articles/934928/?utm_campaign=934928&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Thu, 07 Aug 2025 09:15:25 GMT</pubDate>
      <dc:creator><![CDATA[fogonthestreet]]></dc:creator>
      
      <category><![CDATA[react]]></category><category><![CDATA[react.js]]></category><category><![CDATA[design patterns]]></category><category><![CDATA[solid]]></category><category><![CDATA[typescript]]></category><category><![CDATA[javascript]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Как мы в Купере переписали CodePush для React Native. Быстрее, легче, удобнее]]></title>
      <guid isPermaLink="true">https://habr.com/ru/companies/kuper/articles/932132/</guid>
      <link>https://habr.com/ru/companies/kuper/articles/932132/?utm_campaign=932132&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/990/7e5/23d/9907e523d0955a38b44002e6001383d4.png" /><p>Как мы в Купере переписали CodePush для React Native. Быстрее, легче, удобнее</p><p>Всем привет! Меня зовут Евгений Прокопьев, я разработчик на React Native с 9-летним стажем. В этой статье расскажу, как мы в Купере написали собственный CodePush, который совсем не похож на продукт Microsoft.</p> <a href="https://habr.com/ru/articles/932132/?utm_campaign=932132&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Thu, 31 Jul 2025 09:18:53 GMT</pubDate>
      <dc:creator><![CDATA[Evgen175 (Купер)]]></dc:creator>
      
      <category><![CDATA[react native]]></category><category><![CDATA[code push]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Как мы переписали мобильное приложение с React Native на Flutter]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/929058/</guid>
      <link>https://habr.com/ru/articles/929058/?utm_campaign=929058&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/5eb/f14/560/5ebf14560e25678bafc31dd868e6546b.png" /><p><strong>React Native не справился. Flutter — как глоток свежего воздуха.</strong></p><p>Рассказываем, как наша команда переписала большое приложение (60+ экранов, оффлайн режим, карта, камера) на Flutter, с чем пришлось повозиться и почему теперь не жалеем.</p> <a href="https://habr.com/ru/articles/929058/?utm_campaign=929058&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Fri, 18 Jul 2025 17:12:51 GMT</pubDate>
      <dc:creator><![CDATA[raxenov1]]></dc:creator>
      
      <category><![CDATA[flutter]]></category><category><![CDATA[кроссплатформенность]]></category><category><![CDATA[react native]]></category><category><![CDATA[миграция приложений]]></category><category><![CDATA[производительность]]></category><category><![CDATA[android]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[AIDL в React Native в 2025 году]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/921162/</guid>
      <link>https://habr.com/ru/articles/921162/?utm_campaign=921162&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/5ea/f8b/a15/5eaf8ba15c45a5514b0f9fb69aaf50bb.jpg" /><p>Всех приветствую. Сегодня хочу с вами поделиться и разобрать малоизвестную, но очень сильную технологию взаимодействия двух приложений на одном устройстве.</p><p>Представьте, что в Вашем Android-приложении, нужно взаимодействовать с другим приложением на том же устройстве — например, приложение для видеоконференций, умный дом, видеоплеер, пульт управления и прочие приложения. Тут уже зависит от Вашей смекалки. Вы хотите, чтобы эти приложения общались плавно, безопасно и эффективно. Что приходит первое в голову? Скорее всего ответ будет броадкаст или контент провайдер. Но что если нужно обрабатывать информацию в реальном времени и отвечать тут и сейчас, или к примеру нужно общаться между двумя приложениями?</p> <a href="https://habr.com/ru/articles/921162/?utm_campaign=921162&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Читать далее</a>]]></description>
      
      <pubDate>Mon, 23 Jun 2025 19:11:17 GMT</pubDate>
      <dc:creator><![CDATA[ser1888]]></dc:creator>
      
      <category><![CDATA[AIDL]]></category><category><![CDATA[React Native]]></category>
    </item>
  

  

  

	
  

  

  

    
    <item>
      <title><![CDATA[Что не так с коробочными админками, и почему стоит протестировать нашу]]></title>
      <guid isPermaLink="true">https://habr.com/ru/articles/918940/</guid>
      <link>https://habr.com/ru/articles/918940/?utm_campaign=918940&amp;utm_source=habrahabr&amp;utm_medium=rss</link>
      <description><![CDATA[<img src="https://habrastorage.org/getpro/habr/upload_files/05b/4f0/95f/05b4f095f9eb3af7ff5ea598919569ad.jpg" /><p>В 2022-м мы окончательно задолбались.</p><p>Каждый новый проект все по кругу: таблички, формы, фильтры, CRUD. Всё снова, как в Groundhog Day. Копипастить старое было больно, собирать с нуля – ещё хуже. И главное, ощущение абсурда: 2022 год, а мы продолжаем лепить админки вручную, будто на дворе 2015.</p><p>Окей, логичный шаг – найти готовое решение.</p><p><strong>Мы правда пытались не изобретать велосипед</strong></p><p>Первым делом пошли смотреть на CMS. Попробовали Strapi – мощный зверь, но если вам просто нужно бэку выдать пару CRUD’ов, то тянуть за собой целую экосистему с философией и особым образом жизни, это как стрелять из базуки по воробьям.</p><p>Дальше, дизайн-системы вроде Salesforce Lightning, Fluent UI и Fusion Design. Компоненты красивые, но по факту это просто UI-кирпичики. Всю бизнес-логику, связи между сущностями, обработку данных всё равно пишешь сам. Хотели сэкономить время, а получили “ты теперь ещё и архитектурой займись”.</p><p>React-Admin показался перспективным. Но мы быстро поняли, что он хочет, чтобы ты делал вещи его способом. А мы хотели делать их по-своему. Онбординг тяжёлый, кастомизация сложная, UI на любителя. Как часто бывает: сначала кажется, что ты взял инструмент, а потом он берёт тебя.</p><p><strong>Мы поняли: компромиссы – это медленно</strong></p> <a href="https://habr.com/ru/articles/918940/?utm_campaign=918940&amp;utm_source=habrahabr&amp;utm_medium=rss#habracut">Что было дальше?</a>]]></description>
      
      <pubDate>Mon, 16 Jun 2025 17:31:56 GMT</pubDate>
      <dc:creator><![CDATA[dev_family]]></dc:creator>
      
      <category><![CDATA[react]]></category><category><![CDATA[typescript]]></category><category><![CDATA[adminpanel]]></category><category><![CDATA[frontend-разработка]]></category><category><![CDATA[crud]]></category><category><![CDATA[opensource]]></category><category><![CDATA[restapi]]></category>
    </item>
  

  

  

	
  

  

  

      

      

      

    
  </channel>
</rss>
