WWDC 2014: Чистилище скасовується

Всі легальні iOS-програми, перш ніж потрапити на полиці App Store, пройшли через iTunes Connect (iTC). З 2008 по 2014 роки iTC був справжнім чистилищем. Повільний, незручний, недолугий і неймовірно неестетичний інтерфейс. Змін вже навіть не чекали. Їх втомилися чекати. І раптом, у червні 2014 року, все змінилося. Про колишній iTC ніхто і ніколи не сказав жодного доброго слова. Не дивно. Ваяли його в страшному поспіху, явно не майстра, дизайном інтерфейсів не займався ніхто, і неважко зрозуміти чому. У творців App Store і його інфраструктури були куди більш важливі завдання, виконати будь-яку з них гірше ніж ідеально було б просто безглуздо - а часу не було зовсім.

Рішення опублікувати iPhone SDK і створити App Store було спонтанним і несподіваним. Все це потрібно було робити роки на два або на три раніше. Планомірно і з розумом. Хотіли ж як краще.


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

Прикинули навантаження на розроблювану інфраструктуру. На підставі обсягу продажів і враховуючи зростання попиту на iPhone через сторонні програми. Про всяк випадок, вирішили орієнтуватися на ще більше навантаження - про всяк випадок. Часу конструювати щось складне і масштабоване не було. Зважилися ризикнути.

Кілька місяців App Store працював у налагоджувальному режимі. Навантаження обмежували, в iOS Developer Program реєстрували тільки тих хто постійно жив у США, і багатьом з них теж відмовили, запропонувавши спробувати ще раз, коли закінчиться налагодження. Про тих, хто працював «по той бік» процесу, дізнатися як все це було не вдалося (мовчать), але проблем було багато, часто вся ця затія висіла на волосині. Трохи залишилося, можна потерпіти.

А як тільки комплекс App Store - iTC - Портал розробників запрацював на повну силу, навантаження на нього негайно перевищило очікуване, і продовжила рости, з прискоренням.

Творці iPhone і App Store, схоже, догралися і запустили ланцюгову реакцію жахливої потужності і невідомої природи. Знову було не до інтерфейсу, iTC обріс заплатками як днище мушлями - і виправити ситуацію могла тільки розробка його з нуля. Заплатки плодилися, аврал не закінчувався, здавалося що так буде завжди. До нього звикли.

І раптом, у червні 2014, Apple показала радикально оновлений iTC. Навіть публіці. Зовсім інший - живий і зручний. Учасникам конференції його представили в подробицях, чим викликали захват і овації. Все це було здорово, але лякало: що сталося? Потік вичерпався? У чому підступ?


Жахи і чистилище пішли в минуле. Ніхто не здогадався зберегти ці гулкі каземати і канцелярську тупість, які тиснуть на психіку. Адже не повірять...

Це продовження серії про WWDC 2014, попередні частини тут:

Перша частина: WWDC 2014: за версією Apple, 25-та WWDC;
Друга частина: WWDC 2014: Згадуючи QuickDraw 3D
; Третя частина: WWDC 2014: Metal - це дуже серйозно
; четвертачастина: WWDC 2014: Swi
ft; П'ята частина: WWDC 2014: Безперервність (Continuity).

Інтерфейс

У загадковому останньому номері журналу develop (він існував тільки в електронній формі, прийшов разом з розсилкою «для службового користування», я його читав і ось вже не одне десятиліття (!) не можу знайти, була відмінна стаття про UI (User Interface). Автор писав: «інтерфейс поганий якщо він змушує розумних людей відчувати себе ідіотами».

І ілюстрував свою думку переконливими прикладами. А ось їх я не пам'ятаю.

У старому iTC інтерфейс міг додати в той список ще кілька прикладів, але як ви вже зрозуміли, ним просто ніхто всерйоз не займався. Тепер інтерфейс був. Під капотом теж все змінилося - незалежно від навантаження (воно продовжувало рости, ніякого спаду і близько не було) тепер все працювало. Як якби цей web-додаток було написано для самих звичайних користувачів, що приносять компанії прибуток. А якщо подумати, так воно і було.

iTunes Connect зразка 2014 року не був ідеальним web-додатком, але разом з ним у ще одну частинку наших життів повернувся здоровий глузд. Можливо, його оновлення пов'язане з придбанням Apple на початку 2014 року однієї компанії, про яку я розповім детальніше трохи нижче.


Зв'язки додатків, аналітика і «чого зволите?»

У 2010 або 2011 один з проектів помер не почавшись: клієнту потрібен був не один iOS-додаток, а кілька. У його цільовій аудиторії були користувачі декількох типів, двох або трьох - для кожного з них був потрібен свій набір. Старі солдатські способи (купувати в App Store необхідні набори вручну, реалізувати набори функцій у вигляді додатків тощо) клієнта не влаштовували.

В iTC 2010 року зв'язки з декількох додатків не підтримувалися, отже їх не могло бути і в App Store. В iTunes Connect зразка 2014 року це стало можливо.

Технічний менеджер проекту iTC Дейв ван Тассел з явним задоволенням показував як це робиться. До 10 додатків (з одного аккаунта, які пройшли перевірку в App Store) тепер можна було об'єднати в bundle, перекладу це як «зв'язка».

Процес створення зв'язки запускався «натисканням» кнопки «New Bundle». Розробники iTC явно не читали Apple Human Interface Guidelines, або не знали що «New» - не дієслово. Це я бурчу. Кнопка - це дія, дія це дієслово. Взагалі-то вимога розумна.

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


Розташування програм у списку змінювалося перетягуванням. Треба ж, UI в iTC!

У зв'язки було власне ім'я, своя ціна (менша ніж сумарна ціна компонентів), а встановлювалися додатки зв'язки одночасно, в один дотик.

Минулий час я використовую через те, що розповідаю про iTC 2014 року. В даному випадку підійшло б і сьогодення, в більшості випадків.

До TestFlight

Про те що таке бета-тестування (тестування бета-версій), розповідати не буду. Це те, чого в принципі не може бути занадто багато.

До 2014 року організувати бета-тестування iOS-додатків було складно.


Якщо у вас один або два додатки, а в команді розробників осіб десять (разом з начальником і штатними тестувальниками), особливих проблем не виникало. iOS-пристрої учасників розробки вносилися до списку - тестований додаток встановлювався тільки на пристрої зазначені в списку. Встановлювалося вручну. Не обходилося без улюблених в народі танців з бубном, але в основному все було досить просто.

Пристрої всіх тестувальників ззовні теж повинні були включатися в цей список. Для цього тестувальник повинен був надіслати UDID (унікальний ідентифікатор) пристроїв на яких він збирається тестувати додаток, які включалися до списку, для всіх з них в iTC генерувалися provision profiles, і разом з інструкцією про те що і як треба зробити для їх встановлення, відсилалися тестувальнику.

У список могло бути внесено тільки 100 пристроїв. При вилученні запису зі списку місце, яке вона займала, продовжувало вважатися зайнятим. Звільнити список від віддалених записів можна було один раз на рік. Після чергової оплати членства в iOS Development Program, але до першого внесення в цей список нового запису. Жорстко?

Якщо у вас десятки проектів, 30 осіб (50 пристроїв), а замовники кожного з проектів замість двох-трьох UDID (як би їх не просили) надсилають по п'ять-шість - як бути?

Викручувалися. Містили кілька акаунтів (99 доларів на рік за кожен, плюс купа логістичних складнощів) - потреба змусить і не так розкорячишся.


Походження TestFlight

На початку 2014 року Apple придбала компанію Burstly, що виробляла в тому числі і TestFlight, додаток для iOS і Android, що полегшувало бета-тестування, разом з персоналом.

Додаток TestFlight було розміщено в App Store і Google Play наприкінці грудня 2010 року. Розробили його Трістан Козмінка і Бенджамін Сеттерфілд. Додаток і всю інфраструктуру необхідну для його роботи в 2012 році придбала компанія Burstly.

А на початку 2014 року Apple вибрала саме їх (на ринок подібні продукти постачали сотні компаній, це був дуже затребуваний товар), закрила всі проекти для Android, і проекти TestPath (аналітика) і SkyRocket (управління монетизацією мобільних проектів).

Команді з Burstly доручили розробку (з нуля) нового iTC. Трістану Козмінка доручили розробку App Analytics, технічним менеджером команди став виходець з Burstly Дейв ван Тассел.

Сума за яку Apple придбала Burstly невідома. Швидше за все мільйонів за десять доларів - в 2013 компанія «коштувала» 7,3 мільйона.

Тобто, Apple (як завжди) вкрала цю програму. За гроші. Крім жартів, їх звинувачували в цьому. Нікому не розповідайте про те, що ви постійно, крадете продукти з магазинів, залишаючи натомість презрені гроші. Я знаю, що ви це робите. Я і сам не без гріха.

TestFlight в iTC

У червні 2014 року Apple оголосила TestFlight. Це iOS-додаток, що працює в тісній взаємодії з iTunes Connect. iOS-додаток, як і організація бета-тестування, безкоштовні.

Для додавання бета-тестувальника обмін UDID і Provision Profile більше не був потрібен. Все що для цього потрібно було - адреса електронної пошти тестувальника.

Відправляти релізи вручну теж більше не потрібно. Їх отримувала і встановлювала на пристрої (на стільки пристроїв, скільки потрібно - обмежувалося число тестувальників, не пристроїв) програма TestFlight.

Обмеження? Знову?

З точки зору TestFlight, тестувальники ділилися на дві категорії: на внутрішніх (тих, хто внесений до списку акаунта iTC), до 25 осіб; і зовнішніх, число яких у 2014 році було обмежено однією тисячею.

Внутрішнє тестування можна було починати відразу, зареєструвавши додаток як бета-версію на iTC. Для зовнішнього тестування потрібно було пройти перевірку, таку ж яка необхідна для розміщення в App Store. Це кілька днів, можлива відмова, все таке - але таке життя.

Сервіс в iTC відповідальний за тестування відстежував дії тестерів: чи отримали запрошення, чи активували його, чи встановили додаток і чи запускали його взагалі.

У 2014 число зовнішніх бета-тестувальників обмежили 1000 осіб, потім збільшили його до 2000, зараз їх кількість зросла до 10 000.

На одному акаунті можна одночасно тестувати до 100 додатків. Є й інші обмеження, але про них читайте в документації.

Продовження слід

Обговорити історію Apple ви можете в нашому Telegram-чаті.

COM_SPPAGEBUILDER_NO_ITEMS_FOUND