Начало Xcode

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

В конце 90-х, представители Metrowerks, производителя самого популярного и всеми любимого CodeWarrior, попытались договориться с Apple о взаимопомощи и поддержке. В течение многих лет Apple сама использовала в разработке программного обеспечения, и даже операционных систем, инструменты со стороны.

Для сохранения лица, финальные сборки строились местными орудиями труда, но общий кризис, назревающий в компании, крайне негативно сказывался на разработке средств разработки. Похоже, то что рассказывал мне один бывший «инструментальщик» Apple, похоже на правду: группа финансировалась по остаточному принципу, уровень зарплат был ниже чем в других подразделениях компании, и лучшие уходили.

Переговоры с Джобсом закончились приобретением Metrowerks микропроцессорным отделением Motorola.

CodeWarrior был лучше чем Project Builder, хотя сравнивать сложные объекты на лучше-хуже настолько же некорректно, как сравнивать координаты точек на плоскости по величине, в этом конкретном случае, увы, такое сравнение имело смысл. CodeWarrior генерировал более компактный и эффективный код, его пользовательский интерфейс был удобнее, да и выглядел симпатичнее, а служба технической поддержки интересовалась проблемами своих клиентов как если бы это было самым важным для компании.

Но…Стив так решил…

Независимость Apple от сторонних средств разработки

Ещё во времена NeXT, Стив пришёл к выводу что у серьезной компании, разрабатывающей оригинальную (в смысле, ни на какую другую систему не похожую) платформу, должны быть свои собственные средства разработки.

Прав он или не прав, я не знаю, но вопрос этот действительно критичный, даже у Be Inc был свой инструментарий. В процессе разработки действительно возникают ситуации, когда среда разработки из-за каких-нибудь внутренних ограничений или багов мешает решению важных задач.

И даже если поставщик средств разработки внимательно прислушивается к проблемам клиентов, как Metrowerks, и пытается помочь, это не то же самое. Круг посвящённых в интимные подробности совершенно секретных проектов, какие бы меры не принимались для сохранения тайны, неминуемо расширился бы, и это ещё не самая большая беда.

В любом случае, Стив твёрдо решил превратить Project Builder в официальную и самую важную среду разработки для Mac’ов и честно предупредил об этом Metrowerks. Никто не станет мешать продавать CodeWarrior Carbon-разработчикам, но ни о каких соглашениях не может быть речи. Apple нужна собственная адекватная среда разработки, и она у неё будет.

Были только два параметра, по которым Project Builder превосходил CodeWarrior: это цена и разработка Cocoa-приложений. Project Builder был бесплатным, CodeWarrior стоил несколько сотен долларов. И, несмотря на талант и усилия инженеров Metrowerks, их продукт так и не смог даже сравниться с Project Builder в Cocoa, а переходная эпоха, когда почти все программное обеспечение для Mac OS X писалось в Carbon, подходила к своему концу.

Перемены

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

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

Не знаю, заступался ли кто-нибудь за Metrowerks в судебном порядке, или все возможные проблемы урегулировали ещё на стадии разработки Xcode, но практически все козырные свойства CodeWarrior были бесстыдно позаимствованы.

Xcode 1.0

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

Хотя Xcode был, пока дело не доходило до каких-то запредельных манипуляций с кодом, абсолютно предсказуем и понятен, несмотря на множество нарушений правил «гуманного» интерфейса. Но это нисколько не мешало. Может, не все правила… нужны?

Своих собственных новшеств в первой версии Xcode было предостаточно. Например, такая утилита как Fix&Continue. Запустив код на исполнение, в некоторых случаях в него можно было внести исправления без остановки исполнения и повторной компиляции.

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

Куда важнее и интереснее подсистема для распределённого построения программ, с помощью которой можно было распределить эту задачу между несколькими Mac’ами, для ускорения процесса. Естественно, подобные технологии не бывают слишком просты, и для относительно небольших проектов не имеют смысла.

А вот операционные системы и сам Xcode строили с её помощью, и сборкой систем занималась целая ферма из сотен Mac’ов. Утилита для этого называлась distcc.

В комплекте с Xcode поставлялись средства для разработки Cocoa-приложений с помощью Java, и полный комплект WebObjects, библиотеки которой тоже теперь были на Java. По моему, переход на Java окончательно добил WebObjects, и это не только моё личное мнение.

А из проблем могу вспомнить только две: проблемы с отладчиком (иногда) и плохую работу системы автоматического дописывания известных среде разработки ключевых слов. Вот это было серьёзно: идентификаторы и в Cocoa, и в Carbon, очень длинные. Имена функций, констант и тому подобное.

Это неслучайно: Apple рекомендовала не гнаться за краткостью, не сокращать слова в идентификаторах и полностью описывать смысл и суть обозначаемого предмета. И сама делала именно это.

Например (и это ещё далеко не самые длинные «ключевые слова»):

NSGetUncaughtException;
NSOutlineViewDataSource.

Обоснования приводились очень логичные: скорее всего, люди, придумавшие это правило, были абсолютно правы: если слова пишутся полностью, и исчерпывающе выражают смысл, их, как ни странно, легче запомнить.

Тем более, как утверждала документация Apple, в Xcode встроена первоклассная утилита, дописывающая эти длинные слова автоматически.

В Xcode 1.0 эта утилита была практически бесполезна. В Xcode 1.5 её почти решили. В наши дни её нет.

В этом году Apple представит обновленный iPhone 7 вместо iPhone SE 2

Неизвестный iPhone на базе процессора A10, обнаруженный в Xcode, практически наверняка не является iPhone 9, как предполагалось первоначально. Такое заявление сделал разработчик Стивен Тротон-Смит, обративший внимание на характеристики дисплея будущего смартфона, характерные для моделей с соотношением сторон 16:9.

По словам Тротон-Смита, вероятнее всего, в Xcode «засветилась» обновленная версии iPhone 7, которая станет наиболее доступным решением в модельном ряду Apple. По крайней мере, на то, что перед нами «семерка», указывает соотношение сторон дисплея, его разрешение и поддержка стандарта DCI-P3.

Новые iPhone 2018

Ранее стало известно, что в этом году Apple вновь планирует представить три модели iPhone. Одна из них — базовая — будет отличаться от более продвинутых версий LCD-панелью вместо OLED, алюминиевым кантом вместо железного, а также одиночным, а не двойным модулем основной камеры.

Это уже не первый раз, когда Apple возрождает смартфон одного из предыдущих поколений. Ранее то же самое произошло со снятым с производства iPhone 6. Производитель оснастил аппарат 32 ГБ встроенной памяти с более высокой скоростью чтения и, назначив за него приемлемый для развивающихся стран ценник, вывел его в продажу на рынках СНГ.

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

Apple представила Xcode 9.3.1

Корпорация Apple разместила Xcode 9.3.1 в Mac App Store. Обновление исправило баги, которые приводили к замедлению Xcode во время редактирования, и решило проблемы с запросом повторного ввода Apple ID. Xcode содержит полноценный набор инструментов, необходимый разработчикам...

Apple поможет разработчикам выявить приложения, крадущие заряд

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

Функция контроля энергопотребления приложений придется весьма кстати даже именитым разработчикам. Практика показала, что от ошибок не застрахована ни Google, ни Facebook. Нововведение, позволяющее узнать о необходимости отладки ПО еще на стадии тестирования, предотвратит преждевременную разрядку устройств пользователей и следующий за этим скандал.

Кроме того, Xcode 9.3 включает в себя ряд других нововведений вроде обновленного набора инструментов для диагностики 64-битных приложений и поддержки macOS High Sierra 10.13.4. Именно в этой версии настольной ОС от Apple появились предупреждающие уведомления о скором прекращении совместимости Mac с программным обеспечением с устаревшей архитектурой.

Вышли Xcode 9.3 и Swift Playground 2.0

Apple обновила программное обеспечение для разработки Xcode и обучающее приложение Swift Playgrounds.   В Xcode 9.3 Apple пообещала исправить ряд ошибок и ускорить работу программы. Также в него встроен инструмент для изменения уровня энергопотребления игр...

Новые беты показывают детали интерфейса iPhone X

Вместе с новыми бета-версиями операционных систем от Apple, которые вышли недавно, компания выпустила и новую бета-версию Xcode 9.1. Она поддерживает iOS 11.1, watchOS 4.1 и tvOS 11.1, но самое интересное – это то, что она содержит много интересной информации об iPhone X, выход которого мы все ждем с нетерпением. Разработчики нашли все, что можно было.

В Xcode 9.1 нашли демонстрационные видео, которые показывают работу различных функций в iPhone X. Кроме того, пакет инструментов для разработчиков содержит эмулятор iPhone X, который позволяет подробнее рассмотреть элементы интерфейса на экране блокировки и домашнем экране.

То, что привлекает внимание на домашнем экране, — это док с иконками. Он больше напоминает док из macOS и iOS 11 для iPad. Разница лишь в том, что больше четырех иконок он содержать не может, как и в любом iPhone.

На экране блокировки больше новых деталей. К примеру, надпись «Swipe up to open». Раньше в iPhone было «Swipe to unlock». Затем эта надпись сменилась на просьбу нажать кнопку Home. Теперь в iPhone X смахивать придется вверх, так как никакой кнопки Home нет.

Кроме того, на экране блокировки красуется иконка камеры и иконка вызова Центра управления. Для доступа к этим функциям нужно будет использовать сильное нажатие. Увы, они не работают в симуляторе.

А вот и видео, которые опубликовал разработчик Гильерме Рамбо: