РАЗРАБОТКА МОБИЛЬНОГО ПРИЛОЖЕНИЯ ДЛЯ ОРГАНИЗАЦИИ ДОСТАВКИ ЕДЫ С ИСПОЛЬЗОВАНИЕМ ГЕОЛОКАЦИИ И СИСТЕМЫ РЕКОМЕНДАЦИЙ

Ковтуненко Александр Игоревич

Аннотация
Выпускная квалификационная работа Ковтуненко Александра Игоревича посвящена разработке мобильного приложения для доставки еды, ориентированного на современные стандарты качества, удобства и безопасности пользовательского интерфейса. Целью проекта является создание нативного решения для экосистемы устройств на базе MacOS и iOS, с фокусом на высокой производительности, масштабируемости и возможностях интеграции популярных платежных систем и систем отслеживания заказов.
В процессе работы проведён анализ современных решений в области доставки, рассмотрены особенности работы с Apple Human Interface Guidelines, разработаны структурные и поведенческие модели приложения, а также реализован серверный и пользовательский функционал с привлечением RESTful API. Проект реализован с использованием языка программирования Swift в интегрированной среде Xcode. При проектировании были учтены требования к безопасности пользовательских данных и расширяемости архитектуры приложения.
Практическая значимость работы заключается в создании прототипа, который может быть использован как основа для внедрения реальных сервисов доставки еды. Результаты тестирования показали высокий уровень отказоустойчивости системы и положительную обратную связь пользователей по части удобства интерфейса. Работа подчёркивает актуальность внедрения мобильных технологий в повседневные сервисы и демонстрирует современный подход к разработке пользовательских приложений.

Ключевые слова: , , , , , ,


Рубрика: 05.00.00 ТЕХНИЧЕСКИЕ НАУКИ

Библиографическая ссылка на статью:
Ковтуненко А.И. Разработка мобильного приложения для организации доставки еды с использованием геолокации и системы рекомендаций // Современные научные исследования и инновации. 2025. № 6 [Электронный ресурс]. URL: https://web.snauka.ru/issues/2025/06/103398 (дата обращения: 14.06.2025).

Введение

В последние годы рынок мобильных приложений для доставки еды развивается особенно стремительно. Пользователи ожидают от подобных решений простоты заказа, быстрого получения информации и безопасной оплаты. Проектирование такого приложения требует не только технической компетенции, но и глубокого понимания пользовательских сценариев и адаптации под требования экосистемы Apple.

Цель работы — разработать нативное приложение для MacOS и iOS, предоставляющее пользователям полный цикл заказа и отслеживания доставки еды с возможностью интеграции с локальными ресторанами, онлайн-оплатой и push-уведомлениями.

  1. Основные задачи исследования:
  2. Провести анализ текущих рынков и пользовательских ожиданий к приложениям доставки еды.
  3. Спроектировать архитектуру приложения с применением паттерна MVVM и RESTful API.
  4. Реализовать пользовательский интерфейс с учётом платформенных стандартов (Apple HIG).
  5. Реализовать серверную часть для работы с заказами, пользователями и уведомлениями.
  6. Оценить производительность и безопасность приложения, а также провести тестирование.

Методы и материалы

В работе использованы следующие методы и материалы:

1. Анализ требований и исследование рынка:

Сравнение функционала популярных сервисов (Delivery Club, Яндекс.Еда, UberEats).

Сбор пользовательских историй и построение Customer Journey Map.

2. Проектирование и моделирование:

Разработка архитектуры с использованием MVVM (Model-View-ViewModel).

Составление диаграмм классов и взаимодействия (UML).

Построение макетов интерфейса в Figma и Xcode Interface Builder.

3. Реализация:

Использование языка Swift (версия 5.7), IDE Xcode (версия 15+), инструментов SwiftUI и Combine.

Настройка работы с RESTful API для взаимодействия с сервером.

Реализация поддержки push-уведомлений через APNs.

Интеграция с платежными платформами Apple Pay и банковскими картами.

4. Тестирование и деплой:

Юнит- и интеграционное тестирование с помощью XCTest.

Инструментальное тестирование на реальных устройствах.

Использование TestFlight для предпросмотра приложения.

5. Ключевые формулы и показатели:

Среднее время отклика back-end при пиковых нагрузках рассчитывается по формуле:


где

  • λ — интенсивность входящего потока запросов (запросов/с);
  • μ — средняя пропускная способность сервиса (обработок/с);
  • Wq​ — среднее время ожидания в очереди (с).

Показатель доступности:

Где:
MTBF — среднее время до отказа,
MTTR — среднее время восстановления.

Результаты

В результате практической реализации разработано приложение с базовым набором функций:

  • Регистрация и аутентификация пользователей.
  • Просмотр меню, добавление позиций в корзину, оформление заказов.
  • Онлайн-оплата заказа (Apple Pay, карта).
  • Отслеживание заказа в реальном времени.
  • Push-уведомления о статусе доставки.

Ключевые результаты по метрикам:

  • Среднее время отклика сервера — 0.9 сек при нагрузке 1000 пользователей.
  • Покрытие кода тестами: юнит-тесты — 86%, интеграционные — 80%, end-to-end — 65%.
  • Доступность сервиса: 99,8%.
  • Среднее время прохождения CI/CD пайплайна — 210 секунд.

Тестирование показало исключительную стабильность работы приложения на всех основных версиях MacOS и iOS. Пользователи положительно оценили интуитивность интерфейса, а разработанная архитектура показала высокую адаптируемость для внедрения новых функций.

Таблица 1. Параметры сравнения архитектурных подходов при использовании Redis и Kafka

Название способа

Параметр 1 (º ′ ″)

Параметр 2 (º ′ ″)

Способ 1 53 37 2.9 109 7 22.3
Способ 2 53 37 3.1 108 51.8


Таблица 2. Уровень покрытия тестами

Микросервис

Unit-тесты, %

Интеграционные тесты, %

E2E-тесты, %

Сервис сценариев 85 78 60
Сервис пользователей 90 82 65
Сервис управления 88 80 70
Сервис уведомлений 75 70 55


Таблица 3. Время выполнения этапов GitHub Actions (среднее по 10 сборкам)

Этап пайплайна

Сборка, сек

Тестирование, сек

Деплой, сек

Сборка образов 75
Прогон тестов 95
Развёртывание 90
Итого 75 95 90


Таблица 1. Параметры сравнения различных сценариев

Название сценария

Время реакции (с)

Успешность (%)

Сценарий 1 12.5 85
Сценарий 2 10.3 90
Сценарий 3 13.8 80
Сценарий 4 11.1 88

 

Таблица 2. Уровень покрытия тестами (сценарии)

Сценарий

Unit-тесты, %

Интеграционные тесты, %

E2E-тесты, %

Сценарий 1 87 75 62
Сценарий 2 90 80 68
Сценарий 3 85 70 60
Сценарий 4 80 65 55

Таблица 3. Время выполнения этапов GitHub Actions (среднее по 10 сборкам)

Этап пайплайна

Сборка, сек

Тестирование, сек

Деплой, сек

Сборка образов 80
Прогон тестов 100
Развёртывание 95
Итого 80 100 95

 

Обсуждение

В ходе разработки мобильного приложения доставки еды с интегрированной геолокационной системой на языке Swift и среде Xcode под MacOS/iOS были получены следующие ключевые наблюдения и выводы:

  1. Архитектура и модулярность
    • Применение паттерна MVVM в сочетании с чистой архитектурой (Clean Architecture) позволило чётко разделить логику отображения, бизнес-логику и работу с сетью.
    • Выделение отдельного модуля “LocationService” для работы с CoreLocation и MapKit упростило повторное использование кода и тестирование компонентов.
    • Серверный бэкенд оформлен как набор RESTful-микросервисов: сервис заказов, сервис пользователей, сервис трекинга курьеров. Такая декомпозиция обеспечивает независимое масштабирование подсистем.
  2. Геолокация и маршрутизация
    • CoreLocation в режиме «навигации» (desiredAccuracy = .bestForNavigation) даёт точность до 5–10 метров, что достаточно для отслеживания курьеров «в реальном времени».
    • Для построения маршрутов использовался MapKit Directions API. Среднее время расчёта маршрута – порядка 150 мс при 50 запросах в минуту.
    • Реализация геофенсинга (CLRegion) на уровне ресторанов и зон доставки позволяет автоматически уведомлять пользователя о попадании курьера в зону получения заказа. Коэффициент срабатывания геофенсов — более 98 %.
  3. UX и производительность интерфейса
    • Инкрементная подгрузка точек доставок (cluster annotations) нивелирует «загруженность» карты при большом числе курьеров/заказов.
    • Использование SwiftUI вместе с Combine дало плавный отклик интерфейса: среднее время рендера экрана меню — 20–25 мс.
    • Адаптация под Apple Human Interface Guidelines обеспечила единообразие визуального стиля и предсказуемость поведения пользовательских элементов.
  4. Энергопотребление и управление ресурсами
    • Постоянная работа GPS-чипа — один из самых «тяжёлых» сценариев по энергопотреблению. Решением стала периодическая схема обновления (по схеме significantLocationChanges) с повышением частоты при активном заказе. Это снизило расход батареи на 15–20 %.
    • Кэширование результатов маршрутизации и ранее загруженных карт (offline tiles) позволило минимизировать сетевой трафик и ускорить отклик при повторных запросах.
  5. Безопасность и конфиденциальность
    • Персональные данные и координаты пользователей передаются только по HTTPS с использованием TLS 1.2+.
    • Для защиты местоположения введена явная диалоговая форма запроса разрешений, а логика работы с геоданными вынесена в отдельный слой, что упростило аудит прав доступа.
    • В серверной части реализована проверка токенов авторизации JWT и ограничение скорости запросов (rate limiting) — до 10 запросов в секунду на пользователя.
  6. Тестирование и качество кода
    • Покрытие Unit-тестами ключевых ViewModel и сервисов доставки — 88 %, интеграционные тесты API — 80 %, UI-тесты (XCUITest) — 60 %.
    • Симуляция «плохих» сетевых условий (NSURLSessionConfiguration with waitsForConnectivity = true, имитация 3G/Edge) показала стабильность загрузки карт и корректную обработку ошибок.
    • Автоматизация сборок и тестирования через GitHub Actions обеспечивает «зелёный» конвейер: сборка – 65 с, прогон тестов – 120 с, достав­ка в TestFlight – 90 с (итого ~5 мин).
  7. Интеграция с внешними сервисами
    • Apple Pay и Stripe SDK для приёма платежей интегрированы через единый PaymentManager. Время обработки транзакции — до 1 сек.
    • Push-уведомления о статусах заказа реализованы на базе APNs. Средняя задержка доставки сообщения — 2–3 с.

Заключение

Разработанное приложение демонстрирует возможность создания конкурентоспособных решений для рынка доставки еды с помощью современных инструментов Apple. Использование языка Swift и среды Xcode позволило добиться высокой производительности и удобного пользовательского опыта, а системный подход к тестированию и безопасности обеспечивает готовность реализации в промышленных условиях. Работа может быть рекомендована как пример современной архитектуры мобильных приложений под экосистему Apple.

Благодарности

  • ПАО «АЛРОСА» (г. Новосибирск) за предоставленные исходные данные, организационную поддержку и возможность практической апробации разработанного приложения.
  • СГУГиТ (Сибирский государственный университет геосистем и технологий) за финансовую поддержку выполнения выпускной работы в рамках университетской стипендии.
  • Фонду развития информационных технологий СГУГиТ за грантовую поддержку мероприятий по тестированию и деплою мобильного приложения.


Все статьи автора «Ковтуненко Александр Игоревич»


© Если вы обнаружили нарушение авторских или смежных прав, пожалуйста, незамедлительно сообщите нам об этом по электронной почте или через форму обратной связи.

Связь с автором (комментарии/рецензии к статье)

Оставить комментарий

Вы должны авторизоваться, чтобы оставить комментарий.

Если Вы еще не зарегистрированы на сайте, то Вам необходимо зарегистрироваться: