Details
| Title | Разработка оффлайн-режима для мобильного и веб-приложения организации совместного досуга: выпускная квалификационная работа бакалавра: направление 09.03.04 «Программная инженерия» ; образовательная программа 09.03.04_01 «Технология разработки и сопровождения качественного программного продукта» = Development of Offline Mode for a Mobile and Web Application for Shared Leisure Planning |
|---|---|
| Creators | Чемодуров Артем Александрович |
| Scientific adviser | Медведев Борис Моисеевич |
| Organization | Санкт-Петербургский политехнический университет Петра Великого. Институт компьютерных наук и кибербезопасности |
| Imprint | Санкт-Петербург, 2026 |
| Collection | Выпускные квалификационные работы ; Общая коллекция |
| Subjects | кэширование данных ; оффлайн-режим ; Flutter ; кросс-платформенное приложение ; синхронизация ; актуальность данных ; data caching ; offline mode ; cross-platform application ; synchronization ; data consistency |
| Document type | Bachelor graduation qualification work |
| Language | Russian |
| Level of education | Bachelor |
| Speciality code (FGOS) | 09.03.04 |
| Speciality group (FGOS) | 090000 - Информатика и вычислительная техника |
| DOI | 10.18720/SPBPU/3/2026/vr/vr26-2699 |
| Rights | Доступ по паролю из сети Интернет (чтение, печать, копирование) |
| Additionally | New arrival |
| Record key | ru\spstu\vkr\42585 |
| Record create date | 8/21/2026 |
Allowed Actions
–
Action 'Read' will be available if administrator prepare required files
Action 'Download' will be available if you login or access site from another network
| Group | Anonymous |
|---|---|
| Network | Internet |
Данная работа посвящена разработке системы кэширования для оффлайн-режима в кросс-платформенном приложении на Flutter. Приложение распространяется в двух форматах: мобильном для Android и веб для Windows, iOS и macOS; это создаёт основную сложность – механизм кэширования должен вести себя одинаково на всех платформах в рамках единой кодовой базы, а не решать задачу заново для каждой из них. В первой части работы изучены клиентские стратегии кэширования и подходы к поддержанию актуальности данных на разнородных устройствах. На основе этого анализа разработаны алгоритмы с двойной логикой: при наличии сети данные загружаются с сервера и записываются в кэш, при её отсутствии – используются сохранённые локально. Модуль кэширования интегрирован в существующую архитектуру приложения без изменения внешнего поведения. Синхронизация с сервером происходит при восстановлении соединения. Тестирование подтвердило корректность работы в обоих режимах и показало сокращение времени загрузки после внедрения кэша. Приложение стало стабильнее при нестабильном соединении и быстрее при повторных запросах – это и было целью. Для достижения данных результатов в работе были использованы: язык программирования Dart и фреймворк Flutter; среда разработки Android Studio; библиотеки – Hive, cached_network_image, flutter_test и mocktail; Git с размещением репозитория на GitLab; браузер Google Chrome с инструментами разработчика Chrome DevTools для тестирования веб-версии.
The thesis describes the development of a caching system for offline functionality in a cross-platform Flutter application. The application is distributed in two formats: a mobile app for Android and a web app for Windows, iOS, and macOS. Supporting multiple platforms within a single codebase means the caching layer cannot be platform-specific – it has to work the same way everywhere. The first part of the work reviews client-side caching strategies and data consistency approaches for heterogeneous device environments. Based on this analysis, a dual-logic algorithm was developed: when a network connection is available, data is fetched from the server and written to the cache; when it is not, the locally stored data is used. The caching module was integrated into the existing application architecture without altering external behavior. Synchronization with the server occurs upon connection restoration. Testing confirmed correct operation in both modes and demonstrated a reduction in load times following cache integration. The application became more stable under intermittent connectivity and more responsive on repeated requests – which was the objective. The following technologies and software were used in the course of this work: the Dart programming language and Flutter framework; Android Studio as the development environment; the Hive NoSQL library; the cached_network_image library; the flutter_test framework and the mocktail library; the Git version control system hosted on GitLab; and Google Chrome with Chrome DevTools for web version testing.
| Network | User group | Action |
|---|---|---|
| ILC SPbPU Local Network | All |
|
| Internet | Authorized users SPbPU |
|
| Internet | Anonymous |
|