Приложения для iPad на Mac: объяснения по Project Catalyst

macOS Catalina указывает на давнюю проблему программного обеспечения Mac. Когда Apple купила NeXT, она унаследовала законную блестящую технологию NeXTStep и фреймворк AppKit для создания приложений. Apple создавала их на протяжении нескольких поколений, добавляя все, от CoreGraphics до CoreAnimation, от SceneKit до Metal. Но рыночная доля Mac никогда не была огромной. Итак, хотя на Mac всегда были отличные приложения, феноменальные приложения, он никогда не привлекал их большое количество.

Затем пришел iPhone и огромная популярность App Store. Он использовал новую структуру под названием UIKit, основанную на многих уроках, извлеченных из AppKit. И он стал настолько популярным, что миллионы разработчиков бросились создавать для него миллионы приложений.

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

А вот Mac… Mac застрял с AppKit, и нигде такое количество разработчиков не было готово рискнуть таким большим скачком. И даже у тех, кто хотел, часто не было дополнительного времени и ресурсов, необходимых для этого.

Среди них был самый крупный разработчик Mac в мире — Apple.

В то время над версиями приложений для iOS и macOS у Apple были отдельные команды. Почта iOS и Почта Mac. Сообщения iOS и сообщения Mac. iOS Safari и… вы поняли.

Несмотря на это, у стороны iOS было больше ресурсов, потому что она сталкивалась с гораздо большими требованиями. Итак, со временем iOS первой получила новые функции, а Mac отставал, а иногда и вовсе отставал.

(отправляется с Fireworks)

Затем, несколько лет назад, Apple объединила команды. Одна команда Mail, одна команда Messages, одна команда Safari … опять же, вы уловили идею.

Но это оставило команды с двумя наборами приложений для кодирования: UIKit для iPhone и iPad и AppKit для Mac. Кроме того, им часто приходилось вдвое больше работать над внедрением новых функций и новых фреймворков.

Войдите в Marzipan, теперь Project Catalyst. Или, проще говоря, UIKit для Mac.

Project Catalyst чертовски умен в своей простоте: разработчики уже делали версии своих приложений для iPhone для iPad, почему бы им не позволить им сделать версии своих приложений для iPad для Mac?

Не в версиях AppKit, где они, возможно, могут хранить модели данных, но должны переучиваться и переделывать весь код, специфичный для приложения. Но версии UIKit для Mac, где они могли поддерживать одну базу кода для обеих платформ.

Запуск приложений iOS на Mac стал возможен с тех пор, как Apple выпустила iPhone SDK в 2008 году, но только как часть симулятора в Xcode. Симулятор имел и имеет свою собственную копию всех фреймворков, баз данных и сервисов iOS, но он предназначен для репликации среды iPhone или iPad, чтобы разработчики могли запускать и отлаживать свои приложения по мере необходимости, а не заставлять эти приложения выглядеть и чувствовать себя родными для Mac для конечных пользователей, чтобы конечные пользователи могли запускать их каждый час, каждый день, все время.

Итак, вот что сделала Apple.

У AppKit наверху были свои собственные интерфейсные фреймворки, но внутри он имел те же фреймворки, что и iOS. CoreGraphics, CoreAnimation, Foundation, аналогичные базы данных для фотографий, контактов, календарей и даже аналогичные сервисы, такие как буфер обмена, все они построены на одном ядре Darwin.

Apple начала с объединения и унификации базовых фреймворков и баз данных. Итак, там, где сейчас было два отдельных стека под AppKit и UIKit, на Mac мог быть только один.

Apple пришлось разделить фреймворки более высокого уровня, такие как WebKit, MapKit, RealityKit и SceneKit, потому что AppKit и UIKit по-прежнему разделены, и каждому по-прежнему нужны собственные реализации — и они вообще не перенесли ARKit, по крайней мере, пока . Аналогичным образом, HealthKit, HomeKit и некоторые другие вещи также остаются в списке дел и дел, которые нужно завершить. И, конечно же, были перенесены большинство устаревших фреймворков iOS. Итак, Metal, а не OpenGL.

Apple также автоматически отображает другие вещи для, цитировать, не цитировать, бесплатно. Это включает в себя добавление строки меню по умолчанию, панели настроек, системы прокрутки, перетаскивания, сенсорной панели, контекстных меню, команд клавиатуры и игровых контроллеров, если они уже есть в приложении, и расширений общего доступа, а также уменьшение размера текста на 77%, начиная с от стандарта iOS 17pt до стандарта Mac 13pt.

Жесты многозадачности UIKit также будут автоматически перенесены на мышь и трекпад на Mac. Одно касание — опускание мыши, длительное нажатие — опускание и удерживание и панорамирование или смахивание для перетаскивания. Сжатие и вращение с также могут быть сопоставлены, но вместо средней точки, используемой в качестве оси, позиция курсора будет использоваться в качестве оси.

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

И если приложения обновляются для поддержки новых функций iOS 13, таких как многооконность, изображения символов, темный режим и новые системные цвета, это также будет перенесено.

Все это говорит о том, что если приложение использует стандартные компоненты и элементы управления UIKit, Apple возьмет на себя большую часть тяжелой работы и перевода. Другими словами, чем лучше приложение для iPad, тем лучше запускается приложение для Mac.

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

Итак, чем лучше будет полировка, тем лучше будет приложение для Mac.

По сути, Apple хотела упростить начало работы с UIKit на Mac, чтобы разработчики могли поддерживать один проект, одну исходную базу, одну цель. И хотя их приложения останутся iPad внутри, они могут быть первоклассными Mac снаружи.

В прошлом году Apple протестировала его в нескольких приложениях, таких как «Дом», «Голосовая заметка», «Новости» и «Акции». И… они были не очень хороши. Мало того, что они не были очень похожи на Mac, они даже не были последовательны сами по себе.

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

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

В любом случае, это вызвало некоторое беспокойство в сообществе Mac — что Catalyst будет использоваться, чтобы просто выгружать кучу приложений iPad на Mac, быстро, лениво, неуместно и без ничего похожего на Mac.

Но в этом году, когда Apple открыла Catalyst в качестве бета-версии для разработчиков, она также выпустила новое приложение Podcast с использованием этих фреймворков UIKit, которое почти неотличимо от новых приложений Music и TV на основе AppKit.

Теперь Apple не возвращается и не переделывает или не переделывает «Дом», «Голосовые заметки», «Новости» и «Акции», чтобы они больше походили на подкасты, по крайней мере, пока. Здесь и там они добавляют и совершенствуют несколько функций, но не ожидают каких-либо серьезных изменений, когда Catalina выйдет этой осенью.

Может быть, надеюсь, когда-нибудь.

Тем не менее, несмотря на то, что это только начало, я оптимистичен. Я думаю, что есть масса разработчиков, которые хотели бы перенести свои приложения для iPad на Mac, хорошие приложения для iPad, которые они хотят превратить в хорошие приложения для Mac, но у них просто никогда не было времени или ресурсов для изучения AppKit, чтобы они могли это сделать.

Теперь с Catalyst их тоже нет. Они могут перенести свои существующие приложения для iPad и, вместо того, чтобы тратить время на AppKit, они могут потратить это время на полировку интерфейса своего приложения UIKit, чтобы сделать его первоклассным Mac.

Сюда входят разработчики, у которых есть приложение для iPad, но либо они никогда не делали версию для Mac, либо просто позволяли версии для Mac со временем выпадать. По их мнению, единая кодовая база делает создание или замену приложения Mac гораздо более эффективным. DC Universe и Twitter уже объявили, что будут делать именно это.

Кроме того, приложения для iPad, которые полагались на веб-сайт для Mac. Здесь собственные фреймворки предоставляют гораздо больше возможностей и гораздо лучшую производительность. Например, Netflix может сделать версию своего приложения для iPad для Mac, которая наконец-то перенесет их контент 4K HDR на Mac.

И еще есть мои наименее любимые приложения, которые используют Electron на Mac, активно тратят мою память и разрушают время автономной работы, просто чтобы обернуть себя в Chromium для того, что так-то-не-так-то-нативный внешний вид в любом случае. Таким, как Slack и Skype, отчаянно нужно быстро перейти на Catalyst.

Поскольку мне нравится мечтать о будущем, я также скажу следующее: сегодня вы можете перетащить приложение для iPad в узкое разделенное представление, и оно приобретет характеристики версии для iPhone. Завтра я хочу разместить приложение для iPad на 27-дюймовом внешнем дисплее с разрешением 16 на 9 — примерно так, как будет выглядеть 35-дюймовый iPad с поправкой на масштабирование — и получить характеристики приложения для Mac.

Прочитать полную предварительную версию macOS Catalina

Добавить комментарий

Ваш адрес email не будет опубликован.