Quickstarters
Feature Overview
How to Build a Backend for Objective-C?
37 мин
введение в этом учебном пособии вы узнаете как создать бэкенд для objective c с использованием back4app мы пройдем через интеграцию основных функций back4app — таких как управление базами данных, функции cloud code, rest и graphql api, аутентификация пользователей и запросы в реальном времени — чтобы создать безопасный, масштабируемый и надежный бэкенд, который бесшовно взаимодействует с вашим ios приложением мы будем использовать parse ios sdk, который является открытым исходным кодом, для обработки всех наших требований к данным вы увидите, как сократить время и усилия, необходимые для настройки серверов, хранения и безопасности, используя гибкую среду back4app это учебное пособие покажет примеры кода на objective c, чтобы вы могли вводить текст в соответствии с вашим типичным рабочим процессом в xcode к концу вы получите строительные блоки для мобильного приложения, готового к производству, или сможете настроить его дальше, чтобы он соответствовал вашим конкретным требованиям предварительные требования чтобы завершить это учебное пособие, вам понадобятся учетная запись back4app и новый проект back4app начало работы с back4app https //www back4app com/docs/get started/new parse app если у вас нет учетной записи, вы можете создать ее бесплатно следуйте приведенному выше руководству, чтобы подготовить ваш проект среда разработки objective c убедитесь, что у вас установлена последняя версия xcode скачать xcode из mac app store https //apps apple com/us/app/xcode/id497799835 знания о cocoapods или swift package manager (необязательно, но рекомендуется) руководство по swift package manager https //github com/parse community/parse sdk ios osx знакомство с objective c, основами ios приложений или смежными концепциями документация apple по objective c https //developer apple com/library/archive/documentation/cocoa/conceptual/programmingwithobjectivec/introduction/introduction html убедитесь, что у вас есть все эти предварительные требования, прежде чем начинать, чтобы ваше путешествие прошло гладко шаг 1 – создание нового проекта на back4app и подключение почему этот шаг? новый проект back4app является основой вашего бэкенда он предоставляет вам место для хранения ваших данных, выполнения облачных функций и управления безопасностью давайте начнем с создания проекта back4app создание проекта в back4app войдите в свою учетную запись back4app нажмите “новое приложение” на вашей панели управления back4app назовите ваше приложение (например, “objectivec backend tutorial”) и завершите вы увидите ваше новое приложение на панели управления back4app это приложение будет обрабатывать все настройки бэкенда, которые мы собираемся обсудить установка parse sdk для ios (objective c) back4app работает в тесном сотрудничестве с parse ios sdk этот sdk упрощает операции с данными, функции в реальном времени, аутентификацию пользователей и многое другое для вашего ios приложения получите свои ключи parse в вашей панели управления back4app перейдите в настройки приложения или безопасность и ключи чтобы найти ваш идентификатор приложения и ключ клиента url сервера parse обычно https //parseapi back4app com интеграция parse с использованием swift package manager или cocoapods cocoapods pod 'parse' swift package manager откройте xcode, выберите “файл” > “добавить пакеты…” добавьте репозиторий https //github com/parse community/parse sdk ios osx подтвердите parse в вашей ios цели инициализация parse в objective c откройте appdelegate m и импортируйте модуль parse @import parsecore; // or #import \<parse/parse h> \ (bool)application (uiapplication )application didfinishlaunchingwithoptions (nsdictionary )launchoptions { \[parse initializewithconfiguration \[parseclientconfiguration configurationwithblock ^(id\<parsemutableclientconfiguration> configuration) { configuration applicationid = @"your application id"; configuration clientkey = @"your client key"; configuration server = @"https //parseapi back4app com"; }]]; return yes; } с этим ваше приложение на objective c надежно подключено к вашему бэкенду back4app теперь вы готовы читать, записывать и управлять данными на сервере шаг 2 – настройка базы данных 1\ создание модели данных (схемы) в back4app данные находятся в классах — как таблицы в базе данных предположим, мы хотим создать простой класс “todo” вы можете создать его вручную в разделе база данных панели управления back4app добавьте поля, такие как заголовок (string), iscompleted (boolean) и так далее 2\ создание модели данных с помощью ai агента back4app предлагает ai агента для помощи в создании схемы откройте ai агента в вашей панели управления приложением опишите вашу модель данных на естественном языке (например, “создайте новый класс todo с заголовком, описанием и сроком выполнения ”) позвольте ai настроить все для вас автоматически 3\ чтение и запись данных с использованием sdk с помощью objective c мы можем использовать pfobject для выполнения операций создания и запроса например \#import \<parse/parse h> // create a new todo item pfobject todo = \[pfobject objectwithclassname @"todo"]; \[todo setobject @"buy groceries" forkey @"title"]; \[todo setobject @no forkey @"iscompleted"]; \[todo saveinbackgroundwithblock ^(bool succeeded, nserror error) { if (succeeded) { nslog(@"todo saved successfully!"); } else { nslog(@"error saving todo %@", error localizeddescription); } }]; // query all todos pfquery query = \[pfquery querywithclassname @"todo"]; \[query findobjectsinbackgroundwithblock ^(nsarray nullable objects, nserror nullable error) { if (!error) { for (pfobject item in objects) { nslog(@"todo %@", item\[@"title"]); } } }]; 4\ чтение и запись данных с использованием rest если вы предпочитаете пропустить sdk curl x post \\ h "x parse application id your application 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 back4app также предоставляет интерфейс graphql mutation { createtodo(input { fields { title "wash the car", iscompleted false } }) { todo { objectid title iscompleted } } } 6\ работа с живыми запросами (по желанию) если вашему ios приложению нужны обновления в реальном времени включите live queries в настройки сервера на панели управления back4app настройте parse с livequeryserverurl \[parse initializewithconfiguration \[parseclientconfiguration configurationwithblock ^(id\<parsemutableclientconfiguration> configuration) { configuration applicationid = @"your app id"; configuration clientkey = @"your client key"; configuration server = @"https //parseapi back4app com"; configuration livequeryserverurl = @"wss\ //your subdomain b4a io"; }]]; затем подпишитесь на обновления в реальном времени в вашем коде objective c это гарантирует, что ваш интерфейс пользователя мгновенно отображает последние данные шаг 3 – применение безопасности с помощью acl и clp списки контроля доступа (acl) и разрешения на уровне класса (clp) back4app использует acl и clp для тонкой настройки безопасности clp применяются ко всему классу (таблице), в то время как acl применяются к отдельным объектам настройка разрешений на уровне класса в разделе база данных шаг 4 – написание функций cloud code почему cloud code? cloud code полезен для серверной логики — обработки триггеров, валидаций или фоновых задач он скрывает ваш код от клиента, повышая безопасность пример функции parse cloud define("calculatetextlength", async (request) => { const { text } = request params; if (!text) { throw "no text provided"; } return { length text length }; }); этот пример вычисляет длину строки, предоставленной клиентом развертывание используйте back4app cli https //www back4app com/docs/local development/parse cli или раздел cloud code > functions в панели управления, чтобы развернуть ваш main js вызов cloud code из objective c \[pfcloud callfunctioninbackground @"calculatetextlength" withparameters @{@"text" @"hello back4app"} block ^(id nullable result, nserror nullable error) { if (!error) { nsnumber len = result\[@"length"]; nslog(@"text length %@", len); } }]; шаг 5 – настройка аутентификации пользователи parse класс pfuser в back4app управляет регистрацией, входом и безопасностью по умолчанию pfuser обрабатывает хеширование паролей, сессии и поля пользователей регистрация pfuser user = \[pfuser user]; user username = @"alice"; user password = @"secret123"; user email = @"alice\@example com"; \[user signupinbackgroundwithblock ^(bool succeeded, nserror nullable error) { if (succeeded) { nslog(@"user signed up successfully!"); } else { nslog(@"sign up error %@", error localizeddescription); } }]; вход \[pfuser loginwithusernameinbackground @"alice" password @"secret123" block ^(pfuser nullable user, nserror nullable error) { if (user) { nslog(@"user logged in %@", user username); } else { nslog(@"login error %@", error localizeddescription); } }]; социальный вход back4app поддерживает facebook , apple , google , и т д интегрируйте эти платформы и связывайте пользовательские сессии соответственно проверьте документацию по социальному входу https //www back4app com/docs/platform/sign in with apple шаг 6 – обработка хранения файлов загрузка и получение файлов вы можете хранить изображения, документы или другие бинарные данные, используя pffileobject nsdata imagedata = uiimagepngrepresentation(\[uiimage imagenamed @"localimage"]); pffileobject parsefile = \[pffileobject fileobjectwithname @"image png" data\ imagedata]; pfobject photo = \[pfobject objectwithclassname @"photo"]; \[photo setobject\ parsefile forkey @"imagefile"]; \[photo saveinbackgroundwithblock ^(bool succeeded, nserror nullable error) { if (succeeded) { nslog(@"file uploaded successfully"); } }]; чтобы получить pffileobject photofile = photo\[@"imagefile"]; \[photofile getdatainbackgroundwithblock ^(nsdata nullable data, nserror nullable error) { if (!error) { uiimage image = \[uiimage imagewithdata\ data]; // use the image in your ui } }]; шаг 7 – подтверждение электронной почты и сброс пароля почему это важно? подтверждение электронной почты помогает обеспечить действительность учетной записи пользователя сброс пароля предлагает безопасный процесс, если пользователи забывают свои учетные данные конфигурация панели управления перейдите в настройки электронной почты в вашей панели управления back4app включите подтверждение электронной почты и сброс пароля настройте шаблоны электронной почты по мере необходимости реализация если вы хотите вручную инициировать сброс пароля в вашем приложении \[pfuser requestpasswordresetforemailinbackground @"alice\@example com" block ^(bool succeeded, nserror nullable error) { if (succeeded) { nslog(@"reset email sent!"); } else { nslog(@"error %@", error localizeddescription); } }]; шаг 8 – планирование задач с помощью облачных заданий что такое облачные задания? облачные задания автоматизируют повторяющиеся задачи — такие как очистка старых данных, генерация ежедневных отчетов или отправка массовых уведомлений пример задания по ежедневной очистке в вашем main js parse cloud job("cleanupoldtodos", async (request) => { const todo = parse object extend("todo"); const query = new parse query(todo); 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 `; }); затем запланируйте это в настройки приложения > настройки сервера > фоновая работа вы можете выбрать ежедневный запуск, например шаг 9 – интеграция вебхуков обзор вебхуки позволяют back4app отправлять http запросы на внешние сервисы, когда происходят события, такие как создание объекта конфигурация в вашей панели управления back4app > дополнительно > вебхуки добавьте новую конечную точку (url) определите, какие события вызывают вебхук (например, после сохранения задачи) шаг 10 – изучение панели администратора back4app обзор панель администратора back4app – это простой интерфейс, ориентированный на модели, который могут использовать нетехнические участники для выполнения операций crud без программирования активация в вашей панели управления перейдите в дополнительно > приложение администратора и включите его после создания вашего первого администратора вы можете настроить пользовательский поддомен для доступа к панели эта панель может упростить повседневные задачи, такие как редактирование записей, просмотр журналов или назначение ролей, без необходимости углубляться в сырую базу данных заключение теперь вы увидели как создать бэкенд для objective c с использованием back4app на протяжении этого руководства вы создали новый проект back4app настроили и читали из базы данных с использованием parse ios sdk, rest или graphql включили обновления в реальном времени с помощью live queries применили безопасность с использованием acl и clp развернули cloud code для серверной логики обработали аутентификацию пользователей, хранение файлов, проверку электронной почты и сброс паролей настроили запланированные задачи и вебхуки изучили панель администратора для удобного управления данными эта основа позволяет вам масштабировать ваше ios приложение, сосредоточившись на пользовательском интерфейсе синергия между objective c и back4app — это проверенный способ ускорить разработку, экономя время и усилия следующие шаги улучшите ваш бэкенд с помощью продвинутой пользовательской логики, push уведомлений или аналитики интегрируйте внешние сервисы или библиотеки с открытым исходным кодом для социальной авторизации, выставления счетов или обмена сообщениями проверьте официальную документацию back4app для советов по оптимизации, лучших практик и углубленных руководств создайте примеры из реальной жизни такие как чаты, игровые таблицы лидеров или сервисы на основе местоположения, используя эти шаблоны мы надеемся, что вы нашли это руководство информативным! использование back4app и parse ios sdk помогает вам разработать надежную и безопасную систему без сложного управления сервером, позволяя сосредоточиться на создании вашего лучшего мобильного опыта