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

Как превратить приложение на 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 дня.

Связка Mac и iPad

Даже поверхностного знакомства с Catalyst достаточно для правильного ответа на вопрос про слияние. Это не слияние. Это еще один способ создавать приложения для macOS, не более того. В настоящее время, таким приложениям приходится проходить проверки в двух App Store. Сначала – в iOS App Store (iPadOS App Store, насколько я знаю, пока еще не появился), основой для катализа должно быть iPad-приложение отвечающее требованиям Apple. А потом – в Mac App Store. Хлопотно? Вроде бы Apple планирует организовать для “каталитических” приложений отдельный App Store (честно говоря, не представляю как в эту схему можно воткнуть специальный App Store – жду с нетерпением). Превращение macOS-приложений в приложения для iPadOS даже не рассматривается.

Поможет ли катализатор возместить пользователям Mac’ов утраченное ими в результате зачистки 2019 года? Поживем – увидим.

Новости по теме
Почему важно обновлять Айфон: Apple устранила серьезную уязвимость в iOS
Как изменятся сторонние будильники в iOS 26
Apple объяснила, почему до сих пор не выпустила новую Siri, анонсированную еще с iOS 18
Новости партнеров
Все, что известно про новые realme 15 и realme 15 Pro: характеристики, дата выхода и цена
Все, что известно про новые realme 15 и realme 15 Pro: характеристики, дата выхода и цена
Красная или белая рыба: в чём разница, что полезнее и какую лучше выбрать
Красная или белая рыба: в чём разница, что полезнее и какую лучше выбрать
Криптомошенник украл более 250 тысяч долларов, выдавая себя за представителя команды Трампа. Что произошло?
Криптомошенник украл более 250 тысяч долларов, выдавая себя за представителя команды Трампа. Что произошло?