iOS 9: нова віха в історії мобільних додатків

Нещодавно ми писали про те, як Apple збирається раз і назавжди змінити уявлення про пошук інформації. Тоді йшлося про новий Spotlight, одне з ключових нововведень iOS 9, покликане зробити її більш незалежною від головного конкурента Купертіно - Google. Однак на WWDC 2015 було продемонстровано й інші, не менш цікаві новинки, про які хотілося б поговорити детальніше.

Вже давно програми iOS дозволяють відкривати посилання самостійно, не вимагаючи для цього фірмового Safari. Достатньо натиснути на посилання в клієнті для соціальної мережі або агрегаторі новин - і вбудований браузер відобразить вміст сторінки. За час існування цієї функції вона встигла перетворитися на якусь подобу стандарту, проте зручність її залишає бажати кращого. Наприклад, у таких браузерах доводиться заново вводити паролі, відсутнє форматування під невеликі екрани, всілякі режими читання і тому подібні звичні сьогодні речі. Корпорація Apple усвідомлює проблему і пропонує цікавий спосіб її вирішення, який обіцяє ні мало ні багато зрівняти можливості Safari і міні-браузерів сторонніх додатків. Все, що потрібно від розробника - бажання використовувати новий інструментарій. Але спочатку зробимо невеликий екскурс в минуле.


Програми всіх країн, єднайтеся

Протягом всієї історії iOS програмна і веб-складова намагалися якось уживатися між собою. З самої появи магазину App Store в 2008 році Apple дозволяє програмістам відображати веб-вміст всередині своїх додатків, і в більшості випадків це відбувається за допомогою простого API під назвою UIWebViews. Минаючи Safari, розробники можуть розширювати функціональність своїх продуктів за допомогою веб-технологій, завдяки чому користувачам не потрібно перемикатися між програмою і браузером. Крім того, автори нерідко додають власні функції, наприклад, кнопки соцмереж або фотохостингів.

З виходом версії 4.3 в 2011 році на iOS прийшов движок Nitro, заснований на технології JavaScript і дозволив значно підвищити швидкість відмальовки «складних» сайтів. На жаль для сторонніх розробників, сфера застосування новинки обмежувалася Safari, що було сприйнято багатьма ентузіастами як нав'язування стандартного додатку. Іншої думки дотримувався відомий блогер Джон Грубер: на його погляд, такий крок Apple був обумовлений самою основою Nitro. Справа в тому, що рушій описував збережені в оперативній пам'яті сторінки як виконувані елементи, а ця функція була недоступна для стороннього ПЗ з міркувань безпеки. Зробивши Nitro «ексклюзивом» Safari, виробник убив двох зайців, підвищивши якість веб-серфінгу і зберігши при цьому повний контроль над тим, що відбувається. Як би там не було, більшість сторонніх рішень хоча і перевершували рішення від Apple в кількості потрібних і не дуже опцій, але зазвичай програвали йому в зручності і стабільності роботи.

Побічні ефекти проявилися не відразу. Протягом трьох наступних років стала очевидною нерівність вбудованого браузера і завантажуваних з App Store додатків з простої причини: останні працювали як і раніше, а ось Safari значно додав у швидкості. Зі зростанням популярності сторонніх програм різниця стала доставляти незручності користувачам, які проводили все більше часу в різних додатках, і на торішній WWDC Apple представила WKWebView - новий API, покликаний забезпечити розробниками порівнянну з Safari продуктивність. По суті справи, новинка ґрунтувалася на тому ж Nitro, а серед її функцій значилися вбудована підтримка жестів і прокрутка сторінок в режимі 60 кадрів в секунду. Програмістам сподобалася ідея, і незабаром багато з них оновили свої програми, задіявши новий інтерфейс. WKWbView навіть назвали «наріжним каменем» сучасного WebKit, API, за допомогою якого відображається веб-вміст на iOS.


Втім, проблема не була вирішена повністю. З тих самих міркувань безпеки «за бортом» залишилося автозаповнення форм і доступ до «Зв'язки ключів», що, як і раніше, змушувало користувачів час від часу вручну переходити до звичного браузера. Крім того, сам інтерфейс Safari виглядає банально продуманішим і акуратнішим, ніж багато вбудованих у додатки інструментів - наприклад, більшість з них не відображають навіть адресу веб-сайту. За відсутності окремої кнопки тут не вдасться і скопіювати посилання. Загалом і загалом міні-браузери, незважаючи на еволюційні поліпшення, все одно залишаються компромісними рішеннями, або як прийнято говорити в середовищі ПК - своєрідними «милицями».

Змінити стан справ на краще покликана iOS 9, в якій Apple пропонує простий вихід із ситуації під назвою Safari View Controller. Давайте подивимося, що ж він із себе представляє.

Safari, настав твій час


За великим рахунком, нововведення дозволяє розробникам повністю позбутися необхідності використовувати вбудовані браузери. Цей компонент дозволяє програмам безпосередньо і безпечно передавати контент самому Safari, а його інтерфейс виглядає майже ідентично вікну браузера. Фактично, за натисканням на посилання в оснащеному підтримкою View Controller програмі користувач отримує звичайне вікно зі звичними кнопками і адресним рядком. Візуальних відмінностей тут дві: сам рядок буде виділено сірим, а на панелі інструментів з'являється кнопка Safari, яка дозволить перейти до переглядача в традиційному режимі.


Цікаво, що тільки лише комфортною роботою зі сторінками переваги новинки не вичерпуються. Останнім часом Apple активно йде назустріч розробникам, і View Controller не став винятком. Яким чином? Елементарно - переклавши все на могутні плечі наявного на всіх iOS-пристроях Safari, програмісти можуть зосередитися на «оригінальній частині» програми, приділяючи більше уваги його функціям і стабільності. Деякі фахівці, які відвідали семінар з View Controller на конференції WWDC, вже оцінили плюси технології. Так, за словами Тобіаса Тімердінга з компанії 2T App Develompent, скасування необхідності написання свого браузера зменшує кількість можливих збоїв у додатках, і що важливо, додає всім їм уніфікований в системному стилі вид.

Водночас Купертіно традиційно печеться про конфіденційність даних користувача. Для цього View Controller виконується в окремому процесі, який не передає основній програмі ні адреси URL, ні історію переходів по сторінках. Завдяки цьому інформація просто не виходить за межі Safari - разючий контраст з відкритими ОС, де в прагненні догодити всім і вся розробники часом забувають про елементарні заходи обережності. Наслідком такого підходу є доступ View Controller до «секретів» Safari, таких як cookies, збережені паролі і номери кредитних карт, що виключає необхідність повторної авторизації. Просто і елегантно - при переході за посиланням остання буде проведена автоматично, і користувачеві не доведеться довіряти свої дані сумнівному сторонньому додатку. А тепер уявіть, наскільки простіше стане користуватися такими сервісами, як соцмережі або інтернет-магазини. Навіть якщо ви працюєте в сторонньому додатку, зайві рухи будуть зведені до мінімуму.


View Controller будуть доступні також дані автозаповнення і режим читання, що значно спрощує читання неоптимізованих для мобільних браузерів сторінок. Не знаю, як дорогих читачів, але вашого покірного слугу остання новина однозначно радує, про що я вже говорив у попередньому матеріалі про новинки «під капотом» iOS. Ще б пак: рідери RSS позбудуться «кастрованого» режиму, при якому доводиться вдивлятися в мікроскопічний текст, або ж збільшувати кожні кілька рядків окремо. Погодьтеся, і те, і інше - задоволення серйозно нижче середнього. Але і це ще не все. У продовження теми безпеки View Controller оснащується детектором фішингових (підроблених) сторінок, і найголовніше - підтримкою розширень для блокування вмісту. Тобто, якщо нав'язливі банери відсікаються в Safari, те ж саме відбудеться і на сторінках всередині програми. Зрозуміло, функцію можна буде вимкнути в налаштуваннях.

Закон підлості

Незважаючи на очевидні переваги і ентузіазм розробників, у нового інструменту купертинівців є і свої спірні моменти. Наприклад, деякі програми можуть похвалитися вельми просунутим набором функцій, реалізованих у вбудованих браузерах, і перехід до пропріетарного рішення від Apple може завдати серйозної шкоди їх індивідуальності. До таких програм належить, наприклад, відмінний RSS-рідер Unread. Міні-браузер цього додатку оснащений широкими можливостями кастомізації і розпізнавання жестів, що ставить авторів перед нелегким вибором.

Турбують програмістів та інші нюанси. Ендрю Мілхем, автор популярного «подарункового» додатка GiftPlanner, побоюється, що View Controller не допоможе Apple досягти задуманого через відсутність налаштовуваного інтерфейсу і «кастомні» дії. Наприклад, у його продукті користувач може вибрати зображення з веб-сайту як превью для подарунка, що стане неможливим при використанні View Controller. Втім, обмежена кастомізація, яку багато хто називав мало не фатальною помилкою, аж ніяк не заважає популярності iOS, а тенденція, що намітилася останнім часом, демонструє, що Apple вміє балансувати на двох стільцях і поступово додає відсутні функції в міру появи можливості не порушувати при цьому загальної концепції системи і не зачіпати її традиційно сильних сторін. Той же Мілхем зазначає, що переваги View Controller значно перевершують його недоліки і збирається впроваджувати підтримку інструменту вже з виходом iOS 9.

Ситуацію розуміють і в Apple: компанія рекомендує розробникам, які потребують великої кількості спеціальних елементів, дотримуватися традиційного підходу. Ймовірно, навіть після того, як нова технологія пошириться в середовищі програмістів, деякі «важковаговики» працюватимуть «по-старому», вбудовуючи власні міні-браузери. У всякому разі, поки View Controller, який, по суті, є пробою пера, не обросте необхідною функціональністю.


Існує і ще одна категорія розробників, яким нововведення Apple можуть бути не з руки. Клієнти Twitter і Facebook, одні з найпопулярніших додатків в App Store, не використовують стандартні можливості «шарингу» iOS, ускладнюючи збереження зображень або посилань на пости в конкуруючі сервіси. Не сподобається нова концепція і пошуковим компаніям на кшталт Google, адже View Controller ізолює контент, що відображається, не дозволяючи додатку збирати інформацію про активність користувача. Упевнений, нинішня поведінка програм тільки дратує «юзерів», і якщо сервісам доведеться влитися в загальний потік і перейти на універсальну модель, велика частина аудиторії буде це схвалювати. Наприклад, для того ж Facebook це означає втрату можливості відстежувати переходи за посиланнями з метою показувати набридлу всім рекламу, а Google не зможе стежити за переміщеннями користувача Gmail. І хтось ще сумнівається в серйозному підході Apple до конфіденційності?



Самим користувачам, втім, ще належить звикнути до зручності і безпеки серфінгу всередині додатків. Через незначні відмінності в інтерфейсах недосвідчені власники iOS-пристроїв можуть «заплутатися» на перших порах. У всякому разі, поява автозаповнення паролів і кредитних карт явно їх насторожить.

«На закуску» можна припустити, що можливість завантаження файлів з веб-сторінок за допомогою вбудованого менеджера навряд чи з'явиться в Safari View Controller відразу після виходу. Швидше за все, Apple розгляне додавання цієї опції, але в який термін - сказати складно. Це відлякає від неї авторів програм для скачування файлів, адже без повноцінного управління завантаженнями нововведення стає для них марним.

У сухому залишку легко простежити прагнення Apple до поліпшення приватності, продуктивності, а також якоїсь «однорідності» як додатків, так і самої платформи з мінімальним збитком для кожної зі сторін, і Safari View Controller можна назвати втіленням цієї стратегії.

Безумовно, у рішення є деякі «дитячі хвороби», властиві новим інструментам, однак ці проблеми зазвичай вирішуються з часом, а деякі нюанси просто входять у звичку. Очевидно тут одне: за допомогою View Controller Apple серйозно спрощує життя тій самій більшості як розробників, багато з яких давно хотіли чогось подібного, так і користувачів, що зачекалися змін у звичній щоденній роботі. Якщо першим не доведеться створювати власний браузер «з нуля», то останнім - пожинати плоди подібної самодіяльності. Якщо вірити розробникам, вже до кінця цього року функція отримає широке поширення, і можна сподіватися, що в сукупності з новим Spotlight користувальницький досвід iOS серйозно зміниться. Зрозуміло, на краще.

COM_SPPAGEBUILDER_NO_ITEMS_FOUND