展示导航示例的 SwiftUI 应用程序
(食品应用)SwiftUI 多平台和导航示例应用程序
介绍
这个回购是一个100%的SwiftUI应用程序,展示了导航,多平台支持和深度链接的示例,使用新的NavigationStack和NavigationSplitView API基于我的课程,展示了您需要了解的有关在SwiftUI应用程序中处理导航的所有信息。
要求
- Xcode 14.2+
- 斯威夫特 5.7+
- 迅捷 4.0+
- iOS16.1+
预览
平台 | 预览 |
---|---|
苹果手机 | |
iPad | |
苹果电脑 |
特征
- 简单而有组织的项目结构
- 支持 iPhone、iPad 和 Mac
- 使用止动器处理工作表演示文稿
- 使用
NavigationStack
和navigationDestination(for:destination:)
处理导航的示例 - 通过构建路由管理器以编程方式处理导航
- 深层链接的自定义 URL 方案集成
- 如何在 SwiftUI 中处理多平台的深度链接和路由到屏幕
- 使用 SPM 🚨的 Firebase 集成 将 GoogleService 的 Plist 替换为您自己的🚨 Plist
- 使用 FCM(Firebase Cloud Messaging)的推送通知支持
- 如何处理推送通知深层链接
- 用于 2 列和 3 列布局的 Adapative iPad 和 Mac 布局
键盘快捷方式 (_:)
用于切换侧边栏可见性的操作- Apple Pencil 操作使用
onHover
为 iPad 和 Mac 制作悬停效果动画 - 单元测试
项目安装
- 使用 git 克隆 https://github.com/tunds/SwiftUI-Navigation-Multiplatform-Example.git 克隆存储库或使用在 Xcode 中打开
- 在 Xcode 中打开项目
- 在适用于 iPhone、iPad 或 MacOS 的模拟器或设备上构建并运行应用程序
深层链接设置指南(自定义网址方案)
为了在示例项目中获得深层链接,您可以使用设备、终端或 RocketSim 等便捷工具上的默认股票应用程序。您可以在我的视频中查看这一章,以了解有关在设备上测试深层链接的更多信息。
下表列出了应用程序处理路由并将导航到的所有当前深度链接。
名字 | 例 | 目的 | 条件 |
---|---|---|---|
无效产品 | myfoodapp://product?item=xxxx | 当应用找不到具有指定 ID 的产品时,处理显示无效产品屏幕。 | 对于项目键查询参数,添加无效的产品 ID |
打开的项目 | myfoodapp://product?item=🍦 _Ice+Cream | 在虚拟数据模型中显示已定义的产品的句柄。 | 对于项目键查询参数,id 是标题和名称的组合,所有有效 id 都可以在 中找到,它通常是 .任何空格都将替换为 +。Food.swift <emoji>_<title> |
促销 | myfoodapp://promo?discount=0.3&desc=enjoy+this+discount | 处理向用户显示升级。 | 对于折扣键查询参数,值应为字符串表示形式的小数,而 desc 键的值为字符串,任何空格都应替换为 + |
打开应用程序 | myfoodapp://menu | 打开应用程序 | 没有查询参数,因为这只会使用通用 url 方案打开应用程序 |
推送通知设置指南 (FCM)
此项目使用 FCM 来处理推送通知。这个项目已经将Firebase添加为Swift包。但是,如果您打算将其连接到自己的Firebase项目,则需要将其替换为自己的GoogleServices列表文件。可以在此处查看有关此的指南。
完成此操作后,您可以通过上传 APNS 密钥或证书来设置 Firebase 项目。您可以在此处了解更多信息。
推送通知深层链接的代码重复使用了代码和深度链接设置指南(自定义 URL 方案)表中定义的相同深层链接。要在 Firebase 中发送深层链接,请确保您使用的密钥是,并且您复制了上面定义的深层链接之一。link
学分
这个演示应用程序是我创建的 tundsdev。并且是课程的一部分,您可以在我的频道的播放列表中查看 这里.此播放列表基本上分解了此播放列表中存在的所有代码以及您需要了解的所有内容。我也强烈建议你看看这些视频,了解更多关于我的思维过程和推理。以下是本课程中构建此项目的每个视频的链接。
- 成为 SwiftUI 导航专家(导航课程)
- 解锁 SwiftUI NavigationStack 的秘密:初学者指南 🔐
- 探索 SwiftUI 🌍 中的编程导航 |SwiftUI NavigationStack 教程
- 了解如何在 SwiftUI 🔗 中轻松创建深层链接
- iOS Firebase 推送通知⚡️的绝对初学者指南
- SwiftUI 多平台魔术🪄:您使用 NavigationSplitView 的第一个多平台应用程序
学分
如果你有兴趣关注我,你可以在以下位置找到我:
我还有一个Kofi,如果你觉得这有用,你可以捐赠和给我买一杯咖啡。
📄 许可证
版权所有 © 2023 通德阿德戈罗耶
执照:麻省理工学院