Реализация AI-рекомендаций по здоровью на основе данных в мобильном приложении

TRUETECH занимается разработкой, поддержкой и обслуживанием мобильных приложений iOS, Android, PWA. Имеем большой опыт и экспертизу для публикации мобильных приложений в популярные маркеты Google Play, App Store, Amazon, AppGallery и другие.
Разработка и поддержка любых видов мобильных приложений:
Информационные и развлекательные мобильные приложения
Новостные приложения, игры, справочники, онлайн-каталоги, погодные, фитнес и здоровье, туристические, образовательные, социальные сети и мессенджеры, квиз, блоги и подкасты, форумы, агрегаторы
Мобильные приложения электронной коммерции
Интернет-магазины, B2B-приложения, маркетплейсы, онлайн-обменники, кэшбэк-сервисы, биржи, дропшиппинг-платформы, программы лояльности, доставка еды и товаров, платежные системы
Мобильные приложения для управления бизнес-процессами
CRM-системы, ERP-системы, управление проектами, инструменты для команды продаж, учет финансов, управление производством, логистика и доставка, управление персоналом, системы мониторинга данных
Мобильные приложения электронных услуг
Доски объявлений, онлайн-школы, онлайн-кинотеатры, платформы предоставления электронных услуг, платформы кешбека, видеохостинги, тематические порталы, платформы онлайн-бронирования и записи, платформы онлайн-торговли

Это лишь некоторые из типы мобильных приложений, с которыми мы работаем, и каждый из них может иметь свои специфические особенности и функциональность, а также быть адаптированным под конкретные потребности и цели клиента.

Предлагаемые услуги
Показано 1 из 1 услугВсе 1735 услуг
Реализация AI-рекомендаций по здоровью на основе данных в мобильном приложении
Средняя
~1-2 недели
Часто задаваемые вопросы
Наши компетенции:
Этапы разработки
Последние работы
  • image_mobile-applications_feedme_467_0.webp
    Разработка мобильного приложения для компании FEEDME
    756
  • image_mobile-applications_xoomer_471_0.webp
    Разработка мобильного приложения для компании XOOMER
    624
  • image_mobile-applications_rhl_428_0.webp
    Разработка мобильного приложения для компании RHL
    1054
  • image_mobile-applications_zippy_411_0.webp
    Разработка мобильного приложения для компании ZIPPY
    947
  • image_mobile-applications_affhome_429_0.webp
    Разработка мобильного приложения для компании Affhome
    864
  • image_mobile-applications_flavors_409_0.webp
    Разработка мобильного приложения для компании FLAVORS
    445

Реализация AI-рекомендаций по здоровью на основе данных в мобильном приложении

Большинство health-приложений показывают данные. Пользователь видит 7 340 шагов и закрывает приложение. Рекомендательная система меняет этот сценарий: вместо «вот ваши данные» — «вот что эти данные значат для вас сегодня».

Архитектура системы рекомендаций

Персонализированные рекомендации по здоровью — это не один ML-алгоритм. Это pipeline из нескольких слоёв:

  1. Сбор данных — активность (шаги, тренировки), сон, питание, биометрика (ЧСС, SpO2, вес)
  2. Профиль пользователя — возраст, цели, исходные показатели, паттерны поведения
  3. Feature engineering — агрегация в осмысленные метрики
  4. Модель рекомендаций — rule engine + ML ranking
  5. Отображение — конкретное, релевантное, в нужный момент

Данные: HealthKit как единая точка на iOS

class HealthDataAggregator {
    private let store = HKHealthStore()

    func weeklyStats() async throws -> HealthWeekSnapshot {
        async let steps = fetchSum(.stepCount, days: 7)
        async let sleepHours = fetchCategorySamples(.sleepAnalysis, days: 7)
        async let restingHR = fetchAverage(.restingHeartRate, days: 7)
        async let activeEnergy = fetchSum(.activeEnergyBurned, days: 7)

        return try await HealthWeekSnapshot(
            avgDailySteps: steps / 7,
            avgSleepHours: sleepHours,
            avgRestingHR: restingHR,
            totalActiveKcal: activeEnergy
        )
    }
}

На Android — Health Connect SDK (HealthConnectClient) с аналогичным набором типов данных. HealthConnectClient.readRecords(StepsRecord::class) — запрос шагов за период.

Rule Engine как основа рекомендаций

Rule-based подход — не устаревший, а практичный. Правила прозрачны, тестируемы, не требуют большого датасета для обучения. ML поверх правил добавляет персонализацию в ранжировании.

Пример структуры правил:

struct HealthRule {
    let id: String
    let condition: (HealthWeekSnapshot) -> Bool
    let recommendation: Recommendation
    let priority: Int
}

let rules: [HealthRule] = [
    HealthRule(
        id: "low_sleep",
        condition: { $0.avgSleepHours < 6.5 },
        recommendation: Recommendation(
            title: "Недосып снижает восстановление",
            body: "Средний сон за неделю — \($0.avgSleepHours.formatted(.number.precision(.fractionLength(1)))) ч. Попробуйте лечь на 30 мин раньше 3 дня подряд.",
            category: .sleep,
            urgency: .medium
        ),
        priority: 8
    ),
    HealthRule(
        id: "elevated_resting_hr",
        condition: { snapshot in
            guard let hr = snapshot.avgRestingHR else { return false }
            return hr > 80 && snapshot.avgSleepHours < 7
        },
        recommendation: ...,
        priority: 9
    )
]

Комбинированные условия важны: «пульс в покое 85 bpm» само по себе может быть нормой для конкретного человека, но в сочетании с недосыпом — маркер перетренированности или стресса.

ML-слой: ранжирование и персонализация

Rule engine генерирует список кандидатов — рекомендаций, условия которых выполнены. Дальше ML-модель ранжирует их по вероятности выполнения конкретным пользователем.

Для ранжирования используем collaborative filtering или простой gradient boosting на фичах пользователя + рекомендации:

  • Исторический CTR рекомендаций этого типа для пользователя
  • Паттерн дня недели (пользователь больше гуляет по выходным — рекомендации активности релевантнее в пятницу)
  • Streak: пользователь 5 дней выполнял рекомендацию → повысить приоритет следующей

Обучаем на implicit feedback: рекомендация показана → пользователь открыл → выполнил (есть данные из HealthKit) / проигнорировал.

Timing и push-уведомления

Правильный момент для рекомендации важнее правильного содержания. «Ложитесь спать пораньше» в 8 PM работает. В 11:30 PM — нет.

func scheduleRecommendation(_ rec: Recommendation) {
    let content = UNMutableNotificationContent()
    content.title = rec.title
    content.body = rec.shortBody
    content.sound = .default

    let bestTime = optimalDeliveryTime(for: rec, userSchedule: userProfile.typicalSchedule)
    let trigger = UNCalendarNotificationTrigger(
        dateMatching: Calendar.current.dateComponents([.hour, .minute], from: bestTime),
        repeats: false
    )
    let request = UNNotificationRequest(identifier: rec.id, content: content, trigger: trigger)
    UNUserNotificationCenter.current().add(request)
}

optimalDeliveryTime — логика на основе паттернов пользователя: когда он обычно открывает приложение, когда ложится спать (из HealthKit sleep data), когда делает тренировки.

Что делает рекомендации рабочими

Одна конкретная рекомендация в день лучше пяти общих. «Пройдите 2 000 шагов сегодня до 18:00, у вас сейчас 1 200» — работает. «Больше двигайтесь» — нет.

Привязка к контексту реального времени: если CMMotionActivityManager показывает, что пользователь сейчас идёт — рекомендацию по активности не показываем. Не раздражаем.

Процесс работы

Определение источников данных и schema модели пользователя. Разработка правил (15–30 для начального набора). Реализация pipeline агрегации из HealthKit / Health Connect. Обучение модели ранжирования (нужны данные — или синтетические, или из pre-launch beta). Система доставки: in-app и push-уведомления с оптимальным тайминго. A/B тестирование эффективности.

Ориентиры по срокам

Rule-based система с базовым набором рекомендаций и HealthKit интеграцией — 1–2 недели. Полная персонализированная система с ML-ранжированием и оптимальным тайминго — 3–5 недель.