Quickstarters
Feature Overview
How to Build a Backend for iOS?
40 мин
введение в этом учебном пособии вы узнаете как создать бэкенд для ios с использованием back4app https //www back4app com мы пройдем через интеграцию основных функций back4app — таких как управление базами данных, облачные функции, rest и graphql api, аутентификация пользователей, хранение файлов и запросы в реальном времени (live queries) — чтобы создать безопасный, масштабируемый и надежный бэкенд для вашего ios приложения предложения back4app по бэкенду как услуге помогают снизить сложность настройки серверной инфраструктуры и ускорить разработку вы можете хранить данные в гибком формате nosql, управлять учетными записями пользователей, добавлять push уведомления , и применять расширенные средства управления доступом за считанные минуты по сравнению с созданием индивидуального решения это означает, что вы можете сосредоточиться на улучшении пользовательского опыта и реализации основных функций, а не беспокоиться о техническом обслуживании сервера или его настройке к концу этого учебного пособия у вас будет готовый бэкенд, который можно адаптировать к реальным сценариям, масштабировать для увеличения трафика и расширять с более сложной логикой или сервисами третьих сторон вы сможете предоставить надежный бэкенд для вашего ios приложения, ускорить ваш процесс разработки , и улучшить ваш общий пользовательский интерфейс с меньшими усилиями предварительные требования чтобы завершить этот учебник, вам потребуется учетная запись back4app и новый проект back4app начало работы с back4app https //www back4app com/docs/get started/new parse app если у вас нет учетной записи, вы можете создать ее бесплатно следуйте приведенному выше руководству, чтобы подготовить ваш проект базовая среда разработки ios вы можете разрабатывать с помощью xcode (версии 13 0 или выше) установите xcode https //developer apple com/xcode/ swift package manager или cocoapods для добавления parse swift следуйте инструкциям parse swift на github https //github com/netreconlab/parse swift для деталей установки знание swift и концепций ios документация apple по swift https //docs swift org/swift book/ если вы новичок в swift или ios, ознакомьтесь с официальной документацией или базовым учебником по ios перед началом наличие работающей среды ios с xcode, а также вашей бесплатной учетной записи back4app поможет вам более плавно следовать инструкциям шаг 1 – создание нового проекта на back4app и подключение почему стоит создать новый проект? новый проект back4app формирует основу вашего разработки бэкенда для ios он предоставляет все необходимые инструменты — базу данных, api, аутентификацию, облачные функции — для того, чтобы пошаговая инструкция войдите в свою учетную запись back4app создайте новое приложение нажав «новое приложение» на вашей панели управления back4app дайте вашему приложению имя (например, «ios backend demo») после создания ваш новый проект появится на вашей панели управления back4app установка parse swift sdk и настройка ключей back4app использует платформу parse в качестве основы для ios используйте parse swift sdk 1 получите ваши ключи parse на панели управления back4app перейдите в «настройки приложения» или «безопасность и ключи», чтобы найти идентификатор приложения ключ клиента (или ключ swift, если применимо) url сервера (часто https //parseapi back4app com ) 2 добавьте parse swift sdk если вы используете swift package manager // in package swift or xcode's swift packages package( url "https //github com/netreconlab/parse swift git", from "5 0 0" ) если вы используете cocoapods , добавьте в ваш podfile pod 'parseswiftog' затем выполните pod install 3 инициализируйте parse внутри вашего appdelegate swift (или главного файла swiftui приложения) вызовите parseswift initialize( ) с вашими учетными данными import swiftui import parseswift @main struct myapp app { init() { do { try await parseswift initialize( applicationid "your app id", clientkey "your client key", // optional serverurl url(string "https //parseapi back4app com")! ) } catch { print("error initializing parse \\\\(error)") } } var body some scene { windowgroup { contentview() } } } поздравляем! ваше ios приложение теперь подключено к back4app, и каждый запрос или транзакция данных будут проходить через parse swift автоматически шаг 2 – настройка базы данных 1 создание модели данных back4app использует подход schema , где каждый класс/таблица может управляться из панели управления предположим, мы хотим создать класс todo перейдите в “база данных” в вашей консоли back4app нажмите “создать новый класс” , назовите его todo , и добавьте столбцы, такие как title (string) и iscompleted (boolean) 2 создание модели данных с помощью ai агента ai агент back4app может ускорить проектирование вашей схемы откройте ai агента в вашей панели управления опишите вашу модель данных простым языком (например, “создайте новый класс todo с полями title и iscompleted”) позвольте ai автоматически создать схему для вас 3 чтение и запись данных с использованием swift sdk с помощью parse swift , определите структуру ваших данных в коде например import parseswift struct todo parseobject { // parseobject protocol var objectid string? var createdat date? var updatedat date? var acl parseacl? var originaldata data? // custom properties var title string? var iscompleted bool? } // saving func createtodoitem(title string, iscompleted bool) async { var todo = todo() todo title = title todo iscompleted = iscompleted do { let saved = try await todo save() print("saved objectid \\\\(saved objectid ?? "")") } catch { print("error saving \\\\(error)") } } // querying func fetchtodos() async { do { let todos = try await todo query() find() print("fetched \\\\(todos count) todos") } catch { print("error fetching \\\\(error)") } } 4 чтение и запись данных с использованием rest api в качестве альтернативы вы можете использовать rest запросы например, чтобы создать задачу curl x post \\ h "x parse application id your app id" \\ h "x parse rest api key your rest api key" \\ h "content type application/json" \\ d '{"title" "buy groceries", "iscompleted" false}' \\ https //parseapi back4app com/classes/todo 5 чтение и запись данных с использованием graphql api back4app также включает поддержку graphql вот пример мутации mutation { createtodo(input { fields { title "clean house" iscompleted false } }) { todo { objectid title iscompleted } } } 6 работа с живыми запросами (по желанию) back4app поддерживает обновления в реальном времени через живые запросы для swift let subscription = try? todo query("iscompleted" == false) subscribe() subscription? handleevent({ event in switch event { case created(let newtodo) print("new todo created \\\\(newtodo)") case updated(let updatedtodo) print("todo updated \\\\(updatedtodo)") default break } }) шаг 3 – применение безопасности с помощью acl и clp 1 обзор списки контроля доступа https //www back4app com/docs/security/parse security (acl) контролируют разрешения на уровне объектов, в то время как разрешения на уровне классов (clp) устанавливают значения по умолчанию для целых классов 2 шаги разрешения на уровне классов в панели управления back4app откройте класс (например, todo ), затем нажмите на вкладку “безопасность” вы можете ограничить чтение/запись только для аутентифицированных пользователей или ролей acl в коде когда вы сохраняете parseobject, вы можете назначить acl настройте эти параметры, чтобы гарантировать, что ваши данные доступны только правильным пользователям шаг 4 – написание функций облачного кода 1 зачем облачный код? облачный код – ваш лучший друг для добавления логики на стороне сервера в ваше ios приложение вы можете держать чувствительную логику или проверки подальше от клиента, интегрировать внешние api и выполнять фоновые задачи на сервере 2 пример функции создайте файл main js локально (или в онлайн редакторе) с функцией parse cloud define("calculatetextlength", async (request) => { const { text } = request params; if (!text) { throw "no text provided"; } return { length text length }; }); 3 развертывание используйте back4app cli https //www back4app com/docs/local development/parse cli или редактор cloud code > functions в панели управления установите cli настройте ваш ключ учетной записи разверните 4 вызов cloud code из ios task { do { if let result = try await parsecloud callfunction("calculatetextlength", with \["text" "hello back4app"]) as? \[string int] { print("text length \\\\(result\["length"] ?? 0)") } } catch { print("cloud code error \\\\(error)") } } 5 использование модулей npm в вашем файле package json (в cloud code) перечислите ваши зависимости затем в main js const axios = require('axios'); parse cloud define("fetchposts", async () => { // use axios here }); шаг 5 – настройка аутентификации 1 включите аутентификацию пользователей в вашей панели управления back4app класс user уже предоставлен вы можете настроить проверку электронной почты, сброс пароля и многое другое 2 примеры кода для ios зарегистрироваться войти 3 социальный вход вы можете интегрировать социальные входы (google, apple, facebook) с parse swift смотрите документация по социальному входу https //www back4app com/docs/platform/sign in with apple для подробных инструкций шаг 6 – обработка хранения файлов 1 настройка хранения файлов загружайте и извлекайте файлы, такие как изображения или документы, через parse для swift struct gamescore parseobject { var objectid string? var createdat date? var updatedat date? var acl parseacl? var originaldata data? var score int? var picture parsefile? } func uploadimagedata( data data) async { var file = parsefile(name "photo jpg", data data) do { file = try await file save() print("file url \\\\(file url ?? "")") } catch { print("error uploading file \\\\(error)") } } 2 извлечение файлов func fetchimage(file parsefile) async { do { let fetched = try await file fetch() print("fetched localurl \\\\(fetched localurl? absolutestring ?? "")") } catch { print("error fetching file \\\\(error)") } } 3 соображения по безопасности вы можете настроить разрешения на файлы в настройках back4app или в файле вашего приложения parse config например, ограничьте, кто может загружать или удалять файлы шаг 7 – подтверждение электронной почты и сброс пароля 1 зачем подтверждение? подтверждение электронной почты гарантирует, что пользователь владеет указанным адресом электронной почты процессы сброса пароля позволяют пользователям безопасно восстанавливать учетные записи 2 настройка в back4app перейдите к настройки приложения > настройки электронной почты пользователя включите проверку электронной почты настройте электронную почту отправителя , шаблоны электронной почты и необязательный пользовательский домен 3 реализация task { do { try await user requestpasswordreset(email "johnny\@example com") print("password reset email sent") } catch { print("error resetting password \\\\(error)") } } шаг 8 – планирование задач с помощью облачных заданий 1 обзор используйте облачные задания для автоматизации задач, таких как удаление старых записей или отправка ежедневных уведомлений они выполняются на серверной стороне , не инициируются напрямую клиентом 2 пример parse cloud job("cleanupoldtodos", async (request) => { const todo = parse object extend("todo"); const query = new parse query(todo); // older than 30 days const cutoff = new date(date now() 30 24 60 60 1000); query lessthan("createdat", cutoff); const oldtodos = await query find({ usemasterkey true }); await parse object destroyall(oldtodos, { usemasterkey true }); return `deleted ${oldtodos length} old todos `; }); запланируйте эту задачу в панели управления back4app в разделе настройки сервера > фоновые задачи для периодического выполнения шаг 9 – интеграция вебхуков 1 определение вебхуки позволяют вашему приложению отправлять данные во внешние сервисы, когда происходят определенные события например, уведомлять канал slack, когда создается задача 2 конфигурация панель управления перейдите в дополнительно > вебхуки и выберите “добавить вебхук ” установить конечную точку например, https //my server com/webhook endpoint событие триггер например, “новая запись в классе задача ” 3 пример кода parse cloud aftersave("todo", async (request) => { const { object } = request; // make an http post to an external url // containing the new todo details }); шаг 10 – изучение панели администратора back4app 1 где это найти ваша панель администратора доступна через “еще” > “админ приложение” в панели управления back4app создайте администратора и выберите поддомен для удобного доступа 2 функции просмотр данных просмотр и редактирование классов в удобном формате логи проверьте серверные логи и логи cloud code аналитика мониторинг использования, push уведомлений и т д заключение в этом учебном пособии вы узнали как создать бэкенд для ios с использованием back4app и parse swift sdk вы интегрировали масштабируемую базу данных, реализовали безопасность с помощью acl и clp, написали функции cloud code, настроили аутентификацию пользователей, обработали хранение файлов и даже запланировали фоновые задачи с этими основными функциями вы можете предложить надежный бэкенд для вашего мобильного приложения ios , сосредоточившись на пользовательском опыте и уникальных функциях следующие шаги изучите расширенные роли и пользовательские средства управления доступом для многоуровневой безопасности интегрируйте расширенные функции такие как push уведомления, геозапросы или внешние источники данных просмотрите официальную документацию back4app для советов по производительности, анализа журналов или аналитики в реальном времени попробуйте дополнительные учебные пособия по чат приложениям, интеграции iot или расширениям электронной коммерции используя back4app, вы получаете платформу с открытым исходным кодом , которая является отличным вариантом для снижения сложности, легкого хранения данных и внедрения функциональности в реальном времени в ваше ios приложение реализация этих шагов освобождает вас для работы над дизайном, пользовательскими потоками или бизнес логикой, создавая надежный бэкенд для вашего ios приложения за короткое время