Как превратить приложение на iPad в программу для Mac
В июне этого года, на WWDC, Крейг Федериги артистично и с примерами рассказал кое о чем очень важном. Благодаря чему в macOS вернулся Twitter, и появились Jira и Asphalt. Но самое главное о причине этих чудес так и не было сказано.
Презентация macOS Catalina на WWDC 2019
Чтобы никто не усомнился в важности и ценности этой причины, в macOS 10.15 устроили жестокую и безжалостную зачистку. Под нож пошли 32-битные приложения, с которыми не решались окончательно расстаться в течение многих лет, приложения без подписи автора (по которой, в случае чего, автора легко и быстро вычислят). Жертвы этого чудовищного акта вандализма, до самого последнего их дня, были востребованы, многие из них были уникальны, их нечем заменить. Образовалась область повышенного спроса. И теперь нужно максимально быстро и качественно этот спрос удовлетворить. Не поспешили ли они? Вдруг этот “катализатор”, исправно ускорявший создание Mac’овских приложений в пробирках в лабораториях Apple, или под присмотром её специалистов, в реальном мире превратится в “пшик”?
С чего началось создание Catalyst
На разработку ушло 2 года
Не преувеличили ли они своё достижение? Люди создающие программное обеспечение и те кто организует и управляют думают по разному. В конце 80-х недостаточное понимание этой разницы в мышлении буквально разрушило намечавшийся успех компании NeXT. То, что могла предложить эта компания, при грамотном применении, обещало реальные конкурентные преимущества. Гениально, на личном примере (а Стив все-таки менеджер, не программист), он внушил аудитории: библиотеки и средства разработки от NeXT просты, эффективны, сроки разработки программ уменьшаются в разы. Ему поверили. У тех кто принимает решения, сложилось превратное представление о увиденном. Когда их пытались переубедить специалисты, они не верили никому. Программисты – лентяи, менеджеры – перестраховщики, все плохие. Результат: сроки на реализацию проектов устанавливались нереальные (потому что в NeXTSTEP все разрабатывается быстрее в разы), без предварительной подготовки персонала (потому что все просто и понятно, учиться нет необходимости), да еще и с завышенными требованиями. Естественно, это не работало, проект за проектом заканчивались ничем. Разочарование, обвинение Джобса и NeXT в обмане и жульничестве.
Крейг Федериги отважно наступил на те же грабли. Чтобы превратить iPad-приложение в настоящее Mac’овское приложение, нужно в Xcode, в конфигураторе проекта, поставить галочку в в чекбоксе “Mac”. И это – почти все. Превращение на этом не заканчивается, в проекте нужно сделать еще кое-что, но все это займет максимум несколько дней. А то и несколько часов. Все легко и просто. Вот примеры (Twitter, Jira, Asphalt). Пробуйте! Это же легко!
Летом 2018 года о чем-то похожем уже говорили. Несколько приложений для iPhone (News и еще что-то), каким-то волшебным образом, были перенесены в macOS Mojave. Они, если честно, не впечатляли. Упоминалась технология Marzipan. Чем-то похожим в Apple уже занимались, в начале 10-х, но по каким-то причинам проект был закрыт. И вот – Catalyst. Катализатор. Вещество, которое само не принимает участия в химической реакции, но многократно её ускоряет. Презентация в исполнении Крейга Федериги была, как всегда, блестящей и захватывающей. Сразу же всем доступным для общения представителям Apple стали задавать один и тот же вопрос: “это слияние iOS и macOS?” – на который все ответили “нет”. Ага, решили журналисты, значит все-таки слияние. Не думаю. И в любом случае, даже если бы это было слиянием, со стороны мобильных операционных систем в нем участвовала бы iPadOS.
Предлагаем подписаться на наш канал в «Яндекс.Дзен». Там вы сможете найти эксклюзивные материалы, которых нет на сайте.
Как перенести приложение с iPad на Mac
Если опустить подробности и сильно все упростить, все нынешние системы Apple устроены очень похоже. То, что не имеет дела с пользовательским интерфейсом, совпадает в них почти один в один. Будем называть эту часть по имени главной из библиотек входящих в эту часть: Foundation. В macOS пользовательским интерфейсом “занимается” AppKit, в iOS и iPadOS – UIKit. Физические принципы интерфейсов существенно отличаются. В Mojave, в рамках проекта с кодовым наименованием Marzipan, рядом с AppKit появилась необычная библиотека с знакомым названием – UIKit. Для потребителей (исходные файлы программ) она почти один-в-один совпадала с UIKit из iOS. А вот её начинка, максимально близко к оригиналу, имитировала UIKit средствами macOS, то есть AppKit.
Приложение в Catalyst (и в Marzipan)
Полученное в результате катализа приложение работает так: поскольку большая часть его исходного кода написана для iPadOS, интерфейсная часть программы взаимодействует с UIKit/macOS, который выполняет роль умного синхронного переводчика. С самой macOS взаимодействует AppKit. На уровне блок-схемы это просто и элегантно, в реальности все сложней. Перевод инструкций реального приложения для iPad в инструкции для macOS не может быть идеален. Блок Foundation (который даже не стали показывать на блок-схеме) в macOS и iPadOS почти идентичен. Почти. Кроме Foundation и UIKit в реальном приложении используются и другие библиотеки, не все из которых поддерживаются в macOS. В исходном коде все, что пытается использовать эти библиотеки, нужно изолировать. И, возможно, эту часть функционала приложения нужно реализовать какими-то обходными средствами. То есть, далеко не каждое приложение можно превратить в Mac’овское за 2-3 дня.
Даже поверхностного знакомства с Catalyst достаточно для правильного ответа на вопрос про слияние. Это не слияние. Это еще один способ создавать приложения для macOS, не более того. В настоящее время, таким приложениям приходится проходить проверки в двух App Store. Сначала – в iOS App Store (iPadOS App Store, насколько я знаю, пока еще не появился), основой для катализа должно быть iPad-приложение отвечающее требованиям Apple. А потом – в Mac App Store. Хлопотно? Вроде бы Apple планирует организовать для “каталитических” приложений отдельный App Store (честно говоря, не представляю как в эту схему можно воткнуть специальный App Store – жду с нетерпением). Превращение macOS-приложений в приложения для iPadOS даже не рассматривается.
Поможет ли катализатор возместить пользователям Mac’ов утраченное ими в результате зачистки 2019 года? Поживем – увидим.
Новости, статьи и анонсы публикаций
Свободное общение и обсуждение материалов
Лонгриды для вас
В App Store и Google Play появилось новое приложение «Госуслуги СТОП коронавирус», разработанное при участии Минкомсвязи РФ. Новое приложение предположительно будет использоваться для того, чтобы жители России могли получать электронные пропуска для выхода из дома — например, при неотложной поездке на работу или к врачу. Оно также работает для получения пропуска в Московской области. Однако […]
В то время, как новые iPad Pro и MacBook Air уже в руках первых американских покупателей, до сих пор непонятно, когда новинки поступят в продажу в России. Да, раньше Россия часто оказывалась во второй и даже в третьей волне старта продаж новых устройств Apple, однако за последние несколько лет такого почти не наблюдалось. Тот же […]
Тестирование iOS 14, которой началось в конце июня, прошло на удивление гладко. Актуальная итерация операционной системы, в отличие от предыдущей, не доставила тестерам ни одной серьёзной проблемы вроде произвольного удаления бэкапов или замедленной работы. Даже ранние бета-версии работали на удивление быстро, превосходя по скорости даже релизные сборки iOS 13. Представляю, как классно всё будет работать, […]
Как запускать приложения для iOS на Mac или ПК
Поклонники «яблочной» техники говорят об экосистеме куда как чаще всех остальных. При этом единственное, что, по мнению многих, держит их на платформе Apple, – взаимосвязанность и глубокая синхронизация устройств и сервисов друг с другом. Чего только стоит функция Continuity, позволяющая взаимодействовать с Mac при помощи iPhone, iPad и Apple Watch. Для полного счастья осталось только «прикрутить» возможность параллельного запуска внесистемных приложений.
Но, как оказалось, Apple заведомо опоздала, а такая возможность уже присутствует и позволяет владельцам не только Mac, но и ПК работать с приложениями для iOS прямо на деск- или лэптопе. Достаточно установить программу iPadian, частично переносящую функциональность iPad на ваш компьютер. Такой себе симулятор планшета, повторяющий и его интерфейс, и некоторые особенности программного кода. Впрочем, не все ли равно, когда речь идет о запуске априори несовместимых приложений?
Установить iPadian может практически любой желающий, перейдя по этой ссылке. Разработчики приложения постарались на славу, адаптировав его под максимальное количество версий операционных систем. Так, например, испытать преимущества iPadian на себе смогут даже пользователи Linux, а также Windows Vista и OS X 10.4, включая более новые версии. При этом работоспособность симулятора не гарантируется на последних версиях ОС вроде Windows 10 и macOS Sierra. Но лично у меня заработало, поэтому не бойтесь – устанавливайте.
Будьте готовы к тому, что во время установки система может попросить вас обновить Adobe Flash до последней версии или скачать пакет Windows.NET Framework отсюда. Это необходимо для наилучшей совместимости отдельных элементов iPadian и самой ОС. Небольшая ремарка: владельцам Mac ничего подобного делать не следует. Данная рекомендация носит эксклюзивный характер и предназначена исключительно для пользователей устройств под управлением Windows.
После завершения разархивации и установки компонентов iPadian вы будете перенаправлены на рабочий стол, напоминающий iOS. Там вы обнаружите стандартный набор программ, характерных для iPhone и iPad, включая Safari и App Store. Для дальнейшей работы откройте предустановленный магазин приложений и введите в поиске название нужной вам игры. Будьте готовы, однако, к тому, что вам будет доступен далеко не весь перечень ПО, размещенного на прилавках App Store. Впрочем, насладиться десктоп-версией Angry Birds или Plants vs. Zombies обеих частей вам все-таки удастся.