MoneyMate收入和支出跟踪器和预算管理器iOS手机APP源码

MoneyMate是一个基本的收支跟踪器,一个专注于简单性的预算管理器。该应用程序帮助用户记录他们的日常交易,并每天、每周和每月查看他们的财务数据。由于出色的动画,添加交易非常快速和有趣。

该应用程序专注于隐私。它使用iCloud将数据安全地存储在 Apple 服务器中,并使用系统 (iOS/iPadOS) 提供的 Keychain、Face ID 和 Touch ID 等技术提供安全访问。与许多其他金融应用程序不同,该应用程序不需要创建帐户。用户“帐户”是已登录设备的 Apple ID。

主要特征

  • 新:将交易导出为 .CSV 或 .JSON。
  • 新增:针对 iOS 15 和 16(Swift UI 3.0)更新了源代码。
  • 支持 iOS 14 小部件:Financial Insights。
  • 支持 iOS 13 深色模式。
  • 直观且易于使用的界面。
  • 对交易进行分类并使用主题标签对其进行标记。
  • 基本分析。
  • 按名称、备注或主题标签有效搜索交易。
  • 系统货币和区域设置支持。
  • iCloud 同步支持。
  • 以隐私为中心。
  • 动态类型可访问性支持。
  • 屏幕锁定(钥匙串密码 + Touch ID + Face ID)。
  • 应用程序图标快捷方式。

未来的功能

路线图:

  • macOS 和 iPadOS 支持 (WIP)。
  • 使用 CoreVision 的收据阅读器。
  • 更好的分析和月度报告。
  • 将图像、位置、丰富的链接等添加到交易中以获得更详细的信息。

实施细节

  • 代码:该应用程序已有 6 年历史,使用Swift实现。使用的 IDE 是Xcode
  • 架构:遵循 Reactive MVVM 架构,其中每个屏幕都有自己的视图模型,与模型和视图分离。
  • 数据库:最初,数据使用Realm存储在本地,但由于我们想要启用 iCloud 同步,我们决定升级整个应用程序并使用支持CloudKitCoreData
  • 数据库模型:
    • 类别(有名称、图标和颜色)
    • 事务(只能分配给一个类别,但可以处理多个文章和多个标签)
    • 文章(即:交易X是亚马逊购买,那么文章就是买的东西SSD disk 512GB:)
    • 标记(即#vacations2020:)
  • 本地化:包括英语和葡萄牙语,该项目准备接收其他翻译。
  • 界面: UI 的某些部分使用 SwiftUI 实现,其他部分使用 Interface Builder 实现。
  • 依赖项:
    • 斯威夫特包:
      • SwiftDate(用于操作每个过滤器的日期间隔,即基于设备时区的当前周)
      • STRegex(易于使用的正则表达式解析器,用于在 中存储自定义日期间隔UserDefaults
      • PremierKit(一堆可重用的系统助手)
      • SwiftyAttributes(一个方便的NSAttributedString助手)
      • Dodo(用于显示错误信息)
      • QuickActions(用于设置应用程序图标快捷方式以创建交易)
      • WSLogger(用于记录具有严重级别的消息,即调试、信息、警告、错误)
      • WSPopup(用于显示弹出窗口,以灵活的方式向屏幕显示视图)
  • 测试套件:该项目包括业务逻辑和核心功能的单元测试和集成测试。

技术栈

  • Swift 5.7
  • SwiftUI 3.0
  • Minimum deployment target is iOS 15
  • iCloud
  • CoreData
  • Keychain
  • Widgets
  • Siri Intent Extension

要求

  • Apple 开发者帐户。
  • SwiftGen v6.0 或更高版本。
  • Xcode 14+
  • iOS 15+

入门

  1. 重命名your.domain.Money以使用您的域。(即:)com.razybits.Money
  • Money.xcodeproj/project.pbxproj
  • Money/CloudKit/CloudKit.swift
  • Money/Constants.swift
  • Money/Info.plist
  • Money/Money.entitlements
  • MoneyIntentExtension/MoneyIntentExtension.entitlements
  • MoneyWidgets/MoneyWidgetsExtension.entitlements
  • Money/Screen Lock/SecurePasscodeStore.swift
  • 安装SwiftGen并运行swiftgen.
  • 打开Money.xcodeproj 文件。
  • 设置 Apple Developer 帐户,根据您的喜好更改签名和权利。
原文链接:https://vuesite.cn/30008.html,转载请注明出处。
0
显示验证码
没有账号?注册  忘记密码?