Каковы реальные ограничения этого инструмента?

Представление нового Swift Playgrounds 4 для iPad открывает доступ к программированию для ряда пользователей, которые ранее, возможно, не могли позволить себе стоимость самого дешевого MacBook и подписки разработчика только для того, чтобы начать разработку в мире экосистемы Apple.

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

Самой сильной стороной игровых площадок должно быть включение диспетчера пакетов Swift. Простой способ добавления библиотек и фреймворков для ускорения разработки, обмена полезным кодом или добавления API для интеграции с внешним миром. Это просто в использовании и буквально состоит из добавления URL-адреса пакета, размещенного в Интернете, и нажатия кнопки, чтобы добавить его в проект.

Одним из первых пакетов, которые я попытался добавить, был Firebase-iOS. К сожалению, здесь ничего не произошло, когда я ввел URL. Он отображает метку «Проверка версии», а затем ничего не происходит, в конце концов эта операция истекает. Это, мягко говоря, обескураживало. Никогда не принимавший первый ответ, я попробовал еще несколько раз, прежде чем пришел к выводу, что что-то должно быть сломано.

Я перешел к следующему пункту: Лотти. Теперь это был успешный первый раз. Я был взволнован, чтобы проверить эту работу на моем iPad. Первое, что я сделал, это добавил вспомогательный файл, которому вы можете следовать от Spencer Feng (на самом деле, следуйте всему учебнику здесь, потому что это отличная часть и действительно ускоряет рабочий процесс):

Следующим шагом было добавление файлов анимации. Я могу зайти на сайт Лотти и скачать анимационные файлы. Затем в игровых площадках Swift я могу добавить эти анимации в качестве активов и получить к ним доступ с помощью одной строки кода, мгновенно увидев их в предварительном просмотре.

Вот это уже успех! Любой, кто использовал Lottie раньше, знает, что им не нужно быть дизайнером, чтобы разработать действительно красивое приложение, и это один из способов получить идеальное приложение в течение нескольких часов разработки.

Я вернулся, чтобы попробовать Firebase, и мне все еще не повезло. В противном случае я посмотрел на AWS Amplify и попытался добавить это как пакет в свое приложение. Опять же, это не будет загружаться. После долгих поисков, я думаю, я нашел ответ: для загрузки пакета все файлы должны быть написаны быстро. Они не могут содержать какой-либо реализации C++, и я считаю, что многие из этих пакетов терпят неудачу.

Беспокойство здесь заключается в том, что компании не будут переписывать свои API для быстрой реализации, потому что это не соответствует требованиям Xcode, а просто Playgrounds, рассматриваемых как игрушка Apple. Это заставило меня застрять в том, что делать, если я хочу использовать какие-либо серверные службы для своего приложения.

CloudKit спешит на помощь…

Не изучив слишком много мира Apple CloudKit, казалось, что нет лучшего времени, чтобы попробовать это, чем сейчас.

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

В разделе «Возможности» добавьте «iCloud» и «Войти через Apple». Если вы затем войдете в панель инструментов CloudKit, вы сможете создать новый контейнер (мне пришлось погуглить, как создать контейнер из веб-интерфейса, и я нашел ссылку для этого).

Затем я смог вернуться к своей учетной записи разработчика и добавить идентификатор контейнера CloudKit к своим возможностям iCloud, и, наконец, с панели инструментов CloudKit я мог редактировать свою схему.

Пока все положительные моменты....

Что интригует, так это то, что, похоже, в Swift Playgrounds есть дыры, которые не были заткнуты. Пользователь может «импортировать CloudKit» и начать редактировать свой код. Это происходит, когда мы хотим протестировать приложение. Приложение понятия не имеет, куда обращаться со своими запросами, потому что контейнер не определен в приложении. Обычно пользователь настраивает контейнер CloudKit из самого Xcode.

Я понял, что, возможно, проблема заключается в том, что в моем приложении отсутствуют такие возможности, как «Войти через Apple». Такой возможности в Playgrounds нет, и это кажется очень ограничительным. Я могу вручную создать эту кнопку в Swift Playgrounds, но мне нужно знать этот код наизусть, а не с подсказками.

Хотя я поддерживал это в SwiftUI, функциональность, похоже, не существует, и я все еще получаю код в консоли, который предполагает, что на самом деле это ни к чему не подключено.

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

Я обнаружил последнюю упаковку, которая может дать надежду в эти темные времена, и это Сото. Кажется, это, по крайней мере, загружается в Swift Playgrounds 4 (хотя и с парой ошибок Target, которые останавливают любую компиляцию). Но поскольку это написано с расчетом на быстроту и кажется актуальным, это может быть ответом на использование серверной службы с приложениями, написанными для iOS.