Офлайн-режим у застосунку: що зберігати на телефоні, а що ні
Коротка відповідь: офлайн-режим це не одна функція, а три різні рівні з дуже різною ціною розробки. Показати останні завантажені дані майже нічого не коштує. Дати змінювати дані без мережі і потім синхронізувати їх дорого. А те, що можна зберегти на телефоні, обмежують не бажання, а вага даних. Ми заміряли каталог клієнтського магазину: текст на 6 560 товарів важить близько 26 МБ однією мовою, фото до нього понад 3 ГБ.
Три рівні офлайн-режиму
| Рівень | Що бачить людина без мережі | Складність |
|---|---|---|
| 1. Кеш останнього | те, що вже відкривала: екрани, списки, картки | низька |
| 2. Повний доступ на читання | увесь каталог, довідник, документи, навіть те, що не відкривала | середня: треба завантажити й оновлювати базу |
| 3. Робота зі змінами | створює й редагує записи, вони відправляються пізніше | висока: черга змін, конфлікти, повтори |
Коли замовник каже «потрібен офлайн-режим», він майже завжди має на увазі один конкретний рівень. Розмову варто починати саме з цього питання, бо різниця між першим і третім рівнем часто більша, ніж ціна цілого модуля.
Скільки важать дані, які хочуть тримати офлайн
Ми взяли базу клієнтського інтернет-магазину станом на 11 листопада 2026 року і порахували, що довелося б зберегти на телефоні для повного офлайн-каталогу.
| Що | Обсяг |
|---|---|
| Активних товарів | 6 560 |
| Мов | 2 |
| Повні описи товарів, обидві мови | 51,7 МБ |
| Повні описи, одна мова | близько 26 МБ |
| Назви й короткі описи, одна мова | близько 1,9 МБ |
| Фото товарів, головні й додаткові | 29 275 файлів |
| Розмір одного оригіналу фото, вибірка з 11 | від 32 до 445 КБ, медіана 114 КБ |
За медіаною вибірки лише головні фото займають близько 0,75 ГБ, а всі 29 275 файлів понад 3 ГБ. Це оцінка: фото ми не вивантажували повністю, а мініатюри важили б у рази менше.
Висновок для цього каталогу простий. Список товарів із назвами, цінами й наявністю вміщується на телефоні без проблем. Повні описи теж, якщо зберігати одну мову. Фото в оригіналі не вміщуються в жоден розумний офлайн-режим, тому зберігати варто мініатюри або лише те, що людина вже відкривала.

Що дає готова платформа, а що ні
Частину першого рівня можна отримати майже без роботи. У документації Firestore сказано, що офлайн-кеш на Android і на платформах Apple увімкнений за замовчуванням, а у вебверсії його треба вмикати окремо. Поріг кешу за замовчуванням 100 МБ, після нього старі дані поступово видаляються.
Для нашого каталогу це означає: текст однією мовою в такий кеш вміщується, фото ні. А якщо застосунок працює з власним сервером, кешування доведеться писати самостійно.
Другий і третій рівні не вмикаються прапорцем на жодній платформі. Їх проєктують: що завантажувати заздалегідь, як оновлювати базу на телефоні, що робити, коли одна й та сама картка змінилась і на телефоні, і на сервері.
Коли офлайн-режим потрібен, а коли це переплата
| Сценарій | Рівень | Чому |
|---|---|---|
| Каталог магазину, меню, новини | 1 | людина повертається до вже відкритого, купити без мережі все одно не вийде |
| Квитки, документи, інструкції, карти | 2 | їх відкривають саме там, де мережі немає |
| Польові огляди, торгові агенти, склад | 3 | роботу роблять без мережі, а дані не можна втратити |
| Платежі й перекази | 1, лише перегляд | операцію без підтвердження сервера проводити не можна |
Для українських застосунків є ще один аргумент на користь першого рівня. Під час відключень світла мобільний зв'язок буває нестабільним, і застосунок, який показує порожній екран замість останніх даних, сприймається як зламаний.
Що дорожчає на третьому рівні
- Черга змін. Кожна дія без мережі записується й відправляється пізніше, у правильному порядку.
- Конфлікти. Два пристрої змінили той самий запис. Потрібне правило, хто перемагає, і екран для людини, якщо правило не спрацювало.
- Ідентифікатори. Запис, створений офлайн, отримує номер на телефоні, і він не має зіткнутися з номерами сервера.
- Оновлення схеми бази на телефоні. Нова версія застосунку має перенести старі локальні дані, а не стерти їх.
- Тестування. Окремі сценарії: мережа зникла посеред синхронізації, застосунок закрили з невідправленою чергою, повільний зв'язок.
Як перевірити офлайн-режим перед релізом
- Увімкнути режим польоту посеред завантаження екрана.
- Задати повільну мережу в емуляторі Android або в інструменті умов мережі на iOS.
- Закрити застосунок, поки черга змін не відправлена, і відкрити знову.
- Змінити той самий запис на двох пристроях без мережі, потім увімкнути її.
Чого ми не стверджуємо
Це один каталог одного магазину. В іншому магазині описи можуть бути коротшими, а фото важчими.
Розмір фото ми оцінили за вибіркою з 11 файлів, тому 0,75 ГБ і понад 3 ГБ це порядок величини.
І ми не кажемо, що офлайн-режим зайвий. Ми кажемо, що його рівень треба вибрати до оцінки, а не після.
Часті питання
Що таке офлайн-режим у застосунку? Можливість користуватися застосунком без мережі. Буває трьох рівнів: показ уже відкритого, читання всього вмісту, робота зі змінами.
Чи вміститься весь каталог магазину на телефоні? Текст зазвичай так. У нашому замірі 26 МБ однією мовою. Фото в оригіналі ні, тут гігабайти.
Чи дає Firebase офлайн-режим автоматично? Firestore на Android і Apple має кеш за замовчуванням із порогом 100 МБ. Це перший рівень. Другий і третій треба проєктувати.
Що найдорожче в офлайн-режимі? Синхронізація змін і розв'язання конфліктів, коли той самий запис змінили в кількох місцях.
Підсумок
Офлайн-режим має три рівні, і ціна між ними відрізняється в рази. Перший рівень на частині платформ працює майже без роботи, третій вимагає черги змін, правил для конфліктів і окремого тестування. Вага даних задає межі: текст каталогу на 6 560 товарів займає близько 26 МБ однією мовою, а фото до нього понад 3 ГБ.
Тому до оцінки проєкту варто назвати сценарій, рівень і обсяг даних. Так ми починаємо обговорення в розробці мобільних застосунків, і це заощаджує тижні роботи над функцією, яка користувачу не потрібна.
Матеріал підготували Євгеній Чиж, засновник Chyzh Agency, і Сергій Колодинський, Head of Mobile Development.
У каталозі 1700+ діджитал-агентств, які готові допомогти в реалізації ваших завдань. Вибирайте та економте до 30% свого часу та бюджету! Це безкоштовно та займе менше 3-х хвилин.