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-чате.

iOS 7: Прекрасный ужасный интерфейс

Бойтесь своих желаний: в списке “чего хотелось бы” каждой новой версии iOS, чуть ли не с 2008 года, присутствовали радикальные изменения пользовательского интерфейса. Это, в конце концов случилось. В iOS 7. Известный немецкий публицист (имени которого я не помню, извините) в 1935 написал: “до Гитлера нам было хорошо, при нем нам стало лучше, но было бы еще лучше если бы нам снова стало просто хорошо”.

10 июня 2013 года новую версию системы только показали, попасть в руки неблагодарных потребителей она должна была только осенью. И впервые за историю системы реакция на показ была смешанной. В основном не слишком положительной.

Новый интерфейс не был единственным новшеством в системе, в презентации на WWDC Крейг Федериги и Эдди Кью рассказали о некоторых из них – но пользовательский интерфейс затмил все остальные изменения.

Кстати, Крейг теперь курировал разработку всего программного обеспечения компании.

А Джонатан Айв, скорее всего лучший промышленный дизайнер в мире, впервые в жизни взялся за дизайн пользовательского интерфейса. Вдумчиво и самоуверенно, основываясь на концепциях превративших “железо” от Apple в предмет массового подражания.

Крейг Федериги и разработчики OS X нашли убедительные аргументы и смогли отстоять её интерфейс от радикальных перемен. Разработчики iOS, лишившись “своего” Форстолла, не смогли. Десятки ключевых iOS-ников ушли, подписав обязательство “не разглашать”, из-за несогласия с принятыми решениями.

Еще одна частичка Apple осталась в прошлом…

Это двадцать первая часть серии про iPhone и ему подобных, предыдущие части здесь:
Первая часть: MacWorld Expo 2007;
Вторая часть: Touch-интерфейс приходит на iPod;
Третья часть: iPhone для предприятий, iPhone SDK и App Store;
Четвертая часть: Леопард переселяется в iPhone.
Пятая часть: Следующий шаг: iPhone 3G, iPhone OS 2.0 и много чего еще…;
Шестая часть: iPhone OS 2.1, уже не бета-версия…;
Седьмая часть: iPhone OS 3.0 и поле искажения реальности;
Восьмая часть: iPhone 3GS – на 2 грамма легче, в 2 раза быстрее…;
Девятая часть: iPod touch третьего поколения, и другие iPod’ы…;
Десятая часть: iPhone OS 4…;
Одиннадцатая часть: iPhone 4: телефон с криминальным прошлым…;
Двенадцатая часть: iPhone 4: Антеннагейт, утечки и “белая горячка”;
Тринадцатая часть: Стив Джобс: людям нужны кнопки…;
Четырнадцатая часть: iPod touch 4G;
Пятнадцатая часть: iPhone вырывается на свободу…;
Шестнадцатая часть: Apple Special Event 4 октября 2011 года;
Семнадцатая часть: iPhone 4S + iOS 5 = Бэтеригейт?;
Восемнадцатая часть: iOS 6: Дебют Apple Тима Кука;
Девятнадцатая часть: 12.9.12, первое музыкальное событие новой эры;
Двадцатая часть: Что за Swift показала Apple в 2012 году?.

Иная простота…

На первый взгляд, все было предельно просто: у Айва врожденное стремление к простоте и лаконизму. Почти все что было разработано в его группе (с мучительной тщательностью отобранной им из тысяч претендентов) и стало примером для подражания, следовало этим стремлениям.

И возглавив весь дизайн в Apple, он просто распространил те же принципы на интерфейс мобильной операционной системы, не видя существенной разницы между промышленным дизайном и дизайном пользовательских интерфейсов.

Но это на первый взгляд. На второй все было немного иначе и посложней.

Плоский и простой дизайн интерфейсов стал чуть ли не главной тенденцией в начале 10-х годов нового века. Его называли “прагматическим”, обосновали теоретически, и вывели его законы: главное это контент, элементы управления не должны выделяться на его фоне, отвлекать от него внимание.

Скорее всего, широкое распространение “прагматического” интерфейса объяснялось не теорией, о которой большинство практикующих дизайнеров даже не слышали, а обычным и понятным нежеланием заморачиваться лишними сложностями.

Мобильное подразделение Microsoft выбрало этот стиль следуя теории, осмысленно.

Айв, став старшим вице-президентом Apple по дизайну (по всем видам дизайна!), прежде чем что-то ломать в новой для него области, не просто ознакомился с этими теориями, он их внимательно изучил, консультировался с теоретиками, кого-то даже принял в Apple.

По-моему, если бы он просто распространил привычные ему подходы на новую область, и включив интуицию попытался довести её до блеска, результат был бы, как минимум, не хуже.

Ужасы iOS 7

В iOS 6 был настоящий детский сад: изображения предметов из реального мира, обилие хрома, текстур, имитация 3-мерности (выпуклые элементы управления, заметные на фоне остальных частей интерфейса как что-то почти материальное), имитации кожи и дорогой древесины.

В iOS 7 на смену всему этому пришло 2-мерное пространство, с абстрактными картинками на иконках встроенных приложений (часть не имеющие никакой связи с назначением этих приложений), элементы управления как будто нарисованные карандашом, но даже не это было самым ужасным.

Очень многие важные для пользователя действия запускались либо жестами (о которых новичок в этом интерфейсе мог узнать только чудом), либо из секретных меню (секреты доступа к которым как будто специально скрывались от пользователя).

Одни и те же жесты имели разный смысл в зависимости от того, в какой части экрана или конкретного интерфейса они применялись. Например, отличное нововведение Control Center, начиная с iOS 7, случайно, заслоняет от меня экран. Я все понимаю: это сделано для того, чтобы элементы управления не отвлекали мое внимание от того, чем я занят в этот момент.

В Safari (как и во многих других приложениях) элементы управления стыдливо прячутся как только программа понимает что пользователь принялся за чтение контента.

Область в которой перемещение нажатого пальца вверх запускает прокрутку, граничит с областью в которой этот жест выводит на экран Control Center. Ни сами зоны, ни граница между ними, графически не выделены никак.

Это только малая часть несуразностей. Вообще-то, в сегодняшнем тексте мы говорим только о первой презентации новой версии iOS, самое интересное началось 18 сентября когда она вышла в свет, о чем мы поговорим в другой раз.

Едва ли не все кто пользовался iOS, мечтали о радикальных изменениях в её интерфейсе, он и в самом деле оставался практически тем же уже больше пяти лет. Мечты сбылись.

Интерфейс iOS 7, по мнению некоторых критиков, был даже еще более детсадовским чем интерфейс iOS 6.

Но интерфейс iOS 7 не был однозначно ужасным. А сама система – тем более.

О прекрасном

Интерфейс системы и стандартных встроенных приложений изменился, и не всегда в лучшую сторону, но называть его плоским, вообще-то, неправильно. Полупрозрачность (какое отношение она имеет к “ощущению контекста” я так и не понял, но она загадочна, иногда даже красива, а когда не мешает воспринимать реальность – даже безвредна), параллакс (иконки приложений реагируют на изменение ориентации устройства – очень практично!).

Но главное не это. Используемый в качестве системного шрифта Helvetica Neue не только хорошо смотрелся, он еще и меньше утомлял глаза.

Тот кто пользовался системой каждый день, привыкал к iOS 7 за неделю или две. Те кто столкнулся с ней в первый раз, постоянно попадал в безвыходные положения (справку о системе, с подробным изложением всех её секретов, следовало бы включать в систему), но и у них это быстро проходило. Кто-то обязательно показывал им нужные трюки.

После чего система была удобна, понятна и предсказуема.

К “плоскому” интерфейсу, самому по себе, привыкали еще быстрее. А многим он вообще просто и сразу понравился. Ему устроили стоячую овацию.

Крейг Федериги пообещал выход системы “осенью”. Она вышла 18 сентября.

Продолжение следует

Предлагаем подписаться на наш канал в «Яндекс.Дзен». Там вы сможете найти эксклюзивные материалы, которых нет на сайте.

Почему Apple не меняет дизайн iOS

Пять лет назад Apple представила iOS 7. Это было самое масштабное обновление системы, которое полностью изменило её дизайн. Многие ждут момента, когда Apple в очередной раз обновит оформление iOS, но в ближайшее время это не...

WhatsApp прекратит поддержку iOS 7

Команда разработчиков мессенджера WhatsApp объявила о своих планах отказаться от поддержки устаревших платформ в ближайшем будущем. По заверениям компании, это позволит сосредоточить все свои усилия на актуальных операционных системах.

Согласно анонсу в блоге WhatsApp, мессенджер перестанет поддерживать iOS 7 с 1 февраля 2020 года. Такая же участь постигнет и владельцев Android 2.3.7 Gingerbread. Пользователям будет предложено обновиться на актуальное ПО, а в том случае, если это невозможно – приобрести новый смартфон.

Для вышеперечисленных платформ команда WhatsApp сможет лишь гарантировать доставку и получение сообщений вплоть до начала 2020 года. Все остальные функции могут перестать работать в любой момент. Кроме того, приложение с этого момента больше не будет получать обновления с новыми опциями на неактуальных версиях ПО.

Согласно статистике, на iOS 7 сейчас работает около 10,7 миллиона устройств, что составляет около 5% iPhone по всему миру. Что касается Android, то на Gingerbread работает лишь 0,3% смартфонов от общего числа, что составляет около 3,9 миллиона устройств.

Apple заставила обновиться до iOS 7, чтобы сэкономить?

Против Apple часто подают судебные иски, но они, как правило, связаны либо с патентами, либо с проблемами ее устройств, которые обнаруживают пользователи. На этот же раз компанию обвиняют в том, что она силой заставила владельцев iPhone обновиться с iOS 6 до iOS 7, причем использовала для этого неожиданный инструмент.

Как пишет MacRumors, истец считает, что Apple специально «сломала» функцию FaceTime в iOS 6, чтобы пользователи скорее обновились до iOS 7. В 2010 году, когда FaceTime был запущен, компания использовала два метода соединения — один был основан на прямом подключении устройств, другой использовал сервера оператора Akamai.

Когда в 2012 году оказалось, что подключение «peer-to-peer» в FaceTime нарушает патенты компании VirnetX, Apple полностью перевела сервис на мощности Akamai и за год после этого заплатила компании 50 миллионов долларов. Разумеется, в корпорации решили избавиться от посредника и минимизировать издержки, поэтому разработали новую технологию подключения, которая появилась в iOS 7.

Пользователи обвиняют Apple в том, что она намеренно создала ложный баг о недействительности цифрового сертификата с 16 апреля 2014 года, что приводило к неработоспособности FaceTime. Чтобы исправить ситуацию, компания советовала установить новейшую версию ПО — тогда это была iOS 7. Конечно, чтобы продолжать пользоваться сервисом, многие обновили свои устройства — в частности, iPhone 4 и iPhone 4s.

Обвинения серьезные, и пока не совсем понятно, как истец собирается доказывать свою правоту в суде.