Technologies

INTENTS

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

 

Наприклад, коли ви наводите камеру на QR-код з меню ресторану і вас перенаправляє в браузер, то перехід можливий завдяки цій структурі. Або коли ви пересилаєте фото з галереї в редактор, а з нього в месенджер, то кожна з цих програм використовує Intents. Якщо ви не можете вибрати в списку, що випадає в додатку, те, куди хочете відправити файл, значить, розробники програми не передбачили взаємозв’язок і не використали інтент.

Що таке Intents і як це працює

В офіційній документації Android, інтент — об’єкти класу для обміну повідомленнями, які можна використовувати для запиту дії від іншого компонента програми. Intents використовуються для запуску: дій, у тому числі дочірніх, (Activity) і сервісів (Service) — тобто будь-яких функцій і інших програм. Вони можуть бути:

01
Явними

Explicit, коли цільовий компонент визначає сам додаток.

02
Неявними

Implicit, коли операційна система оцінює доступні компоненти і вибирає підходяще.

Наприклад, якщо вам прислали посилання на YouTube відео, то за наявності однойменної програми воно автоматично відкриється в ньому завдяки Explicit Intents. Якщо додатка немає або вам прислали, наприклад, текстовий документ, то Implicit Intents відкриє його в потрібному для читання додатку. Крім того, вам будуть доступні варіанти пересилання файлу в інші програми, якими ви користуєтеся, заздалегідь відфільтрованими за тегом intent-filter, у вигляді списку. Водночас, залежно від обраної програми, стануть доступні інші дії, наприклад, вибір контакту в месенджері або типу публікації в соціальній мережі. Для кожного з цих взаємодій створюється окремий Intent.

3 причини використовувати Intents у своєму проєкті
01
01
Поліпшити призначений для користувача досвід

Intens однаково важливі для зовнішніх взаємодій, таких, як можливість ділиться, чим завгодно в соціальних мережах, так і для внутрішніх, щоби зручно пересилати контент між додатками на смартфоні або планшеті. Доступ до карт, установка розширень, спільна робота — тільки мала частина того, що неможливо без інтентів.

02
02
Розширити сервіс

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

03
03
Створити екосистему

Intens завжди були частиною коду Android, а починаючи з iOS 6 вони працюють і в додатках для цієї операційної системи. Поширення намірів стало потрібно для підвищення зручності роботи не тільки зі смартфоном, але і з іншими пристроями, як простою Bluetooth-гарнітурою, для підключення до неї, так і для більш складними пристроями. Google і Apple дають розробникам докладні інструкції, як за допомогою Intens налаштувати взаємодію додатку зі смартгодинниками й розумними колонками. Intens в такому випадку використовуються для організації роботи з голосовим управлінням Google Assistant і Siri. Зрозуміло, це може працювати не тільки для встановлених за замовчуванням фірмових додатків, але і для будь-яких інших, чиї розробники хочуть вписати свій софт в екосистему.

Висновок

Intents — обов’язкова частина будь-якої програми, яка відповідає за можливість взаємодіяти з іншими програмами й сервісами. Фактично, навіть найпростіший додаток, як календар або список покупок, зараз однаково потребують інтентів для того, щоби користувач міг додавати мапу проїзду до події або ділиться переліком потрібного із сім’єю. Саме Intents уможливлюють онлайн-оплату, управління голосом, спільну роботу й тисячі інших простих і дуже складних функцій.

Розробка мобільних додатків
Розробка мобільних додатків

Створюємо мобільні додатки, які вирішують бізнес-задачі клієнтів та спрощують життя користувачів. Навіть якщо ці задачі — із зірочкою. Доставляємо їх у кожну долоньку та кишеню.