Адаптация мобильного приложения под новые возможности ОС

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

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

Предлагаемые услуги
Показано 1 из 1 услугВсе 1735 услуг
Адаптация мобильного приложения под новые возможности ОС
Средняя
~3-5 рабочих дней
Часто задаваемые вопросы
Наши компетенции:
Этапы разработки
Последние работы
  • 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
    1052
  • image_mobile-applications_zippy_411_0.webp
    Разработка мобильного приложения для компании ZIPPY
    947
  • image_mobile-applications_affhome_429_0.webp
    Разработка мобильного приложения для компании Affhome
    862
  • image_mobile-applications_flavors_409_0.webp
    Разработка мобильного приложения для компании FLAVORS
    445

Адаптация мобильного приложения под новые возможности ОС

Каждый сентябрь Apple выпускает новую iOS — и каждый год часть приложений выглядит устаревшей рядом с обновлёнными системными приложениями. Dynamic Island, Live Activities, интерактивные виджеты, Stage Manager на iPad, Lock Screen widgets — пользователи замечают, когда ваше приложение не использует то, что платформа предлагает бесплатно.

iOS 16: Lock Screen Widgets и Live Activities

Lock Screen Widgets — виджеты прямо на экране блокировки. Технически это WidgetKit с новым семейством .accessoryCircular, .accessoryRectangular, .accessoryInline. Существующий Home Screen виджет не работает на Lock Screen без явной поддержки этих семейств.

struct LockScreenWidgetView: View {
    @Environment(\.widgetFamily) var family

    var body: some View {
        switch family {
        case .accessoryCircular:
            Gauge(value: progress, in: 0...1) {
                Image(systemName: "star")
            }
            .gaugeStyle(.accessoryCircular)
        case .accessoryRectangular:
            VStack(alignment: .leading) {
                Text(title).font(.headline)
                Text(subtitle).font(.caption)
            }
        default:
            EmptyView()
        }
    }
}

Цветовая схема Lock Screen виджета — .widgetAccentable() для элементов, которые подхватывают пользовательский акцентный цвет экрана блокировки. Без этого модификатора виджет выглядит «мёртвым».

Live Activities (ActivityKit) — динамические плашки на Lock Screen и в Dynamic Island. Обновляются push-уведомлениями (ActivityKit pushes) или напрямую из приложения. Типичный сценарий: доставка, такси, спортивный матч.

// Запуск Activity
let attributes = DeliveryAttributes(orderId: "12345")
let state = DeliveryAttributes.ContentState(status: .preparing, eta: Date().addingTimeInterval(1800))

let activity = try Activity.request(
    attributes: attributes,
    content: .init(state: state, staleDate: nil),
    pushType: .token
)

Ключевой момент — pushType: .token. Сервер получает push token этой активности и может обновлять её через APNs без пробуждения основного приложения. Реализация серверной части — обязательная часть задачи.

iOS 17: Interactive Widgets и TipKit

Interactive Widgets — виджеты с кнопками и Toggle. До iOS 17 tap на виджете только открывал приложение. Теперь Button и Toggle в WidgetKit выполняют AppIntent прямо из виджета:

struct QuickActionWidget: Widget {
    var body: some WidgetConfiguration {
        StaticConfiguration(kind: "QuickAction", provider: Provider()) { entry in
            QuickActionWidgetView(entry: entry)
                .containerBackground(.fill.tertiary, for: .widget)
        }
    }
}

struct QuickActionWidgetView: View {
    var entry: Entry
    var body: some View {
        Button(intent: ToggleTaskIntent(taskId: entry.taskId)) {
            Image(systemName: entry.isCompleted ? "checkmark.circle.fill" : "circle")
        }
    }
}

containerBackground — новое требование iOS 17: виджеты обязаны задавать фон через этот модификатор, иначе Xcode выдаёт предупреждение, а на iOS 17 виджет может выглядеть неправильно.

TipKit — нативный фреймворк для обучающих подсказок:

struct NewFeatureTip: Tip {
    var title: Text { Text("Попробуйте голосовой ввод") }
    var message: Text? { Text("Нажмите на микрофон для быстрого добавления задачи") }
    var image: Image? { Image(systemName: "mic.fill") }

    var rules: [Rule] {
        #Rule(Self.$hasUsedSearch) { $0.donations.count < 3 }
    }
}

TipKit отслеживает правила показа, хранит состояние (показана/закрыта/выполнено действие) и синхронизирует между устройствами через iCloud. Не нужно писать свой трекинг показов.

iPadOS: Stage Manager и Multitasking

Адаптация под Stage Manager (iPadOS 16+) — это в первую очередь поддержка произвольных размеров окна. Приложение должно корректно работать при любом соотношении сторон, не только при фиксированных iPad-размерах.

// Проверка поддержки множественных окон
UIApplication.shared.supportsMultipleScenes // true на iPad с Stage Manager

UIWindowScene.sizeRestrictions позволяет задать минимальный и максимальный размер окна для Stage Manager:

windowScene.sizeRestrictions?.minimumSize = CGSize(width: 400, height: 300)
windowScene.sizeRestrictions?.maximumSize = CGSize(width: 1200, height: 900)

AutoLayout с правильными constraint priorities и UIContentSizeCategoryAdjusting для шрифтов — обязательны. Жёстко прописанные размеры в коде (frame = CGRect(x: 0, y: 0, width: 375, height: 812)) — это гарантированные проблемы на Stage Manager.

Процесс адаптации

Аудит: список новых фич конкретной iOS-версии, анализ которые применимы к продукту и дают реальную ценность пользователю.

Приоритизация: не каждая новинка нужна вашему приложению. Live Activities имеют смысл для реального-времени отслеживания; Lock Screen Widgets — для быстрого доступа к часто используемым данным. Внедрять ради галочки — не наш подход.

Разработка с @available(iOS 16, *) — старые iOS должны продолжать работать.

Тестирование на конкретных версиях iOS, не только на последней.

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

Фича Срок
Lock Screen Widgets (расширение существующего) 1–2 дня
Live Activities + серверная интеграция 3–5 дней
Interactive Widgets (iOS 17) 1–2 дня
Stage Manager адаптация для iPad 2–3 дня
Комплексная адаптация под новую iOS 3–5 дней