Реалізація Multi-Window для Android: Split-Screen, PiP, Freeform

Реалізація Multi-Window для Android: Split-Screen, PiP, Freeform Розбитий інтерфейс під час перетягування роздільника в Split-Screen — часта скарга користувачів Android 7+. Багато додатків, які роками працювали в повноекранному режимі, при поділі екрана втрачають половину функціоналу: кнопки накл

Розробка та підтримка будь-яких видів мобільних додатків:

Інформаційні та розважальні мобільні програми
Новинки, ігри, довідники, онлайн-каталоги, погодні, фітнес та здоров'я, туристичні, освітні, соціальні мережі та месенджери, квіз, блоги та подкасти, форуми, агрегатори
Мобільні програми електронної комерції
Інтернет-магазини, B2B-додатки, маркетплейси, онлайн-обмінники, кешбек-сервіси, біржі, дропшиппінг-платформи, програми лояльності, доставка їжі та товарів, платіжні системи
Мобільні програми для управління бізнес-процесами
CRM-системи, ERP-системи, управління проектами, інструменти для команди продажів, облік фінансів, управління виробництвом, логістика та доставка, управління персоналом, системи моніторингу даних
Мобільні програми електронних послуг
Дошки оголошень, онлайн-школи, онлайн-кінотеатри, платформи надання електронних послуг, платформи кешбеку, відеохостинги, тематичні портали, платформи онлайн-бронювання та запису, платформи онлайн-торгівлі

Це лише деякі з типів мобільних додатків, з якими ми працюємо, і кожен із них може мати свої специфічні особливості та функціональність, а також бути адаптованим під конкретні потреби та цілі клієнта.

Послуги, які ми пропонуємо
Показано 1 з 1Усі 1734 послуг
Реалізація Multi-Window для Android: Split-Screen, PiP, Freeform
Середній
~3-5 днів

Наші компетенції:

Часті запитання

Останні роботи

  • image_mobile-applications_feedme_467_0.webp
    Розробка мобільного додатка для компанії FEEDME
    895
  • image_mobile-applications_xoomer_471_0.webp
    Розробка мобільного додатку для компанії XOOMER
    782
  • image_mobile-applications_rhl_428_0.webp
    Розробка мобільного додатку для компанії RHL
    1216
  • image_mobile-applications_zippy_411_0.webp
    Розробка мобільного додатку для компанії ZIPPY
    1079
  • image_mobile-applications_affhome_429_0.webp
    Розробка мобільного додатку для компанії Affhome
    1002
  • image_mobile-applications_flavors_409_0.webp
    Розробка мобільного додатку для компанії FLAVORS
    597

Реалізація Multi-Window для Android: Split-Screen, PiP, Freeform

Розбитий інтерфейс під час перетягування роздільника в Split-Screen — часта скарга користувачів Android 7+. Багато додатків, які роками працювали в повноекранному режимі, при поділі екрана втрачають половину функціоналу: кнопки накладаються, списки не скроляться, відеоплеєр зупиняється. Наш досвід з 15+ проєктами з адаптації UI показує, що коректна підтримка Multi-Window вимагає не просто пари прапорців у маніфесті, а перепроєктування адаптивності з урахуванням усіх трьох режимів: Split-Screen, Picture-in-Picture (PiP) та Freeform. Ми гарантуємо стабільну роботу на всіх форм-факторах — від телефонів до складних пристроїв.

Чому варто додавати підтримку Multi-Window заздалегідь?

Якщо додаток не оголошує android:resizeableActivity="true" явно, починаючи з Android 12 він все одно потрапляє в split-screen — користувач може вручну ввімкнути режим через недокументовані опції. Результат — Activity перестворюється при кожній зміні роздільника, втрачаючи стан. Ми запобігаємо цьому: налаштовуємо configChanges, обробляємо onConfigurationChanged() через WindowMetrics API (API 30+) та застосовуємо WindowSizeClass з androidx.window:window для адаптивного UI. Це гарантує плавну зміну розмірів без втрати даних. Сертифіковані інженери з 7+ років досвіду проводять аудит та впровадження.

Як ми реалізуємо повну підтримку Multi-Window?

Процес включає чотири етапи:

Етап Дії Інструменти
Аналіз Аудит поточного UI на вразливості до зміни розмірів Android Studio Layout Inspector, Device File Explorer
Проєктування Вибір стратегії: configChanges + ручна обробка або повний перехід на Compose з WindowSizeClass androidx.window, Jetpack Compose
Реалізація Налаштування маніфесту, обробка onConfigurationChanged, адаптація layout під Compact/Medium/Expanded Kotlin, XML, Compose
Тестування Перевірка на фізичних пристроях (планшет, складний, десктопний режим ChromeOS) Firebase Test Lab, TestRail

На одному з проєктів для фінансового сервісу ми переписали екран транзакцій на Compose з BoxWithConstraints. Замість хардкоду “якщо ширина > 600dp — показувати дві колонки” використали WindowWidthSizeClass. Після розгортання кількість скарг на нечитабельний інтерфейс у split-screen впала на 30% за місяць — це в 2 рази ефективніше за попередній підхід.

Picture-in-Picture: як не зламати плеєр

PiP актуальний для відеододатків. Ми впроваджуємо enterPictureInPictureMode() з PictureInPictureParams, додаємо RemoteAction для керування відтворенням (пауза, наступний трек). Критична помилка — зупинка плеєра в onStop(). Рішення прапориться через isInPictureInPictureMode:

override fun onStop() { super.onStop() if (!isInPictureInPictureMode) { player.pause() } } 

Колбек onPictureInPictureModeChanged() приховує елементи керування, залишаючи тільки відео. Для приймачів Drag and Drop між вікнами використовуємо View.setOnDragListener() з API 24, а з API 33 — DropHelper з androidx.draganddrop.

Порівняння режимів Multi-Window

Характеристика Split-Screen PiP Freeform
Мінімальний API 24 (Android 7.0) 26 (Android 8.0) 24 (на пристроях ChromeOS)
Розмір вікна Половина екрану, змінюваний перетягуванням Маленьке плаваюче вікно (25% екрану) Довільний розмір, переміщуване
Типове використання Одночасна робота двох додатків Перегляд відео під час інших дій Багатозадачність на великих екранах
Особливості реалізації android:resizeableActivity="true" + configChanges PictureInPictureParams, RemoteAction Freeform не вимагає додаткових дозволів, але потрібне тестування в desktop mode

Для складних пристроїв (Galaxy Z Fold) додатково використовуємо WindowLayoutInfo від androidx.window:window — відстежуємо стан шарніра та адаптуємо UI (half-opened, tabletop mode). Без цієї бібліотеки коректна підтримка неможлива.

Що входить в роботу

Ми надаємо:

  • Аудит поточного коду на вразливості до Multi-Window
  • Налаштування маніфесту та обробки конфігурацій
  • Реалізацію адаптивного UI (Compose або View)
  • Впровадження PiP з RemoteAction
  • Інтеграцію Drag and Drop між вікнами
  • Тестування на 5+ пристроях різних форм-факторів
  • Документацію щодо змін та рекомендації з доробок

Строки: від 3 до 7 днів залежно від складності UI. Оцінка проєкту безкоштовно — пишіть на пошту або через форму на сайті.

Технічні деталі: WindowManager для складних пристроїв

Бібліотека androidx.window:window версії 1.3.x надає WindowInfoTracker, що повертає Flow<WindowLayoutInfo>. Використовуємо його для виявлення folded/half-opened станів. Це особливо важливо для Galaxy Z Fold та інших складних — ігнорування призводить до того, що додаток не реагує на зміну кута шарніра і виглядає "застиглим".

Наш досвід з 5+ проєктами для складних та планшетів показує: якісна підтримка Multi-Window підвищує retention на 10–15% (за даними внутрішньої аналітики клієнтів). Ми використовуємо сертифіковане середовище для тестування на реальних пристроях у Firebase Test Lab. Докладніше в офіційній документації Android Developers: Multi-Window Support.

Висновок

Готовий до Multi-Window додаток — не розкіш, а вимога користувачів Android. Ми налаштовуємо не тільки Split-Screen, а й PiP, Freeform та адаптацію під складні екрани. Зв'яжіться з нами для діагностики вашого проєкту — оцінимо обсяг роботи та запропонуємо рішення під ваш стек.