Quickstarters

Как создать серверную часть для SwiftUI?

41min

Введение

В этом учебном пособии вы научитесь создавать полный бэкенд для приложения SwiftUI для iOS с использованием Back4App.

Мы покажем вам, как интегрировать Parse Swift SDK в ваш проект SwiftUI и воспользоваться ключевыми функциями Back4App — такими как управление базами данных, функции Cloud Code, REST и GraphQL API, аутентификация пользователей и запросы в реальном времени — для создания безопасного и масштабируемого бэкенда.

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

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

К концу вы поймете, как создать бэкенд для SwiftUI, который можно расширить для производственной среды или интегрировать с пользовательской логикой и API.

Давайте начнем создавать надежный, масштабируемый бэкенд с минимальными затратами!

Предварительные требования

  • Учетная запись Back4app и новый проект Back4app Начало работы с Back4app. Если у вас нет учетной записи, вы можете создать ее бесплатно. Следуйте приведенному выше руководству, чтобы подготовить ваш проект.
  • Базовая среда разработки SwiftUI Вам потребуется Xcode установленный на вашем компьютере и базовый проект SwiftUI или iOS.
  • Swift Package Manager или CocoaPods Чтобы добавить Parse Swift SDK. Документация Parse Swift SDK.
  • Знание Swift и SwiftUI Если вы новичок в SwiftUI, ознакомьтесь с Документацией Apple по SwiftUI. перед началом.

Убедитесь, что все это на месте, прежде чем вы начнете. Настройка вашего проекта Back4app и вашей локальной среды SwiftUI поможет вам легче следовать инструкциям.

Шаг 1 – Настройка проекта Back4app

Создание нового проекта

Первый шаг в создании вашего бэкенда SwiftUI на Back4App – это создание нового проекта. Если вы еще не создали его, выполните следующие шаги:

  1. Войдите в свою учетную запись Back4app.
  2. Нажмите кнопку “Новое приложение” на вашей панели управления Back4app.
  3. Дайте вашему приложению имя (например, “SwiftUI-Backend-Tutorial”).
Document image


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

Подключите Parse Swift SDK

Back4app полагается на платформу Parse для управления вашими данными, предоставления функций в реальном времени, обработки аутентификации пользователей и многого другого. Подключение вашего приложения SwiftUI к Back4app включает установку Parse Swift SDK и его инициализацию с учетными данными из вашей панели управления Back4app.

Получите свои ключи Parse: В вашей панели управления Back4app перейдите в раздел “Настройки приложения” или “Безопасность и ключи”, чтобы найти ваш Идентификатор приложения и Ключ клиента (или Ключ JavaScript). Вы также найдете URL сервера Parse (часто в формате https://parseapi.back4app.com).

Document image


Установите SDK Parse для Swift:

Если вы используете Swift Package Manager, откройте ваш проект в Xcode и затем:

  1. ФайлДобавить пакеты → введите URL https://github.com/netreconlab/Parse-Swift.git.
  2. Выберите “До следующей основной версии” из правил версии и подтвердите.

Если вы используете CocoaPods:

Bash


Инициализируйте Parse в вашем приложении. Например, в вашем App структуре:

Swift


Завершив этот шаг, вы установили безопасное соединение между вашим фронтендом на SwiftUI и бэкендом Back4app. Все запросы и транзакции данных обрабатываются с помощью Parse Swift SDK, что снижает сложность ручных вызовов REST или GraphQL (хотя вы все равно можете использовать их при необходимости).

Шаг 2 – Настройка базы данных

Сохранение и запрос данных

С вашим проектом Back4app, настроенным и интегрированным с Parse Swift SDK, вы теперь можете начать сохранять и извлекать данные. Ниже приведен простой ParseObject пример. Предположим, у нас есть Todo структура:

Swift


Сохранение нового Todo:

Swift


Запрос всех Todos:

Swift


В качестве альтернативы вы можете использовать Back4app’s REST API конечные точки или GraphQL:

Curl


GraphQL:

GraphQL


Наличие нескольких вариантов (Parse Swift SDK, REST, GraphQL) позволяет вам выбрать подход, который лучше всего подходит для вашего рабочего процесса.

Проектирование схемы и типы данных

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

  1. Перейдите в раздел “База данных” в вашей панели управления Back4app.
  2. Создайте новый класс (например, “Todo”) и добавьте соответствующие столбцы, такие как title (String) и isCompleted (Boolean).
Создать новый класс
Создать новый класс


Back4app поддерживает различные типы данных: String, Number, Boolean, Object, Date, File, Pointer, Array, Relation, GeoPoint, и Polygon. Вы можете выбрать подходящий тип для каждого поля.

Создать колонку
Создать колонку


Back4app также предоставляет AI Agent, который может помочь вам разработать вашу модель данных:

  1. Откройте AI Agent из вашей панели управления приложением.
  2. Опишите вашу модель данных простым языком (например, “Пожалуйста, создайте новую схему класса ToDo.”).
  3. Позвольте AI Agent сгенерировать схему для вас.
Document image


Реляционные данные

Если у вас есть реляционные данные — скажем, объект Категория, который указывает на несколько Задач — вы можете использовать Указатели или Связи в Parse. Например:

Swift


При запросе вы также можете включить данные указателя:

Swift


Живые запросы

Для обновлений в реальном времени Back4app предоставляет Живые запросы. В вашем приложении SwiftUI вы можете подписаться на изменения в конкретном классе:

  1. Включите Живые запросы в вашей панели управления Back4app в разделе Настройки сервера.
  2. Подпишитесь в коде.
Swift


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

Шаг 3 – Применение безопасности с помощью ACL и CLP

Механизм безопасности Back4app

Back4app предоставляет Списки управления доступом (ACL) и Разрешения на уровне класса (CLP) для надежной безопасности данных. Это позволяет вам ограничить, кто может читать или записывать данные на уровне отдельного объекта или класса, обеспечивая, чтобы только авторизованные пользователи могли изменять ваши данные.

Document image


Списки управления доступом (ACL)

ACL применяется к отдельным объектам. Например, чтобы гарантировать, что только определенный пользователь может читать/записывать Todo:

Swift


Разрешения на уровне класса (CLP)

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

  1. Перейдите на панель управления Back4app и выберите ваше приложение.
  2. Откройте раздел База данных и выберите класс (например, Todo).
  3. Откройте вкладку Разрешения на уровне класса.
  4. Настройте параметры по умолчанию, такие как «Требуется аутентификация» или «Нет доступа».
Document image


Эти разрешения устанавливают широкую базу, в то время как ACL позволяют вам точно настраивать безопасность на уровне объекта. Сочетание обоих обеспечивает надежную модель безопасности. Для получения более подробной информации смотрите Руководство по безопасности приложений.

Шаг 4 – Написание и развертывание облачных функций

Облачный код позволяет вам запускать пользовательский серверный код на Swift (или JavaScript) без управления серверами. Это идеально подходит для добавления бизнес-логики, валидации данных, триггеров или интеграций с бэкендом, которые не должны выполняться с клиента.

Как это работает

  • Напишите ваш облачный код в файле, например, main.js (JavaScript) или используйте среду облачного кода на основе Swift.
  • Разверните в вашем проекте Back4app. Код выполняется в среде Parse Server, поэтому вам не нужно поддерживать свой собственный сервер.
  • Вызовите ваш облачный код с клиента через Swift SDK, REST или GraphQL.

Типичные случаи использования

  • Бизнес-логика: Сложные валидации данных, вычисления полей или внешние интеграции.
  • Триггеры данных: Выполнение логики при сохранении, обновлении или удалении объекта.
  • Безопасность: Защита чувствительных операций от клиента, выполняя их на стороне сервера.

Пример функции

Ниже приведен пример JavaScript Cloud Code (так как Cloud Code в основном использует JS на Back4App), который вычисляет длину текста:

main.js


Развертывание через CLI

  1. Установите Back4app CLI.
  2. Настройте ваш ключ учетной записи:
Bash

  1. Разверните Cloud Code:
Bash


Вызов вашей функции

Из Swift:

Swift


Через REST:

Curl


Шаг 5 – Настройка аутентификации пользователей

Аутентификация пользователей в Back4app

Back4app использует класс ParseUser для обработки безопасной аутентификации. Хеширование паролей, токены сессий и данные обрабатываются автоматически, позволяя вам сосредоточиться на логике приложения.

Настройка аутентификации пользователей

Регистрация нового пользователя:

Swift


Войти в существующего пользователя:

Swift


Токены сессии обрабатываются автоматически Parse. Вы можете выйти:

Swift


Интеграция социального входа

Интеграции с Google, Apple, Facebook, и т.д., возможны с дополнительной настройкой. Проверьте Документацию по социальному входу для получения дополнительной информации.

Подтверждение электронной почты и сброс пароля

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

Swift


Шаг 6 – Обработка хранения файлов

Загрузка и получение файлов

Parse включает ParseFile для обработки загрузки файлов:

Swift


Присоедините его к ParseObject:

Swift


Безопасность файлов

По умолчанию файлы доступны по публичному URL. Вы можете настроить безопасность файлов, используя настройки Parse Server. Для более строгого контроля файлов убедитесь, что только аутентифицированные пользователи или указанные роли могут загружать или получать файлы.

Шаг 7 – Планирование задач с помощью облачных заданий

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

JS


После развертывания, запланируйте это через панель управления Back4app в разделе Настройки сервера > Фоновая работа.

Document image


Шаг 8 – Интеграция вебхуков

Вебхуки позволяют вашему приложению Back4app отправлять HTTP-запросы на внешние сервисы (например, Stripe) всякий раз, когда происходят определенные события. Это полезно для интеграции с инструментами третьих сторон или другими серверными интеграциями.

  1. Перейдите в раздел Вебхуки в вашей панели управления Back4app > Дополнительно > Вебхуки.
  2. Добавьте конечную точку (например, https://your-service.com/webhook).
  3. Настройте какие события (например, новая запись в классе Todo) будут вызывать вебхук.
Добавление вебхука
Добавление вебхука


Например, вы можете отправлять сообщение в Slack каждый раз, когда пользователь создает новую задачу. Это помогает вам поддерживать синхронизацию внешних сервисов с вашими данными Back4app.

Шаг 9 – Изучение панели администратора Back4app

Приложение Back4app Admin App является веб-интерфейсом управления для нетехнических пользователей, позволяющим выполнять операции CRUD с вашими данными. Оно предоставляет удобный интерфейс, который отделен от панели управления Parse, что упрощает управление данными в производственной среде.

Включение приложения администратора

Перейдите в Панель управления приложением > Дополнительно > Приложение администратора и нажмите «Включить приложение администратора».

Включить приложение администратора
Включить приложение администратора


Создайте администратора, который автоматически генерирует роль администратора и связанные классы. Выберите поддомен для интерфейса администратора, затем войдите в систему, чтобы управлять вашими данными через простой интерфейс с возможностью щелчка.

Document image


Заключение

Следуя этому всестороннему руководству, вы узнали:

  • Как создать бэкенд для SwiftUI с использованием Back4app и Parse Swift SDK.
  • Как безопасно хранить данные с помощью пользовательских схем классов и отношений.
  • Как интегрировать запросы в реальном времени (Live Queries) для немедленных обновлений данных.
  • Как применять меры безопасности с использованием ACL и CLP для защиты и управления доступом к данным.
  • Как выполнять бизнес-логику через Cloud Code.
  • Как управлять хранением файлов, аутентификацией и планированием фоновых задач с помощью Cloud Jobs.
  • Как интегрировать ваше приложение с внешними сервисами с помощью вебхуков.

С этими навыками вы можете создать iOS приложение или веб-приложение которое легко управлять, безопасно и готово к масштабированию. Изучите более продвинутые функции — такие как разрешения на основе ролей, push-уведомления или продвинутое кэширование. Вы также можете интегрировать другие API или адаптировать ваш Cloud Code под специализированные случаи использования.

Счастливого кодирования, и наслаждайтесь созданием потрясающих приложений на Back4App!

Следующие шаги

  • Готовое к производству приложение на SwiftUI: Расширьте этот бэкенд, чтобы обрабатывать более сложные модели данных, кэширование и улучшение производительности.
  • Расширенные функции: Углубитесь в специализированную аутентификацию, доступ на основе ролей или интеграцию с API третьих сторон (например, Stripe).
  • Изучите официальную документацию Back4app: Для более глубокого изучения безопасности серверной стороны, анализа журналов и тонкой настройки базы данных.
  • Проверьте дополнительные учебники: Чат в реальном времени, услуги на основе местоположения или многопользовательские приложения — объедините методы, изученные здесь, с внешними API для создания сложных, реальных решений.