Адаптація мобільного додатку під нові можливості ОС

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
    792
  • image_mobile-applications_xoomer_471_0.webp
    Розробка мобільного додатку для компанії XOOMER
    671
  • image_mobile-applications_rhl_428_0.webp
    Розробка мобільного додатку для компанії RHL
    1097
  • image_mobile-applications_zippy_411_0.webp
    Розробка мобільного додатку для компанії ZIPPY
    969
  • image_mobile-applications_affhome_429_0.webp
    Розробка мобільного додатку для компанії Affhome
    914
  • image_mobile-applications_flavors_409_0.webp
    Розробка мобільного додатку для компанії FLAVORS
    495

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

Кожний вересень 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 днів