EntryCall — мобильное приложение для жильцов
Видеодомофон, который жильцы носят в кармане.

Это приложение для iPhone и Android, с помощью которого жильцы EntryCall отвечают на звонок в дверь своего дома. Я переписал его с Flutter на React Native и Expo в 2024–2026 годах, и оно работает в обоих магазинах приложений. Видеозвонки идут по WebRTC и звонят на заблокированном телефоне.
Это EntryCall в вашем кармане. Жильцы отвечают в приложении на видеозвонки от входной двери, впускают гостей, раздают цифровые ключи, смотрят камеру в холле и читают новости дома. Одна кодовая база попадает в оба магазина приложений, и телефон звонит, даже когда приложение закрыто.
- Роль
- Full-Stack разработчик
- Сроки
- 2024 — 2026
- Стек
- Expo SDK 54 · React Native 0.81 · TypeScript · LiveKit + CallKeep / VoIP push · TanStack Query v5 · NativeWind / Tailwind · Pusher · EAS Build / Update
Задача
Одна кодовая база, два магазина приложений.
Что это за приложение.
Приложение для жильцов — это способ ответить на звонок в дверь откуда угодно. Вы видите гостя на видео, говорите с ним и открываете дверь. Кроме того, здесь цифровые ключи для гостей, живая камера в холле и новости дома. Оно выходит на iPhone и Android одновременно, и звонок в дверь нельзя пропустить.
Сложная часть была первой.
Самая трудная часть — заставить телефон звонить, даже когда приложение полностью закрыто — требует глубокого доступа к системе звонков телефона. Её я сделал первой и упаковал в отдельный набор. Затем всё приложение перешло на Expo, набор инструментов, который сильно ускоряет сборку и обновление, а набор для звонков встроен под ним.
Сначала безопасность
Ключи, которые не попадают на диск.
Ваша сессия живёт только в памяти.
В соответствии с новейшими стандартами мобильной безопасности ключ, который подтверждает, кто вы, хранится только в оперативной памяти телефона. Закройте приложение, и ключа нет. Единственный долгоживущий ключ заперт в аппаратном сейфе телефона — в том же защищённом месте, которым пользуется ваше банковское приложение, — и другие приложения не могут его прочитать.
Как вход остаётся безопасным.
- Ключ под защитой железа — В iPhone и Android есть встроенный сейф для секретов. Приложение пользуется обоими через одну дверь.
- Тихое обновление — Когда сессия истекает, приложение обновляет её в фоне и повторяет то, что вы делали. Вы этого не замечаете.
- Мгновенная блокировка — Если обновление не удалось, приложение везде выходит из аккаунта и сразу стирает все сохранённые данные.
- Аккуратно разделённые части — Ввод в форме входа не может прервать живой видеозвонок: части намеренно разделены.

Живые данные
Приложение обновляется само — кнопки обновления нет.
Один умный кэш.
Экраны никогда не обращаются к серверу напрямую. Они читают из одной общей памяти с последними данными — дома, новости, камеры, погода — и эта память знает, насколько свежим должен быть каждый вид данных. Погода может быть пятнадцатиминутной давности, а событие у двери — нет.
Что создаёт ощущение живого приложения.
- Push-обновления — Когда дом публикует новость или меняется камера, сервер сигнализирует приложению, и обновляется именно нужный экран.
- Бодрствует и спит — При возвращении в приложение данные обновляются. Если пропал сигнал, запросы приостанавливаются и повторяются, когда связь вернулась.
- Всегда правильный порядок — Данные, которые зависят от вашего дома, ждут, пока дом станет известен, поэтому вы никогда не увидите чужой холл.
- Чистый выход из аккаунта — Выход стирает все кэшированные экраны. Никаких призраков данных от прошлой сессии.
Видео
Звонки в дверь, которые опережают звонок.
Вся технология звонков в одном наборе.
Весь видеоконвейер живёт в одном собственном наборе. Он находится над всеми экранами, поэтому входящий звонок может занять экран, чем бы вы ни занимались. А звонок в дверь звонит через собственный экран вызова телефона — он выглядит и ощущается как обычный телефонный звонок.
Как разбудить спящий телефон.
Специальный push с высоким приоритетом будит телефон, даже если приложение было закрыто: телефон начинает звонить, ещё до того как приложение полностью запустилось. Живое видео и звук подключаются только после того, как вы ответили.
В руках
Ради чего жильцы на самом деле открывают приложение.
Повседневные функции.
- Видеозвонки в дверь — Ответьте на домофон, посмотрите на гостя и впустите его, не подходя к коробке на стене.
- Цифровые ключи — Дайте временный доступ родным, гостям или уборщице и заберите его, когда он больше не нужен.
- Камера в холле — Смотрите холл и входы в реальном времени из любого места.
- Новости дома — Объявления от управляющей компании приходят в приложение сразу после публикации — никакой бумаги, приклеенной у лифта.
- Местная погода — Небольшой тихий и полезный бонус, обновляется каждые пятнадцать минут.
Дизайн-система
Один язык оформления, две платформы.
Единообразно по умолчанию.
Почти каждый экран оформлен по одной общей системе, поэтому светлая и тёмная темы везде выглядят правильно, без дополнительной работы на каждый экран.
Значки, которые подходят.
Приложение использует набор значков Apple на iPhone и соответствующий набор на Android, подключённые через один компонент, — поэтому каждая платформа выглядит родной.
Следующий проект: EntryCall — приложения для ТВ