Mommy RefuelТрохи більше простору для тебе.
UK
ОНОВЛЕННЯ ПРОДУКТУ

Білди 23 і 24:виправляю баг, який справді мав значення

Оновлення продукту · 4 хв читання

Один баг 20 вересня турбував мене більше за інші: зміна мови могла залишити половину екрана старою мовою. Ось у чому була причина, як я це виправив і що ще вийшло того дня.

Екран підтвердження «Ви зробили чек-ін сьогодні» із зеленою галочкою і кнопкою «Зробити чек-ін знову».
Екран підтвердження чек-іну — ранній дизайн застосунку.

Головне

  • Зміна мови застосунку могла залишити частину екрана старою мовою — це реальна особливість iOS, а не випадковий збій. Виправлено: тепер застосунок пропонує чистий перезапуск, щоб завершити перемикання.
  • Я перевірив усі 8 перекладених мов від початку до кінця: шаблон повідомлення про допомогу, який ніколи не був перекладений на 7 мов, відсутні рядки безпеки і дублі ключів — усе виправлено.
  • Позначку Partner Mode на сайті було занижено — тепер вона коректно каже, що підключення партнера працює в пілоті, і лише панель спільного доступу досі закрита.
  • Контент про статуси функцій на сайті синхронізовано з чесною, оновленою дорожньою картою застосунку за попередні два дні.
  • Переклади для кризових ситуацій і безпеки зроблені ретельно, але я все одно хочу, щоб носії мови перевірили їх перед публічним запуском в App Store.
01

Баг: зміна мови могла залишити вас наполовину в кожній

Тестувальник повідомив, що після зміни мови застосунку частина екрана залишалася старою мовою — англійський підпис поруч з українським текстом, або навпаки. Така неузгодженість швидко підриває довіру, особливо в застосунку про добробут, де чіткість мови важлива.

Причина виявилася цікавішою, ніж просто помилка. iOS насправді фіксує мову застосунку в момент запуску процесу і кешує, як розв'язується String(localized:) на весь цей сеанс роботи. Заміна мовного пакета «на льоту» перенаправляє лише прості виклики SwiftUI Text("буквальний текст"), а не кешовані локалізовані значення — тому ці два шляхи тихо розходяться, і ви отримуєте справді змішаний екран. Це неможливо було просто «залатати»; потрібен був зовсім інший підхід.

02

Виправлення: чесний перезапуск замість зламаної миттєвої зміни

Замість боротьби з поведінкою iOS я перестав обіцяти миттєве перемикання «на льоту». Тепер вибір мови записується, і застосунок пропонує «Перезапустити зараз» — чистий перезапуск, після якого весь інтерфейс повністю й узгоджено повертається новою мовою — або «Пізніше», якщо ви хочете продовжити й перемкнутися, коли зручно. Я перевірив обидва напрямки в симуляторі, з української на англійську і назад, і переконався, що весь інтерфейс, включно з кешованими локалізованими рядками на кшталт «Не налаштовано» чи «1 дитина», після перезапуску узгоджений. Ваші дані в будь-якому разі залишаються недоторканими.

03

Заразом: повний аудит 8 мов

Виправлення бага з перемиканням стало гарним приводом ретельно перевірити кожен перекладений рядок в усіх 8 неанглійських мовах. Я знайшов реальні прогалини:

  • Шаблон повідомлення для прохання про допомогу не був перекладений на 7 мов — він відображався буквально як власна внутрішня назва ключа замість тексту, а не справжнього тексту; тепер усі 4 плейсхолдери коректно перекладені кожною мовою.
  • П'ять ключів, зокрема два рядки про кризові ситуації й безпеку та кілька застережень, існували лише українською і тихо переходили на англійську всюди інде. Додав їх у решту 7 мов.
  • Прибрав дублі ключів (як-от дві окремі позиції для «Суміш» і «Щось інше») та невідповідність форматування.

Після аудиту кожна мова має рівно 1472 ключі, без пропущених, без дублів і без невідповідностей формату — перевірено лінтером plist від Apple. Хочу бути чесним щодо одного: переклади для кризових ситуацій і безпеки зроблені ретельно, вручну, але вони все одно заслуговують на клінічну перевірку носієм мови, перш ніж це дійде до публічного App Store — це відома вимога, а не запізніла думка.

Ранній екран чек-іну з варіантами настрою від «Важко» до «Яскраво» та енергії від «Повна» до «Порожньо», англійською.
Ранній екран чек-іну — ранній дизайн застосунку, серпень 2026.
04

Сайт наздоганяє реальність про Partner Mode

Опублікований сайт — це статичне дзеркало, окреме від дорожньої карти всередині застосунку, тож я перевірив кожну позначку доступності функції на ньому проти реального стану в застосунку. Більшість уже були точними — цикл, планування, Care Circle, Memories, діти й сімейна стрічка коректно показували «Доступно»; напрямок про малюка і сімейну медичну картку коректно показували «Заплановано»; застосунок для Apple Watch уже був представлений як частина пілоту.

Partner Mode виявився тим, що применшував реальність: там було написано «В розробці · закрито в продакшені», тоді як підключення партнера вже сьогодні працює. Я оновив позначку на «У пілоті · спільний доступ закрито в продакшені» на всіх 9 мовах сайту — саме так, як я описав Partner Mode в попередньому записі.

Екран «Сьогодні» з написом «Доброго ранку, сьогодні у вас менше енергії, ніж зазвичай», балом 52 і графіком за 6 днів.
Екран «Сьогодні» з нижчим балом — ранній дизайн застосунку.
05

Синхронізація решти контенту дорожньої карти сайту

Окремо я привів контент статусів функцій на сайті у відповідність до змін в застосунку за останні два дні: Цикл/Планування, Вагітність, Малюк, Memories і Care Circle тепер показують «зараз» замість м'якшого статусу; Здоров'я показує «далі», що відповідає вже випущеним імпорту ваги й «Тілу та відновленню», але глибші сигнали й контекст від годинника ще попереду. Також я прибрав дві речі, які вже не були чесними: обіцянку оцінки «вікна фертильності» (застосунок свідомо не робить жодних тверджень про фертильність) і примітку про профілі малюка за прихованим перемикачем (карточка про малюка вже вийшла). Статуси маркетплейсу Care і драбини довіри залишив без змін — це окремий запуск зі своїм графіком.

06

Де і коли

  • 08:35 — TestFlight білд 23 (комміт f425230).
  • 09:00 — Контент статусів функцій на сайті синхронізовано з оновленою дорожньою картою застосунку (0ebb475).
  • 10:44 — Позначку Partner Mode виправлено на всіх 9 мовах сайту: «У пілоті · спільний доступ закрито в продакшені» (761c6b7).
  • 11:16 — Виправлено баг зі зміною мови через перезапуск; завершено повний аудит рядків на 8 мовах (359e2cc).
  • 11:17 — TestFlight білд 24, виправлення зміни мови (250a8a2).
07

Що далі

Переклади для кризових ситуацій і безпеки все ще потребують клінічної перевірки носієм мови перед загальним запуском. А найбільше, до чого я йшов цього тижня, — новий спосіб просто розповісти застосунку, замість заповнення форм — було вже зовсім поруч. Про це дуже скоро.

Екран «Ви» у поточному застосунку Mommy Refuel, з етапом життя, Care Circle і рядками акаунту.
Екран «Ви» у поточному застосунку, вересень 2026.

Питання, які ставлять мами

Чому застосунок не міг перемикати мову миттєво, без перезапуску?

iOS фіксує мову застосунку при запуску і кешує, як розв'язується локалізований текст на весь сеанс. Заміна пакета «на льоту» впливає лише на частину тексту, тому шляхи розходяться і виходить змішаний екран. Перезапуск — єдиний надійний спосіб виправити це.

Чи видалить зміна мови мої дані?

Ні. Зміна мови й перезапуск впливають лише на те, як відображається текст. Ваш щоденник, чек-іни і всі дані залишаються цілком недоторканими.

Чи Partner Mode повністю доступний в App Store зараз?

Підключення партнера працює в пілоті. Повніша панель спільного доступу досі закрита в публічній версії App Store в очікуванні перевірки приватності.

Чи переклади для кризових ситуацій і безпеки вже перевірені фахівцем?

Вони написані ретельно, вручну, на всіх 8 мовах, але все одно потребують клінічної перевірки носієм мови, перш ніж я вважатиму їх остаточними для загального запуску.

Доступність може залежати від встановленої версії застосунку. Статуси підтверджені засновником на момент публікації.

ЩЕ З БЛОГУУсі статті ↗︎
Екран онбордингу з питанням «Де ви зараз?» і варіантами: вагітність, післяпологовий період, планування або підтримка когось.

Чому я запускаю цей блог від першого дня Mommy Refuel

Я запускаю блог на mommyrefuel.com — справжні статті про материнство і добробут, і цей щоденник змін від мого імені, англійською і українською, а ще цього тижня ми розповідаємо про Mommy Refuel ширше.

Сергій Рогачов
Екран Refuel AI з підказками на кшталт «Чому мій бал сьогодні нижчий?» та «Допоможи підготуватися до лікаря».

Just talk: скажи або напиши, а Mommy Refuel розкладе по місцях

Без форм і меню — просто скажіть або напишіть про свій день, а Mommy Refuel запропонує, куди це віднести. Що саме зберегти, вирішуєте ви. Ось як це працює і чому я зробив саме так.

Сергій Рогачов
Вкладка «Тренди» «Стрічки життя» з графіком балу з 10 по 31 серпня, 9 записаними днями й 20 днями без даних.

19 вересня, вечір: Life Timeline стає реальним пілотом

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

Сергій Рогачов
ДЛЯ ЛЮДИНИ ВСЕРЕДИНІ МАТЕРИНСТВА

Зроби місце
для себе.

Отримати безкоштовний застосунок