Quickstarters
CRUD Samples
Как создать CRUD приложение на iOS с Swift?
27 мин
обзор этот пошаговый процесс поможет вам создать простое crud (создание, чтение, обновление, удаление) приложение для ios используя back4app в качестве облачного бэкенда, вы научитесь настраивать свой проект, разрабатывать гибкую модель данных и реализовывать функциональность crud с помощью swift этот учебник демонстрирует, как интегрировать ваше ios приложение с back4app, используя либо parse ios sdk, либо rest api, обеспечивая плавное управление данными и безопасную аутентификацию сначала вы создадите проект back4app — названный basic crud app ios — который предоставляет масштабируемую, нереляционную базу данных для вашего приложения вы определите свои структуры данных, создавая классы и поля вручную или с помощью ai агента back4app затем вы изучите, как управлять своим бэкендом с помощью интуитивно понятного приложения back4app admin, инструмента перетаскивания, предназначенного для упрощения манипуляции данными наконец, вы свяжете ваше ios приложение с бэкендом, используя либо parse ios sdk (когда это применимо), либо вызовы rest/graphql api, и внедрите безопасную аутентификацию пользователей к концу этого руководства вы создадите готовое к производству ios приложение, которое выполняет основные операции crud, включая безопасный вход пользователей и обработку данных основные идеи научитесь создавать ios crud приложение с эффективным бэкендом поймите, как спроектировать масштабируемый бэкенд и бесшовно связать его с ios приложением узнайте, как использовать приложение back4app admin для упрощенного создания, извлечения, изменения и удаления данных изучите варианты контейнеризованного развертывания и дальнейшие улучшения для вашего ios проекта предварительные требования перед тем как начать, убедитесь, что у вас есть аккаунт back4app с активным проектом нужна помощь? смотрите начало работы с back4app https //www back4app com/docs/get started/new parse app настройка для разработки ios используйте xcode (версия 12 или выше) и убедитесь, что ваша среда разработки обновлена твердое понимание swift, объектно ориентированного программирования и основ rest api смотрите документацию по swift https //developer apple com/swift/ для получения дополнительной информации шаг 1 – настройка вашего проекта создание нового проекта back4app войдите в свой аккаунт back4app нажмите на кнопку “новое приложение” на вашей панели управления назовите ваш проект basic crud app ios и следуйте инструкциям на экране, чтобы завершить настройку создать новый проект после создания проекта он появится на вашей панели управления, закладывая основу для вашей конфигурации бэкенда шаг 2 – создание вашей модели данных определение ваших структур данных для этого приложения crud на ios вы создадите несколько классов (коллекций) в вашем проекте back4app ниже приведены основные классы и их поля, необходимые для поддержки ваших операций crud 1\ класс items этот класс будет хранить информацию о каждом элементе поле тип данных описание ид идентификатор объекта автоматически сгенерированный уникальный идентификатор название строка название или заголовок элемента описание строка краткое резюме или детали о предмете создано дата метка времени, указывающая, когда элемент был создан обновлено дата метка времени, указывающая на последнее обновление элемента 2\ класс пользователей этот класс управляет учетными данными пользователей и данными аутентификации поле тип данных описание ид идентификаторобъекта автоматически сгенерированный уникальный идентификатор имя пользователя строка уникальный идентификатор для пользователя электронная почта строка уникальный адрес электронной почты пользователя хешпароля строка зашифрованный пароль для безопасной аутентификации создано дата время создания учетной записи обновлено дата время последнего обновления аккаунта вы можете определить эти классы и поля непосредственно в панели управления back4app создать новый класс вы можете добавить столбцы, выбрав тип данных, назвав поле, установив значение по умолчанию и отметив его как обязательное, если это необходимо создать колонку использование ai агента back4app для настройки схемы интегрированный ai агент в вашей панели управления может автоматически генерировать вашу схему данных из описания это помогает упростить настройку и гарантирует, что ваша модель данных поддерживает все необходимые операции crud как использовать ai агента откройте ai агента получите доступ через настройки вашего проекта в панели управления back4app опишите вашу модель данных предоставьте подробный запрос, описывающий классы и их соответствующие поля просмотрите и реализуйте изучите предложенную схему и подтвердите применение конфигурации пример запроса create the following classes in my back4app project 1\) class items \ fields \ id objectid (auto generated) \ title string \ description string \ createdat date (auto generated) \ updatedat date (auto updated) 2\) class users \ fields \ id objectid (auto generated) \ username string (unique) \ email string (unique) \ passwordhash string \ createdat date (auto generated) \ updatedat date (auto updated) этот подход с использованием ai экономит время и обеспечивает согласованную, оптимизированную структуру данных для вашего ios приложения шаг 3 – запуск админ приложения и управление операциями crud обзор приложения администратора приложение администратора back4app предоставляет интерфейс без кода для эффективного управления вашими данными на сервере его удобные функции перетаскивания упрощают процесс создания, чтения, обновления и удаления записей включение приложения администратора перейдите в раздел “дополнительно” на вашей панели управления back4app выберите “приложение администратора” и нажмите “включить приложение администратора ” настройте свои учетные данные администратора создав начальную учетную запись администратора, которая также установит системные роли (такие как b4aadminuser ) включить приложение администратора после активации войдите в приложение администратора, чтобы управлять вашими данными панель управления приложения администратора управление данными с помощью приложения администратора в приложении администратора вы можете вставить записи используйте функцию “добавить запись” в любом классе (например, товары), чтобы ввести новые записи просмотреть/изменить записи выберите запись, чтобы просмотреть ее детали или изменить ее поля удалить записи удалите записи, которые больше не нужны этот интуитивно понятный интерфейс упрощает управление сервером и повышает производительность шаг 4 – подключение вашего ios приложения к back4app с вашим бэкендом готовым, следующим шагом является связывание вашего ios приложения с back4app вариант a использование parse ios sdk установите sdk для ios от parse вы можете интегрировать sdk, используя swift package manager или cocoapods для cocoapods добавьте следующее в ваш podfile pod 'parse' инициализируйте parse в вашем приложении в вашем appdelegate настройте parse, вставив следующий код // appdelegate swift import uikit import parse @uiapplicationmain class appdelegate uiresponder, uiapplicationdelegate { func application( application uiapplication, didfinishlaunchingwithoptions launchoptions \[uiapplication launchoptionskey any]?) > bool { let configuration = parseclientconfiguration { $0 applicationid = "your application id" $0 clientkey = "your ios key" // replace with your ios key $0 server = "https //parseapi back4app com" } parse initialize(with configuration) return true } // } реализовать операции crud создайте класс сервиса на swift для обработки ваших операций с данными например, сервис для получения и отображения элементов // itemsservice swift import foundation import parse class itemsservice { func fetchitems(completion @escaping (\[pfobject]?) > void) { let query = pfquery(classname "items") query findobjectsinbackground { (objects, error) in if let error = error { print("error retrieving items \\(error localizeddescription)") completion(nil) } else { completion(objects) } } } func additem(title string, description string) { let item = pfobject(classname "items") item\["title"] = title item\["description"] = description item saveinbackground { (success, error) in if success { print("item successfully created ") } else if let error = error { print("creation error \\(error localizeddescription)") } } } func modifyitem(objectid string, newtitle string, newdescription string) { let query = pfquery(classname "items") query getobjectinbackground(withid objectid) { (item, error) in if let item = item { item\["title"] = newtitle item\["description"] = newdescription item saveinbackground { (success, error) in if success { print("item updated ") } else if let error = error { print("update error \\(error localizeddescription)") } } } else if let error = error { print("error finding item \\(error localizeddescription)") } } } func removeitem(objectid string) { let query = pfquery(classname "items") query getobjectinbackground(withid objectid) { (item, error) in if let item = item { item deleteinbackground { (success, error) in if success { print("item deleted ") } else if let error = error { print("deletion error \\(error localizeddescription)") } } } else if let error = error { print("error locating item \\(error localizeddescription)") } } } } вариант b использование rest или graphql если sdk parse для ios не подходит вам, вы можете выполнять операции crud через rest вызовы например, чтобы получить элементы с помощью rest на swift import foundation class restclient { func retrieveitems() { guard let url = url(string "https //parseapi back4app com/classes/items") else { return } var request = urlrequest(url url) request httpmethod = "get" request addvalue("your application id", forhttpheaderfield "x parse application id") request addvalue("your rest api key", forhttpheaderfield "x parse rest api key") urlsession shared datatask(with request) { data, response, error in if let error = error { print("error fetching items \\(error localizeddescription)") return } guard let data = data else { return } if let json = try? jsonserialization jsonobject(with data, options \[]) { print("fetched items \\(json)") } } resume() } } интегрируйте эти методы api в ваши классы swift по мере необходимости шаг 5 – обеспечение безопасности вашего бэкенда настройка списков контроля доступа (acl) защитите свои данные, настроив acl например, чтобы создать элемент, к которому может получить доступ только его владелец import parse func createprivateitem(title string, description string, owner pfuser) { let item = pfobject(classname "items") item\["title"] = title item\["description"] = description let acl = pfacl() acl setreadaccess(true, for owner) acl setwriteaccess(true, for owner) acl publicreadaccess = false acl publicwriteaccess = false item acl = acl item saveinbackground { (success, error) in if success { print("private item successfully created ") } else if let error = error { print("error saving item \\(error localizeddescription)") } } } разрешения на уровне класса (clp) в панели управления back4app настройте clp для ваших классов, чтобы обеспечить меры безопасности по умолчанию это гарантирует, что только аутентифицированные пользователи или назначенные роли имеют доступ к конкретным данным шаг 6 – реализация аутентификации пользователей настройка учетных записей пользователей back4app использует встроенный класс parse user для управления аутентификацией в вашем ios приложении обрабатывайте регистрацию и вход пользователей, как показано ниже import parse class authservice { func registeruser(username string, password string, email string) { let user = pfuser() user username = username user password = password user email = email user signupinbackground { (succeeded, error) in if succeeded { print("user registered successfully!") } else if let error = error { print("registration failed \\(error localizeddescription)") } } } func loginuser(username string, password string) { pfuser loginwithusername(inbackground username, password password) { (user, error) in if let user = user { print("logged in as \\(user username ?? "unknown")") } else if let error = error { print("login error \\(error localizeddescription)") } } } } аналогичный подход можно реализовать для управления сессиями, сбросами паролей и другими функциями аутентификации шаг 7 – заключение и будущие улучшения поздравляем! вы успешно создали приложение crud на ios, которое интегрируется с back4app вы настроили проект под названием basic crud app ios , разработали классы items и users и управляли своими данными с помощью приложения back4app admin кроме того, вы подключили свое ios приложение через parse sdk (или через rest/graphql) и реализовали основные меры безопасности будущие шаги расширьте приложение рассмотрите возможность добавления таких функций, как расширенная фильтрация, детальные представления элементов или обновления в реальном времени улучшите возможности бэкенда экспериментируйте с облачными функциями, интеграциями сторонних api или более детальным контролем доступа на основе ролей углубите свои знания посетите документацию back4app https //www back4app com/docs и изучите дополнительные учебные пособия, чтобы еще больше оптимизировать ваше приложение счастливого кодирования и удачи в вашем пути к созданию надежных приложений для ios!