Quickstarters
CRUD Samples
如何使用Swift开发iOS的CRUD应用?
25 分
概述 本教程将指导您构建一个简单的 crud(创建、读取、更新、删除)应用程序,用于 ios。 使用 back4app 作为您的云后端,您将学习如何配置项目,设计灵活的数据模型,并使用 swift 实现 crud 功能。 本教程演示了如何将您的 ios 应用与 back4app 集成,利用 parse ios sdk 或 rest api,确保顺畅的数据管理和安全的身份验证。 首先,您将设置一个名为 basic crud app ios 的 back4app 项目——它为您的应用提供可扩展的非关系数据库。您将通过手动创建类和字段或使用 back4app 的 ai agent 来定义数据结构。 接下来,您将探索如何使用直观的 back4app 管理应用程序,这是一个旨在简化数据操作的拖放工具。 最后,您将使用 parse ios sdk(在适用时)或 rest/graphql api 调用将您的 ios 应用程序与后端连接,并集成安全的用户身份验证。 在本指南结束时,您将构建一个生产就绪的 ios 应用程序,执行核心 crud 操作,包括安全的用户登录和数据处理。 主要见解 学习如何创建一个具有高效后端的 ios crud 应用程序。 了解如何架构一个可扩展的后端,并与 ios 应用无缝连接。 发现如何使用 back4app 管理应用程序进行简化的数据创建、检索、修改和删除。 探索容器化部署的选项以及您 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 – 制作您的数据模型 定义您的数据结构 对于这个 ios crud 应用程序,您将在 back4app 项目中建立几个类(集合)。以下是支持您的 crud 操作所需的主要类及其字段。 1\ 项目类 这个类将存储关于每个项目的信息。 字段 数据类型 描述 id 对象id 自动生成的唯一标识符。 标题 字符串 项目的名称或标题。 描述 字符串 关于该项目的简要总结或细节。 创建于 日期 标记项目创建时间的时间戳。 更新时间 日期 标记项目最后更新的时间戳。 2\ 用户类别 这个类管理用户凭据和身份验证数据。 字段 数据类型 描述 id 对象id 自动生成的唯一标识符。 用户名 字符串 用户的唯一标识符。 电子邮件 字符串 用户的唯一电子邮件地址。 密码哈希 字符串 用于安全认证的加密密码。 创建于 日期 账户创建的时间戳。 更新时间 日期 最新账户更新的时间戳。 您可以直接在 back4app 仪表板中定义这些类和字段。 创建新类 您可以通过选择数据类型、命名字段、设置默认值,并在需要时将其标记为必填来添加列。 创建列 利用 back4app ai 代理进行模式配置 仪表板中的集成 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 安装 parse ios sdk: 您可以使用 swift package manager 或 cocoapods 集成 sdk。对于 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 如果 parse ios sdk 不符合您的需求,您可以通过 rest 调用执行 crud 操作。例如,使用 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 – 保护您的后端 配置访问控制列表 (acls) 通过设置 acls 来保护您的数据。例如,要创建一个只有其所有者可以访问的项目: 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)") } } } 类级权限 (clps) 在 back4app 仪表板中,调整您的类的 clps 以实施默认安全措施。这确保只有经过身份验证的用户或指定角色可以访问特定数据。 步骤 6 – 实施用户身份验证 设置用户帐户 back4app 使用内置的 parse 用户类来管理身份验证。在您的 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步 – 结论和未来的增强 恭喜!您成功构建了一个与 back4app 集成的基于 ios 的 crud 应用程序。 您配置了一个名为 basic crud app ios , 设计了 items 和 users 类,并使用 back4app 管理您的数据。 此外,您通过 parse sdk(或通过 rest/graphql)连接了您的 ios 应用程序,并实施了基本的安全措施。 未来步骤: 扩展应用程序: 考虑添加高级过滤、详细项目视图或实时更新等功能。 增强后端能力: 尝试云函数、第三方 api 集成或更细粒度的基于角色的访问控制。 深化您的专业知识: 访问 back4app 文档 https //www back4app com/docs ,探索更多教程以进一步优化您的应用程序。 祝您编码愉快,并在构建强大的 ios 应用程序的旅程中一切顺利!