iCoinic Tracker X 是一款使用 CoinMarketCap 构建并由 web3swift 软件包支持的加密货币投资组合跟踪器。
该应用程序依赖于 Pocket 提供的支持基于以太坊的区块链网络的公共 RPC 节点。
该应用程序提供基本功能来跟踪加密货币,并按照 CoinMarketCap api 端点提供的市场价格将加密货币价格转换为法定货币。
该应用程序利用基本的 web3 功能将现有的基于以太坊的钱包添加到核心数据中,并获取为每个钱包添加的帐户/加密货币的当前余额。
设计细节
数据结构分为:
用户默认值保存运行此应用程序所必需的参数,以及
核心数据用于存储敏感数据,例如支持的网络和钱包详细信息。
视图架构由所有子视图的一个父视图 (ContentView) 容器组成:
交换/转换器视图
收藏夹视图
账户查看
主视图由视图模型在服务类的帮助下进行管理,这些服务类负责:
监听公共互联网的可用连接
提供从 api 端点获取数据的方法
提供 web3swift 包提供的 web3 服务
建筑学
应用程序架构由以下部分组成:
核心组件(模型、视图和视图模型)
外围组件(服务、实用程序、UI 组件和扩展)
核心组件
核心组件构成了应用程序的骨架:
楷模
数据模型:
核心数据:
钱包实体
网络实体
用户默认值:
收藏夹
投资组合数据
API数据图:
币图:api币图->本地类型的币模型
法币地图:api法币地图->本地类型的法币模型
平台地图:api平台地图->本地类型的平台地图
Ticker Map: api 报价最新 -> 本地类型的 Ticker 模型
API响应模型
本地数据模型:
钱包模型:钱包实体(核心数据)->钱包实体数据模型(钱包实体的代表)->钱包模型
网络模型:网络实体(核心数据)->网络实体数据模型(代表钱包实体)->网络模型
投资组合模型:投资组合数据
意见
接口流程架构:
交易所:提供转换器屏幕界面和转换资产价格的功能。 该屏幕具有添加和删除 API 服务提供商支持的硬币/代币功能。
收藏夹:提供收藏夹屏幕的界面和跟踪所选硬币/代币的功能。 该屏幕还具有添加和删除 API 服务提供商支持的硬币/代币功能。
账户:提供访问钱包详细信息的界面,例如加密货币单位和法定货币的余额。 该屏幕具有 web3swift 包功能,可以访问区块链 RPC 节点并获取请求的信息。
查看模型
视图模型是数据存储库和视图管理器,负责使本地数据可供父视图(ContentView)使用,将数据级联到子视图并使所有方法可供用户使用。
其他组件
其他组件管理数据流和样式。
服务
API Service 类负责管理 url 会话调用与 api 端点以获取数据。 API 方法是利用 Apple 组合框架和异步等待结构化并发构建的。
公用事业
端点 – URL 生成器使用 url 组件和查询参数来构建可调用的 url 会话链接。
网络管理器 – 网络引擎负责建立 url 会话以从 api 端点下载数据。
修饰符 – 用于格式化屏幕上显示的数据,具有多个级别,包括页眉、正文和页脚。 除了组件背景样式之外:具有焦点的框架和具有背景的框架。 以及指标。
用户界面组件
元素文本字段 – 用于修改屏幕上的钱包标签并保存更改。
选项卡栏视图 – 自定义选项卡栏视图。
操作按钮 – 用于基本操作的自定义按钮。
异步图像视图 – 徽标图像的自定义视图。
NavigationBar – 自定义导航栏。
向上滚动按钮 – 用于滚动到活动屏幕顶部的自定义操作按钮。
搜索栏 – 自定义搜索栏。
排序标签和符号 – 自定义排序按钮。
滑动操作行 – 客户滑动操作。
扩展
序列 – 使用 keyPath 和方向指示器提供自定义序列功能。
颜色扩展 – 提供主题颜色。
双分机 – 提供自定义格式的号码显示。
Bundle:提供json文件的通用解码方法。
CGFloat:提供标准尺寸。
数据库
本地数据库使用Core Data,它由以下部分组成:
以钱包实体为代表的钱包模型。
由网络实体表示的网络模型。
这两个核心数据实体通过两个独立的结构(钱包实体数据模型和网络实体数据模型)进行访问,这两个结构充当本地数据结构和核心数据实体之间的中间人。
组合框架和异步等待用于在向核心数据添加数据或从核心数据删除数据时保持正确的同步。
特征
完全用 SwiftUI 构建
支持iOS 16.1及以上版本
MVVM架构
组合框架
结构化并发的异步等待
自定义 UI 组件
通用/可重用组件
用户默认功能
核心数据
响应式用户界面
部署
要求
代码14.1
iOS 16.1 模拟器或设备
来自 CoinMarketCap 的 API 密钥
安装
Xcode
将源代码 zip 文件解压到开发者文件夹中。
使用 Xcode 打开项目文件 -(文件 -> 打开)并导航到 Xcode 项目名称 iCoinicTrackerX。
在 Xcode 中更新此项目目标的签名和功能以创建新的包标识符。
web3swift 应该会自动安装。
CoinMarketCap 的 API 密钥准备就绪后:
创建一个 plist 文件并将其命名为 APIKey-Info.plist
将 api 密钥插入属性名称为“API_KEY_CMC”的新记录的值字段中
硬币市值
访问 CoinMarketCap api 页面 (https://coinmarketcap.com/api/) 并导航以获取 API 密钥。