Частина 06 · Ваш перший застосунок
45 хв у класі · 15 хв удома L16_UA.pptx

16 Як застосунок пам’ятає справи

ЦІЛЬ ЗАНЯТТЯ Перевірити збереження позначок за HTTPS і пояснити межі браузерного сховища.
РЕЗУЛЬТАТ УЧНЯ (АРТЕФАКТ) Після повторного запуску повернулися третя позначка й число 1; у storage-home.txt є пояснення межі між пристроями.
КРИТЕРІЙ ПЕРЕВІРКИ Після повторного запуску повернулися третя позначка й число 1; у storage-home.txt є пояснення межі між пристроями.

Розмістимо «Мій день» за вебадресою й перевіримо збереження позначок; орієнтовний час — 35–45 хвилин. Потрібні сім файлів з уроку 15 та GitHub, налаштований в уроці 14. Публікуємо файли програми; позначки зберігаються в браузері й не змінюють файлів на GitHub.

Пам’ять відкритої сторінки зникає при перезавантаженні. Щоб повернути позначки, код записує їх у localStorage — невелике сховище даних сайту в браузері. Записи зберігаються між звичайними сеансами, але не синхронізуються між пристроями. Очищення даних сайту їх видалить. Для адрес file: поведінка не визначена однаково, тому готовий приклад вимикає там збереження. Перевірятимемо його за HTTPS. [B207]

На занятті

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

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

  1. Відкрийте https://github.com/new у своєму обліковому записі. Створіть репозиторій my-day: Public, Add README, Create repository. Це окремий проєкт; сайт personal-site залишиться на місці.
  2. На вкладці Code відкрийте Add file → Upload files. Із локальної папки Documents\AI-practice\my-day перетягніть сім файлів, перелічених в уроці 15. Вони мають з’явитися у верхньому рівні; не завантажуйте зайву зовнішню папку.
  3. Введіть повідомлення Add My Day app, виберіть прямий коміт у main, натисніть Commit changes. У Settings → Pages установіть Deploy from a branch, main, /(root), натисніть Save. [B205][B206]
  4. Після розгортання відкрийте Visit site. Адреса закінчуватиметься на /my-day/. Збережіть її в закладках: для перевірок треба повертатися саме до цього застосунку, а не до локального файлу.

Простежте запис і читання

  1. У звичайному, не приватному вікні натисніть Почати новий день, а потім позначте першу й третю справи. Очікуємо «Виконано 2 з 3» і повідомлення «Позначки збережено в цьому браузері».
  2. Оновіть сторінку. Перша й третя позначки мають залишитися. Закрийте вкладку, відкрийте застосунок із закладки й перевірте ще раз.
  3. Відкрийте ту саму адресу в іншому браузері, де ще не користувалися застосунком. Усі три справи будуть без позначок. Так ви побачите межу сховища: Edge і Chrome не ділять наші позначки між собою. На телефоні вони також почнуться окремо.
Запис і відновлення
01Дія

Позначено першу й третю справи

02Запис

localStorage отримує [true,false,true]

03Наступне відкриття

Код читає збережений список

04Відновлений стан

Дві позначки й число 2

Файли на GitHub не змінюються від позначок користувача.

У готовому app.js знайдіть saveChoices. Це функція — названий фрагмент коду, який виконує одну роботу. Усередині є такі рядки JavaScript:

javascript
const done = boxes.map(box => box.checked);
localStorage.setItem(key, JSON.stringify(done));

Перший рядок збирає три значення: true означає «позначено», false — «не позначено». Другий перетворює список на JSON — текстовий запис значень — і зберігає його під іменем, що міститься в key. Для першої й третьої справи це текст [true,false,true]. При відкритті застосунок перетворює його назад на список і відновлює прапорці.

  1. Натисніть Почати новий день, потім оновіть сторінку. Має залишитися «Виконано 0 з 3»: кнопка змінює і екран, і збережені значення. Позначте одну справу знову, щоб залишити видимий результат уроку.

Якщо власна генерація не зберігає дані

Надішліть ШІ повний app.js та цей вузький запит. Готовий приклад уже виконує описану поведінку.

Отриманий повний app.js збережіть замість старого в локальній папці. Перед перевіркою за HTTPS виконайте «Оновлення після встановлення» з уроку 17: змініть версію кешу в sw.js, збережіть його та завантажте обидва змінені файли одним комітом. Дочекайтеся розгортання й відкрийте нову версію за вказаним там порядком. Потім повторіть кроки 5–6. Цей порядок потрібний і для звичайної вкладки.

Практика вдома

  1. Створіть Documents\AI-practice\storage-home.txt. Перед перевіркою передбачте, що буде з позначками після закриття всього браузера, а не лише вкладки.
  2. У вже опублікованому застосунку почніть новий день і позначте тільки третю справу. Збережіть іншу відкриту роботу, закрийте браузер і знову відкрийте застосунок із закладки.
  3. Запишіть прогноз і фактичні прапорці та число. Критерій успіху — повернулися саме третя позначка й 1. Поясніть одним реченням, чому інший телефон не зобов’язаний показати те саме.

Самотест

  1. Збережено лише середню справу. Що має відновитися після оновлення і як виглядає список трьох значень?
  2. Чому на іншому телефоні немає ваших позначок?
  3. Чи можна вважати localStorage резервною копією важливих записів?

Терміни

  • localStorage — сховище невеликих текстових даних сайту в браузері.
  • JSON — текстовий формат для запису структурованих значень.
  • Функція — фрагмент коду з іменем, який можна викликати для певної роботи.
Ключ відповідей до самотесту (Урок 16) Спершу дайте власні відповіді на три запитання вище, а потім відкрийте ключ для перевірки.
  1. Середній прапорець і «Виконано 1 з 3»; список — `[false,true,false]`.
  2. Дані зберігає конкретний браузер. У застосунку немає облікового запису й синхронізації.
  3. Ні. Очищення даних сайту або втрата пристрою може знищити записи.

Перевірені джерела до цього уроку (станом на 30.10.2026)

B207 · Window: localStorage property — https://developer.mozilla.org/en-US/docs/Web/API/Window/localStorage
Persistence, origin, private browsing and undefined file: behaviour. The examples deliberately disable file: saving.
B205 · Adding a file to a repository — https://docs.github.com/en/repositories/working-with-files/managing-files/adding-a-file-to-a-repository
Add file → Upload files, file selection, commit message. Direct commit explicitly chosen for sole-owner training repository.
B206 · Configuring a publishing source for your GitHub Pages site — https://docs.github.com/en/pages/getting-started-with-github-pages/configuring-a-publishing-source-for-your-github-pages-site
Settings → Pages → Deploy from a branch; main and /(root); Save.

КОД ОПОРУ (Shionika Academy) — Відповіді на ключові запитання

Для кого створена гібридна IT/AI-школа «КОД ОПОРУ»?

Програма та книга «ШІ на практиці: Перший сайт, застосунок і контент» розроблені для ветеранів України та дорослих початківців без попереднього досвіду програмування. Навчання поєднує практику в обладнаному класі на 10 місць із покроковим друкованим та онлайн-конспектом.

Які три роботи входять у випускне портфоліо кожного учасника?

Кожен із 10 учасників пілота створює й захищає: 1) власний адаптивний сайт-візитку на GitHub Pages (уроки 11–14), 2) мобільний вебзастосунок «Мій день» (PWA з підтримкою офлайн-роботи, уроки 15–18), 3) пакет контенту з субтитрами для YouTube, Instagram і TikTok (уроки 19–28).

З чого складається кошторис пілота $37,377.24 на 4 місяці?

Кошторис (перевірено 01.11.2026) охоплює: обладнання 10 учнівських і 2 службових місць та резервне живлення 5.12 кВт·год ($14,280), команду з менеджера й викладача та оренду класу на 4 місяці ($12,960), іменні доступи ChatGPT Plus/Codex, Claude Pro, Google AI Pro/Antigravity та хостинг ($3,258.76), ліцензії Windows 11 FPP і практикум публікації ($2,780), податковий запас і резерв 10% ($4,098.48).