ч.14 MobDev (2026) Expo Push API, Polling, WebSocket / SSE: Статус обновляется сразу.
Разрабатываю мобильное приложение React Native + Expo Go с AI-агентами Claude Code: тестирую пин-код (2–6 цифр) и паник-пин, добавляю иконки во все 4 вкладки навигации, исправляю баг авторефреша — Contact Screen не обновлял данные при переключении табов. Expo Push API в Expo Go не доставляет уведомления — решаю Polling-ом вместо WebSocket/SSE. Поднимаю footer над Android navbar. Реализую target blank для email-ссылок. ВайбКодинг, два AI-агента параллельно (2026). ЧТО ВЫ УЗНАЕТЕ: → Как настроить пин-код (2–6 цифр) и паник-пин с тихой тревогой в React Native + Expo Go → Почему Expo Push API не доставляет уведомления и как решить через Polling вместо WebSocket/SSE → Как исправить баг: Contact Screen не обновлял статус контакта при переключении табов → Как добавить иконки в нижнюю навигацию (4 вкладки) в едином стиле через Claude Code → Как поднять footer над Android navbar и реализовать target blank для email-ссылок 📌 ВСТУПЛЕНИЕ 0:00:00 — Канал смотрят на 10+ языках с субтитрами. Два QR-кода: первый — плейлист мобильной разработки с самого начала, второй — русскоязычное сообщество веб-кодеров. 0:01:27 — Продолжаю мобильную разработку несмотря на меньшие просмотры. Девиз — «Финансовая независимость»: полный цикл от идеи до публикации в Apple Store и Google Play. 🔐 ПИН-КОД И ПАНИК-ПИН 0:02:40 — Работаем с реальным устройством, зеркалящимся на компьютер. Открываю Expo Go — диапазон пин-кода «4–6 цифр», меняю на «2–6». Агент меняет одну цифру и коммитит. 0:05:19 — Тестирую: буквы не вводятся — хорошо. Устанавливаю обычный пин = «1», паник-пин = «22». Вижу визуализацию ввода, нравится. Сохраняю. 0:06:20 — Читаю описание паник-пина: если тебя заставили войти, контакты получат тревогу с файлами, внешне выглядит как обычный вход. 0:07:01 — Статус настройки: 4 файла, контакт один, оба пин-кода установлены, GPS включён, подтверждённых контактов — ноль. ⚙️ ТЕСТЫ, ИКОНКИ И ОТЛАДКА 0:07:42 — Прошу серверного проверить логику: статус ответа контакта не прилетает в телефон. Прошу написать тесты. 0:11:27 — Серверный: фронтенд не доделал. Даю задачу: добавить иконки во все вкладки и расположение шестерёнки настроек. 0:14:30 — Дашборд показывает ложноположительный: «система готова к работе», хотя контакт ещё не подтверждён. 0:15:42 — Иконка «Главного» — щит, не нравится. Прошу заменить на домик, единый стиль для всех. 0:16:24 — Агент предлагает 2 варианта. Выбираю Вариант А — четвёртая вкладка «Настройки». Результат: домик, файлы, контакты, настройки — нравится, адаптивно. 0:18:29 — Диктую агенту: главная говорит «система готова», контакты — «ждём ответа». Противоречие. Прошу разобраться. 0:19:52 — Тестирую вход через пин-код: идут проверки разрешений, затем «Система готова к работе». Нравится. 0:21:37 — Проверяю настройки: email виден, смена пин-кода работает. Прошу изменить иконку паники: восклицательный знак в треугольнике вместо кружочка. 0:22:58 — Агент: экран реагирует на каждый фокус — mount, переключение табов, возврат. Добавлен pending-сценарий. Проверяю — подтягивается корректно. 🔄 АВТОРЕФРЕШ: ДИАГНОЗ И РЕШЕНИЕ 0:25:37 — Отправляю запрос подтверждения, переключаюсь — статус не обновляется. Загружаю задачу фронтенд-агенту с acceptance criteria и кодом-снипетом. 0:27:47 — Фронтенд запрашивает доступ к гиту — принимаю. Тестирую: статус «отказался» подтянулся. Тестирую «согласен» — жёлтая индикация, агент ещё кодит. 0:31:05 — Закрываю приложение физически и переоткрываю, тестирую ещё раз. Показываю агенту уведомление про expiration — прошу объяснить. 0:36:10 — Агент: не баг сервера, а отсутствующий авторефреш на Contact Screen. Expo Push API в Expo Go не доставляет — ограничение платформы. Решение: Polling вместо WebSocket/SSE. Contact Screen грузил при первом mount — добавлен рефреш при каждом переключении таба. TS-проверка прошла. 0:39:21 — Проверяю: при каждом переключении таба идёт запрос к серверу — работает. 📱 ФИНАЛЬНЫЕ ПРАВКИ 0:40:52 — Footer налазит на панель Андроида. Прошу поднять footer и кнопки меню на 5 пикселей вверх — нужен зазор. 0:44:34 — Прошу target blank: временный email закрывался через 10 секунд. Тестирую — нажимаю «согласен», переключаю вкладки — контакт подтверждён, статус подтянулся на главную. 0:47:28 — Думаю, поймал баг. Прослеживаю цепочку — оказывается, не баг, закралась единичка от другого контакта. Ссылка «отказаться» открывается в новой вкладке — target blank работает. 0:49:49 — Итог: добавлены настройки в footer'е, footer отодвинут от панели Андроида, реализован авторефреш статуса при переключении вкладок. На реальном устройстве — push автоматически. 📺 Плейлист «Создание мобильного приложения»: https://www.youtube.com/playlist?list=PL6D9b9lf9gb1Pq4nr381LFAWIVS98601V ◀ ч.13 MobDev (редизайн главной, паник-пин): https://youtu.be/o3r-IfnY80c ◀ ч.12 MobDev (экстренные контакты, тревога): https://youtu.be/bujSHzNxuuY #БудниВайбКодБлогераUSA #ReactNative #ExpoGo #ВайбКодинг #ClaudeCode #МобильноеПриложение #ExpoПуш #МобильнаяРазработка #ПинКод #ПаникПин
Разрабатываю мобильное приложение React Native + Expo Go с AI-агентами Claude Code: тестирую пин-код (2–6 цифр) и паник-пин, добавляю иконки во все 4 вкладки навигации, исправляю баг авторефреша — Contact Screen не обновлял данные при переключении табов. Expo Push API в Expo Go не доставляет уведомления — решаю Polling-ом вместо WebSocket/SSE. Поднимаю footer над Android navbar. Реализую target blank для email-ссылок. ВайбКодинг, два AI-агента параллельно (2026). ЧТО ВЫ УЗНАЕТЕ: → Как настроить пин-код (2–6 цифр) и паник-пин с тихой тревогой в React Native + Expo Go → Почему Expo Push API не доставляет уведомления и как решить через Polling вместо WebSocket/SSE → Как исправить баг: Contact Screen не обновлял статус контакта при переключении табов → Как добавить иконки в нижнюю навигацию (4 вкладки) в едином стиле через Claude Code → Как поднять footer над Android navbar и реализовать target blank для email-ссылок 📌 ВСТУПЛЕНИЕ 0:00:00 — Канал смотрят на 10+ языках с субтитрами. Два QR-кода: первый — плейлист мобильной разработки с самого начала, второй — русскоязычное сообщество веб-кодеров. 0:01:27 — Продолжаю мобильную разработку несмотря на меньшие просмотры. Девиз — «Финансовая независимость»: полный цикл от идеи до публикации в Apple Store и Google Play. 🔐 ПИН-КОД И ПАНИК-ПИН 0:02:40 — Работаем с реальным устройством, зеркалящимся на компьютер. Открываю Expo Go — диапазон пин-кода «4–6 цифр», меняю на «2–6». Агент меняет одну цифру и коммитит. 0:05:19 — Тестирую: буквы не вводятся — хорошо. Устанавливаю обычный пин = «1», паник-пин = «22». Вижу визуализацию ввода, нравится. Сохраняю. 0:06:20 — Читаю описание паник-пина: если тебя заставили войти, контакты получат тревогу с файлами, внешне выглядит как обычный вход. 0:07:01 — Статус настройки: 4 файла, контакт один, оба пин-кода установлены, GPS включён, подтверждённых контактов — ноль. ⚙️ ТЕСТЫ, ИКОНКИ И ОТЛАДКА 0:07:42 — Прошу серверного проверить логику: статус ответа контакта не прилетает в телефон. Прошу написать тесты. 0:11:27 — Серверный: фронтенд не доделал. Даю задачу: добавить иконки во все вкладки и расположение шестерёнки настроек. 0:14:30 — Дашборд показывает ложноположительный: «система готова к работе», хотя контакт ещё не подтверждён. 0:15:42 — Иконка «Главного» — щит, не нравится. Прошу заменить на домик, единый стиль для всех. 0:16:24 — Агент предлагает 2 варианта. Выбираю Вариант А — четвёртая вкладка «Настройки». Результат: домик, файлы, контакты, настройки — нравится, адаптивно. 0:18:29 — Диктую агенту: главная говорит «система готова», контакты — «ждём ответа». Противоречие. Прошу разобраться. 0:19:52 — Тестирую вход через пин-код: идут проверки разрешений, затем «Система готова к работе». Нравится. 0:21:37 — Проверяю настройки: email виден, смена пин-кода работает. Прошу изменить иконку паники: восклицательный знак в треугольнике вместо кружочка. 0:22:58 — Агент: экран реагирует на каждый фокус — mount, переключение табов, возврат. Добавлен pending-сценарий. Проверяю — подтягивается корректно. 🔄 АВТОРЕФРЕШ: ДИАГНОЗ И РЕШЕНИЕ 0:25:37 — Отправляю запрос подтверждения, переключаюсь — статус не обновляется. Загружаю задачу фронтенд-агенту с acceptance criteria и кодом-снипетом. 0:27:47 — Фронтенд запрашивает доступ к гиту — принимаю. Тестирую: статус «отказался» подтянулся. Тестирую «согласен» — жёлтая индикация, агент ещё кодит. 0:31:05 — Закрываю приложение физически и переоткрываю, тестирую ещё раз. Показываю агенту уведомление про expiration — прошу объяснить. 0:36:10 — Агент: не баг сервера, а отсутствующий авторефреш на Contact Screen. Expo Push API в Expo Go не доставляет — ограничение платформы. Решение: Polling вместо WebSocket/SSE. Contact Screen грузил при первом mount — добавлен рефреш при каждом переключении таба. TS-проверка прошла. 0:39:21 — Проверяю: при каждом переключении таба идёт запрос к серверу — работает. 📱 ФИНАЛЬНЫЕ ПРАВКИ 0:40:52 — Footer налазит на панель Андроида. Прошу поднять footer и кнопки меню на 5 пикселей вверх — нужен зазор. 0:44:34 — Прошу target blank: временный email закрывался через 10 секунд. Тестирую — нажимаю «согласен», переключаю вкладки — контакт подтверждён, статус подтянулся на главную. 0:47:28 — Думаю, поймал баг. Прослеживаю цепочку — оказывается, не баг, закралась единичка от другого контакта. Ссылка «отказаться» открывается в новой вкладке — target blank работает. 0:49:49 — Итог: добавлены настройки в footer'е, footer отодвинут от панели Андроида, реализован авторефреш статуса при переключении вкладок. На реальном устройстве — push автоматически. 📺 Плейлист «Создание мобильного приложения»: https://www.youtube.com/playlist?list=PL6D9b9lf9gb1Pq4nr381LFAWIVS98601V ◀ ч.13 MobDev (редизайн главной, паник-пин): https://youtu.be/o3r-IfnY80c ◀ ч.12 MobDev (экстренные контакты, тревога): https://youtu.be/bujSHzNxuuY #БудниВайбКодБлогераUSA #ReactNative #ExpoGo #ВайбКодинг #ClaudeCode #МобильноеПриложение #ExpoПуш #МобильнаяРазработка #ПинКод #ПаникПин



