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: Swift;
Пятая часть: 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-чате.

https://appleinsider.ru