Под таким заголовком в сети можно найти не один десяток статей, но в этой публикации мне хочется рассказать о своём практическом опыте, который, возможно, поможет тем, кто никогда не сталкивался с macOS и iOS избежать ряда подводных камней.
Одним из самых больших подводных камней является то, что далеко не любой компьютер Mac подходит для разработки под iOS. Часто советуют приобрести недорогой макбук, что следует понимать в смысле старый. Пользователь выбирает наиболее дешевый вариант, но вскоре понимает, что нужно-то было совсем другое, а на имеющемся можно программировать лишь на ранних версиях Objective-C. Во избежание этого перед покупкой макбука нужно чётко понять, позволит ли он выполнять возлагаемые на него задачи - установить нужную операционную систему macOS, нужную версию Xcode, возможна ли разработка под требуемые версии iPhone и др., а также выяснить, потянет ли железо всё это, достаточно ли просто увеличить объём оперетивной памяти или практичнее выбрать более мощную конфигурацию.
Скажу сразу, большого желания пользоваться продукцией Apple у меня никогда не было, но во время десктопной разработки под Windows, web-разработки и создания приложений под Android время от времени возникало любопытство посмотреть, что же это такое. Все мои знания к моменту первых практических шагов вращались вокруг фразы о том, что Apple – это дорого, бесплатных приложений очень мало и каждый шаг официальной работы с товарами данной марки проходит по чётко выработанному разработчиками пути и через кассу. Как говорится, всё будет, но за ваши деньги. Такая постановка вопроса не нашла никакого отклика в душе поклонника ПК с Windows и Android, по причине чего сначала хотелось посмотреть и попробовать работу c macOS и iOS бесплатно, а уже потом решить, нужно ли мне это вообще. По этой причине вариант со сборкой хакинтоша не подходил и решил для начала ограничиться запуском macOS на виртуальной машине в среде Windows.
В качестве виртуального эмулятора была выбрана программа VMware Workstation Pro. В общем случае, можно либо вручную собрать виртуальную машину с macOS, либо воспользоваться готовой сборкой. Я попробовал оба этих варианта, но, несмотря на относительную несложность ручной сборки, рекомендую воспользоваться готовой сборкой. Почему?
В попавшихся мне публикациях говорилось о том, что на macOS просто необходимо ставить Xcode, которая является основной средой разработки под Mac. По этой причине была выбрана сборка OC с уже установленной в ней XCode. Это была версия macOS 10.6 или 10.8, которую и собрал вручную. После первого знакомства с XCode захотелось поискать альтернативы. Corona SDK? А почему бы и нет. Но последняя версия Corona SDK требовала более высокую версию XCode. Вручную собрал ещё одну macOS 10.11, но вскоре выяснилось, что Xcode из App Store требует macOS 10.12 (тогда я ещё не знал, где можно бесплатно скачать более старые версии). Пришлось вновь сесть за сборку, но из-за одного непонятного момента в статье, описывающую её, это удалось сделать не с первого раза. Если бы я с самого начала озадачился поиском готовой сборки нужной версии, то на этом сэкономил не один час.
Вывод первый. Программное обеспечение Apple жестко привязано к версиям операционной системы, а поиск приложений для устаревших версий ОС может привести начинающих в настоящий тупик. Во многих статьях авторы пишут, что можно это или то бесплатно скачать в App Store. Это далеко не так. Бесплатного у Apple очень мало, а то, что предлагается в общем доступе бесплатно часто можно установить лишь на определённые версии OC. То есть, поклонникам ПК с Windows нужно быть готовым поступиться своей свободой выбора железа и ПО, а также поберечь свои нервы и стараться не выходить из себя при первом знакомстве c macOS и прочим.
Итак, macOS c Xcode установлены, можно создать простой пример, запустить его в симуляторе iOS, входящим в поставку, и… всё! Запустить приложение на официальном iPhone не получится! Даже если каким-то образом удастся в него скопировать файл .ipa (формат архивных файлов приложений для iPhone, iPod Touch и iPad), установить его не получится! Хочется установить? Нет проблем, но через кассу!
Вывод второй. Разрабатывать приложения под iOS можно и без компьютера Мас, но официально устанавливать их на устройстве (за некоторым исключением) не получится! Схема проста. Официальной является установка приложений из App Store, а для возможности публиковать свои приложения в этом магазине нужно оплатить ежегодный взнос 99$ и понравиться модераторам, принимающим решение о том, что ваше приложение достойно публикации.
Можно ли разрабатывать приложения под iOS без XCode? Можно! В большинстве случаев для этого используются кроссплатформенные среды разработки - Qt Creator, Visual Studio, PhoneGap, Unity 3D, Corona SDK и др., но окончательную сборку всё равно придётся производить при помощи мака и xCode.
Помимо официальной работы с iOS есть, как можно догадаться, и не официальная, заключающаяся во взломе системы, что называется джейлбрейком. В случае успешного выполнения этой операции у пользователей существенно расширяются возможности по использованию устройства, включая возможность устанавливать ПО не только из магазина App Store, но после её проведения пользователь снимается с гарантийного обслуживания.
Есть мнение, что лучше купить по дешевке старый макбук и работать на нём, чем мучиться с тормозами и нюансами работы в виртуальной среде. Возможно, но мой скромный опыт показывает, что древний ПК с процессором i7 и выделенной для виртуальной системы 4 Gb оперативной памяти вполне подойдёт для более или менее комфортного первоначального знакомства с macOS в виртуальной среде, а в целом ряде случаев это намного удобнее и практичнее, чем работа на старом макбуке, о чём мы ещё поговорим далее.
В один прекрасный день на столе в качестве подарка появился iPhone 5 с треснувшим экраном. А раз он появился, то захотелось что-то и изобразить на нём. Но как? Возиться с джейлбрейком не хотелось, поэтому максимум, что можно было выжать из разработки – запустить на нём предварительный просмотр. Да, существуют среды разработки, которые позволяют осуществлять предварительный просмотр на самом устройстве iOS, например, фреймворк V-Play, основанный на Qt. Для этого на устройстве из магазина приложений нужно установить соответствующее приложение. IDE V-Play тянет на пару гигабайт и возникло логичное желание поискать что-то попроще. В результате поисков был найден уникальный сервис Thunkable, который позволяет не только тестировать работу приложения на устройстве iOS, но и бесплатно устанавливать на него одно приложение! В настоящий момент Thunkable под iOS активно развивается, но уже сейчас можно сказать, что это весомый прорыв в разработке, который позволяет разрабатывать мобильные приложения под iOS также легко и просто, как и под Android. Через некоторое время должна выйти версия App Inventor под iOS, что также весьма любопытно.
Знакомство со стареньким MacBook Pro
После первых попыток поработать с iOS возник интерес к покупке макбука. Вкладываться в новую модель не было никакого желания, поэтому основным критерием была цена – приобрести что-то совсем дешёвое. Этим оказалась работающая модель MakBook Pro без аккумулятора, без CD-привода и не работающим WiFi. То, что нужно для начала, с учётом его копеечной стоимости.
Изначально на макбуке стояла macOS 10.5.8 (Leopard), после первого знакомства с которой стало понятно, что эта ОС является рубежом, после которого начинаются более или менее адекватные версии macOS с позиции сегодняшнего дня. Достаточно сказать, что в этой версии ещё не было App Store, да и общая функциональность не впечатляла. И что делать? В ходе поиска ответа на этот вопрос выяснилось единственное решение – обновить версию OC до чего-то более интересного. Вот здесь и возникла первая засада – привязка операционных систем к году выпуска макбука. Проще говоря, обновить или установить macОС без серьёзных танцев с бубном можно лишь до поддерживаемой железом версии.
Перед выбором и установкой другой версии macOS вначале посмотрите серийный номер макбука, определите по нему год его выпуска и затем посморите, какую максимально возможную версию OC он поддерживает
Имеет ли смысл ставить максимально возможную версию ОС? Не всегда. Чем выше версия, тем больше возможностей будет по работе с программным и аппаратным обеспечением, но тем больше и требования с железу. Легко может получится так, что старая версия OC летала, а новая прилично тормозит и нужно увеличить оперативную память (если это возможно) для того, чтобы она хоть как-то работала. С другой стороны, старая ОС может не поддерживать работу с новыми iPhone и получится так, что, макбук вроде, есть, но он или программное обеспечение, которое можно на него установить, не позволяет работать с имеющимся iPhone. Весело!
Другая проблема – большое количество в сети устаревшей информации по установке macOS. Этот процесс является несложным, если знаешь, что делать. А когда не знаешь, то всё может затянуться и на несколько дней.
В macOS есть функция закачки дистрибутива образа диска .dmg на флешку и восстановления с неё ОС, но мне больше понравился способ с использованием программы TransMac. Открываем эту программу в Windows, форматируем подходящую по размеру флешку под Mac и восстанавливаем на неё загрузочный образ дистрибутива требуемой OC. Обновить 10.5 до чего-то типа 10.10 или 10.8 сразу не получится. Это возможно лишь с версии 10.6.8 (Snow Leopard). Рекомендуется выбрать macOS 10.6 retail. Её можно накатить без потери данных, но предварительно их лучше сохранить, на всякий случай. После установки OC обновляем её до максимально возможной версии 10.6.8, после чего всё становится намного радостнее. Считается, что для древних маков версия 10.6.8 является наиболее подходящей и большего не надо, с чем я в чём-то согласен. “Снежный Леопард” – это минимум, при работе с которым ощущаешь себя уже человеком, а не пользователем крутой игрушки.
Ставлю macOS 10.8, а она просто не загружается. Смотрю по серийному номеру год выпуска макбука – 2006 и, соответственно, максимум, что можно и имеет смысл на него ставить – это 10.6.8. Приехали.
А где скачать подходящую версию Xcode? На аккаунте разработчика, для входа в который требуется Apple ID. Смотрим варианты и видим, что для macOS 10.6 доступна только третья версия Xcode. Загружаю версию 3.2, устанавливаю, а симулятора iOS в ней нет! Накатываю два обновления – нет эффекта. Ставлю версию 3.2.6 – ошибка инсталляции! 3.2.5 – ошибка инсталляции! Возился с этим долго, пока на глаза не попалась информация о том, что для "снегопарда" есть версия Xcode 4.2. Вот только её как раз в официальном разделе загрузок и нет. Нашлись добрые люди, а устанавливаться на макбуке не хочет, как и трёшки! Оказалось, перед установкой нужно на макбуке откатить дату до 26 марта 2012 года (когда ещё действовали сертификаты для пакета OpenGLApps.pkg). Установил, появился симулятор iOS, да и сама среда Xcode 4 порадовала больше третьей версии. Попробовал создать тестовый пример и сразу понял, что Xcode совершенно не рассчитан под работу на небольших экранах. Экран 15,4” не является маленьким, но работать в виртуальной машине на экране с 20" и разрешением 1600*900 ощутимо приятнее. Другое преимущество виртуальной машины – возможность установить более новые версии macOS и программного обеспечения. Это важно, поскольку, например, язык программирования Swift поддерживается начиная с версии Xcode 6, а в младших версиях - только Objective-С. А Xcode6 можно поставить на систему macOS X 10.9 и выше.
Каковы ощущения от макбука? Скажу так, продукцию и политику Apple либо принимаешь, либо не принимаешь. У Apple есть право предложить свою продукцию, у потребителя – право приобрести что-то другое. Время помогает понять многое. Если сейчас сопоставить iPhone 5 и iPhone 6, то не возникает ли вопроса, а стоило ли в те годы давится за 5 и отдавать за него такие деньги? Такое сопоставление актуально всегда и в самых разных областях, но не могу не признать того, что макбук 2006 года впечатлил рядом моментов. Просто дело в том, что я не любитель ни ноутбуков, ни планшетов, ни смартфонов и воспринимаю только настольные ПК. Возможно, настольный компьютер Mac оказал бы более сильное впечатление, но приобретать его не вижу никакой потребности. ПК 2007 устраивает вполне.
И как разработка под iOS на макбуке? Реальна, но есть возможность использовать более удобные и простые инструменты разработки, а задачи публиковаться в App Store пока не стоит.