Как создать бэкэнд для Swift?
В этом учебном пособии вы научитесь создавать полный бэкенд для приложения на Swift с использованием Back4App.
Мы пройдем через интеграцию основных функций Back4App — таких как управление базами данных, функции Cloud Code, REST и GraphQL API, аутентификация пользователей, запросы в реальном времени (Live Queries) и многое другое — чтобы создать безопасный, масштабируемый и надежный бэкенд, который бесшовно взаимодействует с вашим клиентским приложением на Swift.
Используя быстрое развертывание и интуитивно понятную среду Back4App, вы значительно сократите время и усилия, необходимые по сравнению с ручной настройкой серверов и баз данных.
В процессе вы получите практический опыт работы с важными функциями, включая расширенные функции безопасности, планирование задач с помощью Cloud Jobs и настройку вебхуков для внешних интеграций.
К концу этого учебника вы будете хорошо подготовлены, чтобы улучшить эту основную серверную службу до готового к производству приложения или легко интегрировать пользовательскую логику и сторонние API по мере необходимости.
Вы увидите, как работа с платформой BaaS может преобразовать разработку серверной части в более упрощенный процесс, особенно при создании быстрой серверной части или любого другого серверного приложения. Давайте начнем!
Чтобы завершить этот учебник, вам потребуется:
- Учетная запись Back4App и новый проект Back4App Начало работы с Back4App. Если у вас нет учетной записи, вы можете создать ее бесплатно. Следуйте приведенному выше руководству, чтобы подготовить ваш проект.
- Среда разработки Swift Вы можете использовать Xcode в качестве вашей IDE для создания приложений iOS или macOS с использованием Swift. Убедитесь, что у вас установлена последняя стабильная версия Xcode.
- Знание языка программирования Swift Если вы новичок в Swift, ознакомьтесь с официальной документацией по Swift или учебником для начинающих перед началом.
- Parse Swift SDK Если вы используете CocoaPods, добавьте pod 'ParseSwiftOG' в ваш Podfile. Или, если вы используете Swift Package Manager, добавьте .package(url: "https://github.com/netreconlab/Parse-Swift.git", from: "5.0.0") в ваши зависимости. Читайте больше в документации Parse Swift.
Убедитесь, что у вас есть все эти предварительные условия, прежде чем вы начнете. Настройка вашего проекта Back4App и готовая локальная среда Swift помогут вам легче следовать инструкциям.
Первый шаг в создании вашего бэкенда на Swift с помощью Back4App – это создание нового проекта. Этот проект является основой для всех конфигураций бэкенда, обсуждаемых в этом руководстве. Swift может бесшовно подключаться к вашему новому бэкенду, используя Parse Swift SDK. Давайте посмотрим, как.
- Войдите в свою учетную запись Back4App.
- Нажмите кнопку “Новое приложение” на вашей панели управления Back4App.
- Назовите ваше приложение (например, “Swift-Backend-Tutorial”).
![Document image Document image](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/drXO0UqsgxhFvRDiVmsMb_image.png?format=webp)
После создания вы увидите новое приложение в вашем дашборде. Здесь вы настроите свою базу данных, облачные функции и другие важные настройки для вашего бэкенд-приложения.
Back4App работает на платформе Parse, которая предоставляет основу для вашей базы данных, обновлений в реальном времени, аутентификации и многого другого. Ваше приложение на Swift может подключиться к Back4App, установив и инициализировав Parse Swift SDK.
Получите свои ключи Parse: В вашей панели управления Back4App перейдите в «Настройки приложения» или «Безопасность и ключи», чтобы найти ваш Идентификатор приложения и Ключ клиента. Вы также увидите ваш URL сервера Parse (часто https://parseapi.back4app.com).
![Document image Document image](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/F9teHXd_M8ERn1OPGirbi_image.png?format=webp)
Установите Parse Swift SDK:
- Swift Package Manager (Рекомендуется):
- CocoaPods:
Инициализируйте Parse в вашем приложении:
Вы можете сделать это в главной точке входа вашего проекта Swift (например, AppDelegate.swift или в структуре SwiftUI @main . Например:
С этой настройкой ваш клиент Swift теперь может отправлять безопасные запросы в Back4App. Вы установили надежное соединение, которое упрощает операции с данными без необходимости вручную выполнять REST или GraphQL вызовы (хотя вы все равно можете их использовать, если хотите).
На этом шаге вы настроите свою базу данных на Back4App и увидите, как управлять данными из вашего кода Swift. Back4App использует модель данных Parse, позволяя вам хранить объекты в структурах, похожих на классы. Swift может легко взаимодействовать с этими классами через SDK Parse Swift.
- Перейдите в раздел “База данных” на вашей панели управления Back4App.
- Создайте новый класс (например, “Todo”).
- Добавьте столбцы для необходимых вам данных, такие как “title” (String) и “isCompleted” (Boolean).
![Создать новый класс Создать новый класс](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/iaZ_P-7epc_LSMFIPlaZV_image.png?format=webp)
Вы также можете позволить SDK Parse Swift автоматически создать эти столбцы в первый раз, когда вы сохраняете объект. В любом случае, ваша схема должна соответствовать данным, которые вы храните, чтобы ваше приложение могло обрабатывать их без проблем.
Back4App предоставляет AI-агента, который может помочь вам разработать вашу модель данных:
- Откройте AI-агента из панели управления или меню вашего приложения.
- Опишите вашу модель данных на естественном языке. Например: “Пожалуйста, создайте новый проект Swift с схемой класса ToDo.”
- Позвольте AI-агенту создать схему для вас автоматически.
![Document image Document image](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/0snNZwHWzxuXlNu30n7IA_image.png?format=webp)
Используя SDK Parse Swift, вы можете создать структуру, соответствующую ParseObject для представления ваших данных. Например, если у вас есть класс Todo :
Создайте объект Todo и сохраните:
Запрос всех элементов Todo:
Если вы предпочитаете стандартные HTTP-запросы, вы можете использовать REST API. Например, чтобы создать новый Todo:
GraphQL также поддерживается. Вот пример мутации для создания Todo:
Если вашему приложению на Swift нужны обновления в реальном времени, Back4App поддерживает живые запросы. Для iOS:
- Включите живые запросы в настройках вашего Сервера.
- Подключитесь указав Parse.liveQueryServerURL в вашем приложении:
- Подпишитесь на обновления в реальном времени:
Теперь, когда Todo создается, обновляется или удаляется, вы будете получать обновления в реальном времени. Это особенно полезно для совместных или чувствительных ко времени функций в разработке вашего бэкенда на Swift.
Back4App использует Списки управления доступом (ACL) и Разрешения на уровне класса (CLP) для защиты ваших данных. ACL позволяют вам определять разрешения для каждого объекта, в то время как CLP устанавливают правила доступа по умолчанию для всего класса.
![Document image Document image](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/PdAyrw1nqA1QQJFuCc-4t_image.png?format=webp)
В панели управления Back4App:
- Перейдите в Базу данных и выберите класс (например, “Todo”).
- Откройте Разрешения на уровне класса.
- Настройте ограничения на чтение, запись или публичный доступ.
При создании или обновлении ParseObject в Swift вы можете установить ACL. Например:
Это гарантирует, что только указанный пользователь может читать или изменять этот объект. Сочетание ACL и CLP формирует надежную, многоуровневую модель безопасности для данных вашего приложения.
Облачный код позволяет вам выполнять серверную логику на Swift (или JavaScript, если вы используете оригинальный стиль облачного кода Parse) без раскрытия секретов клиенту. Это идеально подходит для валидаций, триггеров, запланированных задач и многого другого.
Вот пример на основе JavaScript, но вы также можете работать на TypeScript или вызывать из Swift. В вашей папке Cloud Code создайте main.js:
Вы можете установить модули NPM, включив их в ваш package.json файл, а затем вызывая их в main.js. После развертывания вы можете вызывать эти функции из вашего кода Swift, используя callFunction.
Разверните ваш Cloud Code через:
Вы также можете развернуть через панель управления Back4App, перейдя в Cloud Code > Functions. Вставьте ваш код в онлайн-редактор и нажмите Deploy.
В панели Dashboard, вы увидите класс по умолчанию _User для учетных записей пользователей. Включите любые дополнительные провайдеры аутентификации (Apple, Facebook, Google и т.д.) на странице Auth Settings вашего приложения, если это необходимо.
Back4App поддерживает вход через OAuth с Google, Apple и Facebook. Настройте этих провайдеров на странице Auth настроек и используйте соответствующий код интеграции Parse Swift в вашем приложении Swift (например, ParseFacebookUtils или ParseAppleUtils) для обработки потоков аутентификации. Для получения подробной информации смотрите Документация по социальному входу.
Вы можете хранить изображения, видео или любые файлы в Back4App. В Swift у вас есть ParseFile:
Затем вы можете прикрепить этот файл к ParseObject и сохранить. Получите URL файла, чтобы отобразить или скачать его в другом месте.
Чтобы ограничить доступ к файлам, вы можете использовать конфигурацию файлов Parse Server. Например, вы можете разрешить загружать файлы только аутентифицированным пользователям или указать права на чтение/запись в вашем коде Swift.
Подтверждение электронной почты пользователя гарантирует наличие реального, активного почтового ящика. Сброс пароля помогает вашим пользователям безопасно восстановить доступ к учетной записи, если они забыли учетные данные.
Перейдите в Настройки электронной почты и включите Подтверждение электронной почты. Отредактируйте свои шаблоны электронной почты для процессов подтверждения и сброса.
Вы можете планировать серверные задачи на Back4App. Например, очистка старых данных или отправка еженедельных отчетов. Определите задание в вашем облачном коде и запланируйте его через панель управления Back4App.
Затем, в Настройки сервера Back4App > Фоновая работа, вы можете запланировать его выполнение ежедневно или с любым интервалом.
![Запланировать облачную задачу Запланировать облачную задачу](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/5wG60YnWIST74erryTb-u_image.png?format=webp)
Вебхуки позволяют вашему приложению автоматически отправлять данные на внешние сервисы, когда происходят определенные события. Это идеально подходит для интеграции с Slack, Stripe или другими сторонними API.
- В вашей панели управления Back4App перейдите к Дополнительно > Вебхуки.
- Добавьте конечную точку вебхука (например, https://example.com/webhook).
- Выберите триггеры (например, создание объекта в “Todo”).
![Добавление вебхука Добавление вебхука](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/morUMdwsAbVQ1EmBfUfAA_image.png?format=webp)
Для пользовательской логики вы также можете отправлять запросы на внешние URL в триггерах облачного кода:
![Перед сохранением WebHook Перед сохранением WebHook](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/fXvy4eRzabyWmN80OMyqW_image.png?format=webp)
Приложение Back4App Admin App – это интерфейс с возможностью щелчка мыши для нетехнического или вспомогательного персонала. Он предоставляет простой графический интерфейс для выполнения операций CRUD с вашими данными — отлично подходит для управления данными вне вашей среды разработки.
- Перейдите в панель управления приложением > Дополнительно > Приложение администратора.
- Включите приложение администратора и выберите поддомен.
- Создайте администратора.
![Включить приложение администратора Включить приложение администратора](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/5BTk1ntDh9JLXurObmm_o_image.png?format=webp)
После активации любой человек с соответствующими учетными данными может просматривать и редактировать ваши данные через удобный веб-интерфейс — код не требуется.
Следуя этому полному руководству, вы узнали как создать бэкенд для Swift с использованием Back4App. В частности, вы:
- Создали безопасный бэкенд для вашего Swift приложения.
- Настроили базу данных с классами схем и отношениями данных.
- Работали с запросами в реальном времени (Live Queries) для немедленных обновлений.
- Установили надежную безопасность с помощью ACL и CLP.
- Использовали Cloud Code для выполнения пользовательской логики на стороне сервера.
- Реализовали аутентификацию пользователей с проверкой и сбросом паролей.
- Обрабатывали загрузку файлов безопасно.
- Запланировали автоматизированные задачи с помощью Cloud Jobs.
- Узнали о Webhooks для интеграции внешних API.
- Изучили панель администратора для прямого управления данными.
Теперь у вас есть функциональный, масштабируемый бэкенд-сервис для вашего Swift приложения — который можно легко расширить для обработки более сложных функций, подключения к сторонним сервисам или адаптации к большему пользовательскому трафику. Вы также увидели на собственном опыте, как сочетание функций BaaS от Back4App и современного синтаксиса Swift может ускорить разработку бэкенда.
- Создайте готовое к производству приложение на Swift, доработав ваш UI/UX.
- Интегрируйте расширенные функции такие как специализированная аутентификация (на основе ролей, SSO) или дополнительная логика Cloud Code для специфических правил.
- Посмотрите официальную документацию Back4App для более глубокого изучения логов, аналитики или расширенной безопасности.
- Изучите другие учебники по чатам в реальном времени, IoT панелям управления или приложениям на основе местоположения. Объедините их с внешними API для решения реальных задач.
Вот как создать бэкенд для Swift с использованием Back4App! Удачного кодирования!
![Doc contributor](https://s3.amazonaws.com/archbee-animals/cat.png)