Стан клієнта Radarly

Стан клієнта Radarly

Кожен екран і функція iOS-застосунку: що вже працює з реальним сервером, що лише виглядає робочим і чого бракує. Повна картина стану клієнта.

станом на 14.10.2026

Перевірено. «Наживо»: запускали на симуляторі чи iPhone з локальним сервером. «За кодом»: читали код і схему сервера, але не запускали.

Головне

Виглядає робочим, але нічого не робить із сервером12

  • Бічне меню: Share app
  • Учасники: вкладки Requests і Invited
  • Чат: відправлення фото
  • Чат: голосове
  • Чат: локація
  • Чат події: швидкі статуси
  • Активність: Approve і Accept
  • Мова
  • Restore purchases
  • Банер оновлення
  • Paywall
  • Аналітика онбордингу

Чекає на рішення чи інфраструктуру3

  • Тур по карті після онбордингу
  • Чат: живі оновлення
  • Доставка пушів

Ще не зроблено12

По областях

Вхід і онбординг
готово 3 з 7
Карта і радар
готово 5 з 9
Профіль іншої людини
готово 6 з 7
Події
готово 8 з 13
Чати
готово 5 з 15
Обране й активність
готово 3 з 4
Налаштування
готово 6 з 9
Покупки
готово 1 з 2
Пуші
готово 1 з 3
Інфраструктура
готово 0 з 2
71 з 71
Екран або функціяСтатусЩо працюєЧого бракуєСерверПеревірено
Вхід і онбординг
Вхід за email-посиланнямГотовоЗапит листа, вхід за посиланням, обмін токена на сесію сервера; Debug-вхід для розробки.Посилання працюють через схему radarly://; універсальні посилання потребують платного акаунта.requestEmailSignIn, exchangeIdentityTokenнаживо
Вхід через Apple і GoogleЧастковоКод є.Не перевірено наживо; Sign in with Apple потребує платного акаунта.exchangeIdentityTokenне перевірено
Онбординг: профіль, стать, дата народженняГотовоКроки зберігаються; повторне проходження перезаписує дані.–completeOnboardingStep, updateProfileнаживо
Онбординг: фото й аватарЧастковоВибір із галереї, завантаження, порядок галереї зберігається.Кнопка «Take Photo» порожня (камера не підключена). Фото, прибране на кроці, лишається в профілі.createUploadIntent, addProfilePhotoнаживо
Онбординг: геолокація й пушіГотовоЗапити дозволів; токен пристрою реєструється.Доставка пушів не перевірена.registerDeviceнаживо
Блокуючий екран згодиНе зроблено–На екрані входу є галочка згоди з політикою, а блокуючого екрана для нових документів (сервер каже, які не прийняті) нема.acceptDocuments, pendingDocumentsза кодом
Екран бануЧастковоЕкран із текстом і кнопкою виходу; прапор isBanned приходить у сесії.Не перевірено з реальним забаненим акаунтом. Окремого екрана заморозки нема й не потрібно: вхід розморожує акаунт.accountStatusза кодом
Карта і радар
Радар: люди й події, піниГотовоЛюди й події навколо з сервера, піни, відстань.Дані демо в Нью-Йорку.nearbyUsers, nearbyEventsнаживо
Радіус, стать і «Hide my activity»ГотовоРадіус і стать у фільтрах; приховування активності з сервера (Premium).Без Premium перемикач «Hide my activity» відкриває Paywall.updateSettings, entitlementsнаживо частково
Шторка Люди, Події, ПрофільГотовоТри вкладки зі списками із сервера.Вкладка «Профіль» без макета. Нижні тости там не видно.–наживо
Бічне меню: лічильникиГотовоChats, Favorites, Activity, My events із сервера.Chats рахує чати з непрочитаним, а не повідомлення.me { unreadConversationCount … }наживо
Бічне меню: Share appМакетПункт є.Показує «Coming soon».–за кодом
Бічне меню: SupportЧастковоВідкриває лист на support@radarly.app.На пристрої не перевірено; адресу варто брати з appConfig.–за кодом
Тур по карті після онбордингуЧекаєПідказка «Welcome to the Radar» показується один раз після онбордингу (перенесена з v2).Чекає: у новому макеті такого кроку нема.–за кодом
Банер про доступ до геолокаціїГотовоПросить дозвіл або веде в Settings, коли доступ відхилено.––за кодом
Попередження про приблизну локаціюНе зроблено–Якщо дозволено лише приблизну локацію, людину не видно на радарі, а застосунок про це мовчить.updateLocationза кодом
Профіль іншої людини
Дані профілю й галереяЧастковоІмʼя, вік, опис, відстань, онлайн, аватар.Галерея фото не завантажується: застосунок не викликає запит user(id), який на сервері є. Тож у профілі лише аватар.user(id), nearbyUsersза кодом
Instagram і TelegramГотовоКнопки відкривають мережу, коли ім’я вказано; тап повідомляється серверу.Запис відкриття перевірено лише тестами: у демо-людей нема посилань.recordSocialLinkOpenтестами
Перегляд профілю в активностіГотовоВідкриття профілю повідомляється серверу один раз за візит (свій профіль не рахується).–recordProfileViewнаживо
Сердечко: обранеГотовоДодає й прибирає з приватного обраного.–addFavorite, removeFavoriteнаживо
Лайк профілю (через сердечко)ГотовоСердечко на профілі шле лайк разом з обраним; окремої кнопки нема (так вирішено), лайк не знімається.–likeUserнаживо
Написати: старт чатуГотовоВідкриває наявний чат або чернетку нового.–conversations, sendMessageнаживо
Report і BlockГотовоМеню «⋯»: Report (шторка з 6 причинами й текстом) і Block (підтвердження, профіль закривається, радар оновлюється).–reportUser, blockUserнаживо
Події
Вкладка Події, кнопка вступуГотовоСписок; шість станів кнопки (вступ, запит, вихід…).–joinEvent, requestToJoinEvent, leaveEventнаживо
Деталі подіїГотовоДані, учасники, обкладинка (читання).У демо лише одна подія з обкладинкою.eventнаживо
Створення подіїГотовоСтворює подію на сервері в поточній локації; назва місця й адреса з геокодера.Вибір місця на мапі (перетягування піна) не робимо, рішення 14.10; Preview: «Coming soon».createEventнаживо
Керування: реєстрація, люди, запрошенняГотовоПеремикач реєстрації, учасники, запрошення.Посилання-запрошення застосунок не вміє відкрити.setEventRegistrationOpen, approveJoinRequest, inviteToEventнаживо
Керування: Edit detailsГотовоФорма створення, заповнена; надсилає лише змінені поля; межа місць.Локація не редагується.updateEventнаживо
Керування: Move to another timeГотовоПівекранний аркуш із календарем; сервер сповіщає учасників.Доставка пушу не перевірена.rescheduleEventнаживо
Керування: Cancel, Archive, UnarchiveГотовоCancel для майбутніх, Archive для минулих, мітка Archived, чат закритий.Те, що інші не бачать архівну подію, не перевіряли.cancelEvent, archiveEvent, unarchiveEventнаживо
Мої події й оцінкаГотовоUpcoming, Hosting, Past; оцінка зірками.–myEvents, rateEventнаживо
Подія за посиланнямНе зробленоПосилання генеруються.Посилання radarly.app/e/… застосунок створює й копіює, а відкрити подію за ним не вміє (ні на цьому, ні на іншому телефоні).eventBySlug, joinEventByLink–
Список подій: «· Anya» і «· N new messages»Не зроблено–Ці примітки завжди порожні: застосунок не підставляє друзів із обраних і лічильник непрочитаних із чату події.–за кодом
Позначка «verified» у ведучогоНе зроблено–У картці події біля «N events hosted» має бути «· verified». Сервер її рахує, але застосунок не запитує поле, тож вона не з’являється.host { isVerified }за кодом
Учасники: вкладки Requests і InvitedМакетЗапити обробляються в блоці «Waiting for you».Самі вкладки показують «Coming soon», хоча застосунок уже отримує обидва списки з сервера; лишилось їх показати.eventMembersнаживо
Учасники: перехід у профільНе зроблено–У списку Going тап по людині нічого не робить (має відкривати її профіль).–за кодом
Чати
Список чатівГотовоСписок, mute (значок у PR #80), видалення, бейджі.Нові повідомлення не з’являються без оновлення; пагінація списку понад 50 не зроблена.conversations, muteConversation, deleteConversationнаживо
Чат: читання повідомленьГотовоТекст, фото, голосове, локація (картка), опитування, системні; галочки.–messages, markConversationReadнаживо
Чат: відправлення текстуГотовоНадсилає, повтор не дублює, помилка повертає текст у поле.–sendMessageнаживо
Чат: відправлення фотоМакетМеню Attach, вибір фото.Вибране фото ігнорується (випадкова картинка), на сервер нічого не йде.sendMessage (PHOTO), завантаженняза кодом
Чат: голосовеМакетЕкран запису з таймером.Звук не записується, хвиля випадкова.sendMessage (VOICE)за кодом
Чат: локаціяМакетКнопка в меню Attach.Лише закриває меню; вибору точки нема.sendMessage (LOCATION)за кодом
Чат: відеоНе зроблено–Нема інтерфейсу відправлення; отримане відео показується текстом.sendMessage (VIDEO)за кодом
Чат: пагінація історіїГотовоПідвантаження старіших повідомлень при прокрутці вгору (PR #82 влито).На пристрої ще не пробували, лише тести.messages (before)тестами
Чат: живі оновленняЧекає–Чекає на готовий канал живих подій із сервера; клієнт пишемо після цього.inbox, conversationEvents–
Чат: статус онлайнНе зробленоЗавжди offline.Клієнт не шле heartbeat і не питає presence: у чаті з людиною завжди offline, у чаті події завжди «0 online».heartbeat, presenceза кодом
Індикатор «друкує…»Не зроблено–У списку чатів є місце під «typing…», але застосунок його не показує. Залежить від каналу живих подій.realtimeAuth–
Чат події: закріплене й опитування (показ)ГотовоЗакріплене в банері; опитування з питанням і голосами; чат закритий для архівної події.–pinnedMessages, pollнаживо
Чат події: голосування й закріпленняНе зроблено–Опитування й закріплення лише показуються.voteEventPoll, closeEventPoll, pinMessage–
Чат події: швидкі статусиМакетЧіпи «I’m on my way».Змінюються лише локально, на сервер не йдуть.setEventStatusUpdateза кодом
Чат: роздільники днівНе зроблено–Зверху завжди один підпис «Today», навіть для старих повідомлень; поділу за днями (Today, Yesterday, дата) нема.–за кодом
Обране й активність
ОбранеГотовоСписок, зняття; сердечко на профілі додає в обране й лайкає.Демо-даних лише для основного акаунта.favoritesнаживо
Активність: показГотовоУсі 10 видів, приховування для безкоштовних (сервер), позначка «переглянуто».Записи старші за вчора не показуються: розділу «Раніше» нема.activityFeed, markActivitySeenнаживо
Активність: створення записівГотовоУсі десять видів: перегляд профілю, відкриття Instagram/Telegram, лайк (сердечко додає в обране й лайкає) і сім видів від наявних дій.Лайк не знімається (так задумано); відкриття соцмережі перевірене лише тестами.recordProfileView, recordSocialLinkOpen, likeUserнаживо частково
Активність: Approve і AcceptМакетRoute відкриває Карти й працює.Approve і Accept лише змінюють вигляд кнопки: сервер нічого не отримує, запит на вступ лишається непідтвердженим, запрошення не приймається.approveEventRequest, joinEventза кодом
Налаштування
Профіль: ім’я, статус, фото, аватарГотовоРедагування, завантаження фото й аватарки.Аватар ще не можна прибрати (сервер уже вміє, кнопки нема). Статус до 140 символів, у макеті 25.updateProfile, setAvatar, removeAvatarнаживо
СоцмережіГотовоПрив’язка, відв’язка, видимість.–linkSocial, unlinkSocialнаживо
Приватність і сповіщенняГотовоПриховати вік, активність, невидимка; пуші «поруч» і «підсумок дня».Перемикача email-сповіщень нема (поле є на сервері, але не в GraphQL). Підпис під «Hide my activity» однаковий для всіх, а для безкоштовних за макетом має бути «Premium only…».updateSettingsнаживо
ЗаблокованіГотовоСписок, розблокування і блокування з профілю.–blockedUsers, unblockUserнаживо
МоваМакетПеремикач змінює підпис.Нічого не змінює. Рішення: мова сповіщень = мова пристрою.–за кодом
Restore purchasesМакетПише «Purchases restored».Нічого не відновлює.restorePurchasesза кодом
Банер оновленняМакетПоказує «Update now to 3.2.0» завжди.Вигадана версія; реальні версії з сервера.appConfigза кодом
Freeze і Delete accountГотовоFreeze справжній (вихід, повернення входом); Delete через 6-значний код із пошти, лічильник спроб, повторна відправка.–freezeAccount, requestAccountDeletion, confirmAccountDeletionнаживо
ВихідГотово––signOutнаживо
Покупки
PaywallМакетЕкран за макетом: плани, таблиця порівняння.Ціни зашиті, кнопка нічого не купує, Restore, Terms і Privacy порожні. Сервер віддає плани (paywall), застосунок їх не запитує. Показується після онбордингу, тож його треба підключити.paywall, confirmPurchaseза кодом
Права PremiumГотовоЧитаються із сервера; замки в інтерфейсі.Купити Premium не можна.me { entitlements }наживо
Пуші
Реєстрація токена пристроюГотовоПристрій реєструється на сервері (модель, мова, версія).Токен для пушів на симуляторі не отримується, лише на справжньому iPhone.registerDevice, unregisterDeviceнаживо частково
Доставка пушівЧекаєСервер створює задачі на пуші.Відправник локально в режимі пам’яті; потрібні ключ APNs, акаунт і пристрій.––
Реакція на тап по пушуНе зроблено–Немає обробника сповіщень: тап не відкриває чат чи подію, а при відкритому застосунку пуш не показується.–за кодом
Інфраструктура
Локалізація інтерфейсуЧастково54 із 254 ключів мають переклад (en, es, ru, tr, uk).У каталозі 254 ключі, перекладено лише 47 (англійська, українська) і 41 (іспанська, російська, турецька); більшість текстів зашита англійською.–за кодом
Аналітика онбордингуМакетПодії кроків онбордингу (відкрито, завершено, пропущено, дозволи).Лише друкуються в консоль; нікуди не надсилаються (у реальній версії мали б іти у Firebase).–за кодом