AppleInsider.ru
X
О проекте Реклама
Чат
с читателями
Присоединяйтесь
в Телеграме

iPhone OS: исправление ошибок (Xcode 3.1 и Xcode 4)

Objective-C приближался к первой тройке самых популярных языков программирования, из пишущих программы для iPhone OS лишь каждый пятый имел опыта программирования для OS X, App Store превращался в Клондайк XXI века. Пришло время создавать лучшую в мире среду разработки, срочно и любой ценой, Xcode 4. А чем была плоха старая?

Публичный iPhone SDK (инструментарий и библиотеки для разработчиков) не планировали, его не должно было быть – новорожденное устройство было нежным и хрупким, допустить в его недра толпы посторонних было страшно, тем более цифровая нечисть неудержимо и непобедимо захватывала мир.

Но сила притяжения новой платформы была настолько мощной, а сам iPhone, при всей его магии, был продуктом земных технологий, что через полтора-два месяца после начала его продаж в сети можно было прочитать, в деталях, как он устроен, как добраться до кода его программ (а архитектура команд ARMv7 была широко известна в отрасли), суть всех тайн была раскрыта.

Через очень короткое время на смену примитивным программам “hello world” пришли уже самые настоящие приложения, превращавшие iPhone в нечто еще более невероятное. И, в октябре 2007 года Стив признал свою ошибку, и пообещал раскрыть все тайны в начале следующего года. Зимой.

Публичный iPhone SDK не планировался и всерьез не проектировался. Сотрудники Apple использовали для разработки операционной системы и прикладных программ для неё что-то вроде строительных лесов вокруг здания. Что требовало специальной подготовки, и для обычных программистов было неприемлемо.

Теперь же, в кратчайший срок (лучше всего “позавчера”) нужно было создать этот самый iPhone SDK, закрывая глаза на неизбежные пока недостатки и упрощая все что можно. Но самое важное: комплекс разработчика должен впечатлять, внушать ощущение простоты и легкости, быть безумно великим – несмотря на невероятно сжатые сроки.

Главное – успеть. Потом все сделаем заново, тщательно и методично, учитывая замечания и пожелания. Пока делаем красиво и чтобы работало – в принципе.

Акценты в безумном проекте расставил Стив, конкретные задачи ставил Скотт Форстолл, остальное можете представить себе сами…

Миссия невыполнима

Это был не первый и не последний случай применения “яблочного аналога Turbo Boost”, когда значительная часть подразделений компании приостанавливали работу над своими задачами и включались в состав команд занимающихся компонентами безумно великого проекта, близких к их области компетенции.

Не пытайтесь повторить это. Как и почему у них это срабатывало, я не знаю – наверное, у них были какие-то секретные технологии воздействия на людей, потому что по банальной человеческой логике все это просто не могло сработать. Что-то очень важное, что обычно упускается, они не упускали. Индейская магия?

Вводные были еще более жесткими, чем в предыдущих случаях – будет что вспомнить!

Они успели. Всё получилось даже лучше, чем ожидалось. Не подвели. App Store, среда разработки и уникальный способ их распространения превратили разработку программ для iPhone в настоящий Клондайк. А iPhone – в бестселлер и образец для подражания.

Но это лицевая сторона медали. Была и оборотная.

Цена победы

То, что называлось iPhone SDK, состояло из нескольких компонентов.

Самым легким компонентом были библиотеки. Отлаженные за несколько лет до состояния близкого к идеальному, они не требовали радикальных изменений. Нужно было скрыть от обычного программиста все что способно навредить системе, кое-что упростить. Вышло не идеально, но прилично.

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

Самым сложным оказалось превратить те самые “строительные леса” в органичную часть Xcode, среды разработки – для чего пришлось ломать стены, разрушать коммуникации и прокладывать новые. Спешка, как это всегда бывает, приводила к ошибкам, исправление которых порождало целые каскады новых, путаница наслаивалась на путаницу.

То, во что превратился Xcode после невыполнимой миссии, было ужасно – но он работал. Первые сотни тысяч программ появившихся в App Store были разработаны в Xcode 3.x, и многие сотни из них были фантастически хороши.

Проект Marble

Во второй половине 2008 года мобилизованные сотрудники вернулись к своим задачам, готовые в любой момент, по первому зову, снова принять участие в чем-нибудь безумно великом, а DTBU (Developer Tools Business Unit) поручили разработать (заново, тщательно и методично) новую среду разработки. Проекту присвоили кодовое наименование Marble (мрамор). Стив всегда выполнял свои обещания.

В 2010 году проект Marble впервые показали публично, участникам WWDC. Это был не Xcode, продукт отличался от прежних версий Xcode больше чем самый первый Xcode в 2003 году отличался от последней версии Project Builder – но те кому положено думать об именах и названиях уже приняли решение: Marble объявили как Xcode 4.

В 2011 году бета-версии Xcode 4 стали доступны разработчикам зарегистрированным на Apple, на условиях конфиденциальности. Поэтому в большом мире никто не узнал о самом настоящем цунами возмущения, которое обрушилось на тему “Xcode 4” закрытого форума Apple для разработчиков.

В первой бете было огромное количество багов, были нестыковки и неудачные решения, о них тоже писали – но главной болевой точкой было другое. Все изменилось. Все было не так, как раньше. Старые привычки больше не работали. Плагины не поддерживались, и по словам разработчиков Xcode даже не планировались (потом они все-таки появились).

Даже клавиатурные эквиваленты команд поменялись. Интерфейс стал “одно-оконным”, точнее окон стало намного меньше, чем раньше – но не спешите делать выводы, детали и подробности сообщу в отдельном опусе, если это кому-нибудь интересно.

Это была совершенно новая среда разработки. Моим первым впечатлением были шок и ужас – я, живший в Xcode разных версий и в Project Builder уже более десяти лет ничего не понимал. Как всегда, попробовал набросать простенькую программу. И быстро запутался в трех соснах.

Нового было много. Например, Interface Builder (программа компоновки пользовательских интерфейсов из настоящих “живых” объектов) стала частью основного приложения среды разработки, теперь интерфейсные файлы можно было открывать в соседних панелях и даже привязывать элементы управления к исходному коду обычным “левым кликом” и перетаскиванием от источника связи к получателю (простите за интимные подробности). Это было настолько здорово и неожиданно! Было бы здорово, если бы не глюки. Глюков в первой бете было запредельно много. Но на то она и бета.

Шок вскоре прошел. По мере привыкания я впадал в противоположную крайность. Время от времени мне приходилось возвращаться в Xcode 3.2.х, где новшеств вызывавших у меня оторопь и возмущение в первые часы знакомства с Xcode 4 мне уже очень не хватало.

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

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

Новости по теме
The Birds Voice — новый Т-Банк для iPhone. Качаем, пока не удалили из App Store
Зачем WhatsApp предлагает создать ключ доступа и как это сделать на iPhone
Из App Store удалили новый Сбербанк Онлайн под названием «Финансы Онлайн». Он продержался в магазине Apple почти 5 дней!
Новости партнеров
Почему мы просыпаемся за несколько минут до будильника?
Почему мы просыпаемся за несколько минут до будильника?
Период охлаждения SIM-карт в России: что это такое, сколько действует и как выключить
Период охлаждения SIM-карт в России: что это такое, сколько действует и как выключить
Биткоин взял уровень 92 тысяч долларов. От чего зависит поведение криптовалюты до конца 2025 года?
Биткоин взял уровень 92 тысяч долларов. От чего зависит поведение криптовалюты до конца 2025 года?