黄豆在App - 开源的智能记账应用

黄豆在App - 开源的智能记账应用

项目简介

是一个由BarretZhi开发并开源的智能记账工具,旨在帮助用户轻松管理日常财务。这款应用采用现代化的技术栈构建,提供简洁易用的界面和强大的功能,使记账变得更方便、更直观。

技术分析

  1. 跨平台:黄豆在App是基于React Native开发的,这使得它能够支持iOS和Android两大移动操作系统,让用户无论在哪种设备上都能享受到一致的体验。

  2. 实时同步:项目利用Firebase作为后端服务,实现数据的云存储和实时同步,确保你在任何设备上的更改都能即时更新到其他设备。

  3. 数据可视化:通过Echarts库,黄豆在App将复杂的收支数据转化为清晰的图表,让你可以一目了然地了解自己的财务状况。

  4. 本地化:考虑到全球用户的使用需求,项目支持多语言环境,易于扩展和维护。

  5. 安全性:应用采用了安全的数据加密算法,保证用户的隐私和财务信息安全。

应用场景

  1. 个人财务管理:无论是日常生活消费,还是投资理财,黄豆在App都能帮你记录每一笔收支,让你对金钱去向有明确掌握。

  2. 家庭预算控制:对于需要共同管理的家庭财务,黄豆在App可以协助设定预算,实时提醒超支情况。

  3. 商业用途:小型企业或个体户可以利用其进行简单的成本核算和利润统计。

特点

  • 简单易用:直观的用户界面设计,让初学者也能快速上手。
  • 自定义类别:可根据个人需求创建多样化的支出与收入类别。
  • 报表分析:丰富的图表展示,为用户提供深度洞察。
  • 离线工作:在网络不稳定时,仍可正常使用,并在连接恢复后自动同步数据。
  • 完全免费且开源:无需担心付费墙,同时代码公开,鼓励社区贡献和改进。

结语

黄豆在App不仅是一款实用的记账工具,还体现了开源精神的力量。无论你是技术爱好者,想深入研究其源码,还是寻找一款可靠的财务管理应用,黄豆在App都是值得尝试的选择。立即下载并开始你的智能记账之旅吧!

  • 5
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
背景 最开始记账的时候使用的某著名记账应用,软件本身也算中规中矩,后来一方面因为卖用户信息的传闻闹得沸沸扬扬,一方面觉得输入太慢,也远不如 Excel 灵活,于是改用 Excel。 Excel 的好处就比较多了,输入快捷,统计方便,扩展灵活。但因为当时记得是简单的流水账,虽然可以分类统计开销之类,但各种账户之间的情况一团乱麻,最近接触到复式记账法,打算尝试下,而支持复式记账的软件可供选择的就不多了。 GnuCash 免费开源、支持 Windows、支持复式记账,相比 Excel,麻烦的就是需要记录的东西比较多(其实 Excel 也可以复式记账,不过功能实现上相对麻烦,不如专业软件省心) ,好处是你可以精确知道自己有多少钱了(或者,钱在哪了?或者,有没有钱了?或者,欠多少钱了?) 目前使用的是 GnuCash 2.6.18 版本(中文界面)。 复式记账概念 对于普通用户来说,GnuCash 涉及到大量财务方面的专业词汇,本身的汉化也不全,上手可能略有麻烦,建议使用之前简单了解一下复式记账法。 (以下说法仅供参考)因为复式记账是以公司为主体的,所以有些概念套到个人、家庭账目上会很别扭,像借记、贷记的说法也比较绕,开始可以略过,基本上了解「一切皆科目,数字在科目中流动」即可。具体来说,任何一笔账目,都会至少对应两个科目——点个外卖,「支出」会变化,如果信用卡付账,「负债」会变化,如果现金付账,「资产」会变化。至于左列、右列、加还是减这些也可以等具体记账时实践。此外的两大科目,「收入」很好理解,发工资了,「收入」和「资产」都会变化;「权益」这个概念因为也是主要针对公司的(谁出了多少本钱?),个人使用的时候,可以简单理解为最开始记账的时刻各个账户(科目)有多少钱(「所有者权益」-「期初余额」) 软件的使用 科目设置 装好软件后会首先要求设置科目层次(不清楚设置的话一路前进即可),因为后面要提到的快速补全不支持中文的问题,可以先选择「通用科目」,之后根据实际情况修改成英文或拼音,不同科目大类的设定多有不同,不熟悉复式记账的最好直接修改「通用科目」中特定或类似的科目。科目大类一般为默认的「权益」、「资产」、「负债」、「收入」、「支出」。 账目不对的时候系统会自动生成「不平衡的」科目,这是因为复式记账任何账目至少涉及两大科目而实际录入的账目不平的关系,改好账目后「不平衡的」科目金额会归零(「孤立的」科目情况类似) 存储格式 GnuCash 提供了四种存储格式,xml 格式有定期的数据备份(sqlite3 似乎没有),数据库放在云同步软件(Dropbox 或者坚果云)中就可以轻松实现多终端同步使用了。 快速录入 科目快速补全(Quickfill) 对中文用户来说有点尴尬,中文版默认创建中文科目,而该功能仅支持英文(不包括数字),所以为了使用该功能,建议使用英文(或拼音)命名所有科目。例如 Assets:Cash(ZiChan:XianJin) 可以在任意科目类单元格里使用 A:C (Z:X)快速补全(中间的冒号可以在设置「编辑-首选项-科目-分隔字符」中修改为其他符号,如填入 slash 可修改为 /) 注意,「自动提升列表」(功能编辑-首选项-账簿-动作)和科目快速补全功能有点冲突,可以关闭该功能(或者使用每次打冒号之前按下 Esc 键关闭提示列表,再用子科目的首字母补全)。 日期快速切换 在日期类单元格,可以使用 - = 切换至前一天和后一天 _ + 切换至前一周和后一周 m h 切换至本月的第一天和最后一天 y r 切换至本年的第一天和最后一天 t 切换至今天 金额简单计算 作为一款记账软件,GnuCash 在金额类单元格里提供了简单的计算功能,例如可以直接输入 30*2 这类表达式(不需要输入 = 号) 交易记忆补全 在描述单元格输入之前输入过的内容时,会出现自动补全提示,TAB 执行补全会根据匹配历史交易自动补全整个交易(包括相关科目和金额),这个功能极大的减轻了频繁发生的日常开支记账的工作量。 账簿模式 GnuCash 提供了「基本分类账」、「自动拆分分类账」和「交易日记账」三种账簿模式(「查看」菜单),新手建议一般情况下使用「基本分类账」模式方便账目录入,需要拆分交易的时候切换到「交易日记账」模式方便分割交易。另外可以通过 工具-总分类账 菜单调出「总分类账」页面,熟练的话直接在该页面记账更方便(不需要打开或者选择科目页面)。 拆分交易 因为关系到交易涉及各科目的准确记录,拆分交易这种操作就很有必要了(购买记录根据物品拆分,支出记录根据付款方式拆分等)。Gnucash 的拆分交易操作刚接触有点绕,新手建议切换至「交易日记账」模式中操作。 具体操作(根据物品拆分的情况),(「交易日记账」下),每笔交易在选中状态时至少包括四行内容: 第一行为交易描述,可以在描述单元格中填入交易梗概(因为在其他模式中无法直接看到具体分割条目的备注,所以梗概建议有一定信息量方便查阅) (之后 TAB 转入)第二行开始记录具体分割条目,首先记录资金去向,依次填入(可通过 TAB 切换)备注(物品名)、科目(消费类别)、资金收入(物品价格)、资金支出(应为空)。(之后 TAB 转入)第三行重复,直至分项物品记录完毕。 (之后 TAB 转入)最后一行记录资金来源,依次填入备注(可为空)、科目(支出账户)、资金收入(应为空)、资金支出(支出总金额),其中资金支出一栏已由系统自动计算,可与实际支出金额对照校验。 对账 对于个人用户来说,涉及存在清晰账单(银行卡、支付宝之类)的科目,对账功能比较好用。下面以具体操作说明: 选择特定科目,右键 - 对账,选择日期(如信用卡的账单日期),期末余额(信用卡的账单金额)- 确定,对账窗口会列出所有对账期间的收入和支出明细,分别全选(Crtl + A,空格),账目无误的话右下角的差额会为 0,否则表示账目与实际不符,需要手动修正(补充)具体账目或者通过「面板菜单栏-余额」自动添加条目修正,修正无误后点击「选中项对账」即可。(对账操作后,对过账的条目的第五列内容会由「未」变为「对」) 修改界面语言 在 \\gnucash\\etc\\gnucash\\environment 任意位置中添加 链接:https://www.jianshu.com/p/d04231e2c76f
要实现一个识别黄豆叶子颜色的app,需要使用Java语言和Android开发框架。下面是一个简单的示例代码,可以通过拍照识别黄豆叶子的颜色。 ```java import android.app.Activity; import android.content.Intent; import android.graphics.Bitmap; import android.graphics.BitmapFactory; import android.graphics.Color; import android.os.Bundle; import android.provider.MediaStore; import android.view.View; import android.widget.Button; import android.widget.ImageView; import android.widget.TextView; public class MainActivity extends Activity { private static final int CAMERA_REQUEST = 1888; private ImageView imageView; private TextView textView; private Button button; @Override public void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState); setContentView(R.layout.activity_main); imageView = (ImageView) this.findViewById(R.id.imageView); textView = (TextView) this.findViewById(R.id.textView); button = (Button) this.findViewById(R.id.button); button.setOnClickListener(new View.OnClickListener() { @Override public void onClick(View v) { Intent cameraIntent = new Intent(MediaStore.ACTION_IMAGE_CAPTURE); startActivityForResult(cameraIntent, CAMERA_REQUEST); } }); } protected void onActivityResult(int requestCode, int resultCode, Intent data) { if (requestCode == CAMERA_REQUEST && resultCode == RESULT_OK) { Bitmap photo = (Bitmap) data.getExtras().get("data"); imageView.setImageBitmap(photo); int yellowCount = 0; int totalCount = 0; for (int y = 0; y < photo.getHeight(); y++) { for (int x = 0; x < photo.getWidth(); x++) { int color = photo.getPixel(x, y); int red = Color.red(color); int green = Color.green(color); int blue = Color.blue(color); float[] hsv = new float[3]; Color.RGBToHSV(red, green, blue, hsv); if (hsv[0] >= 30 && hsv[0] <= 60 && hsv[1] >= 0.2 && hsv[2] >= 0.2) { yellowCount++; } totalCount++; } } float percentage = (float) yellowCount / totalCount * 100; textView.setText("Yellow percentage: " + percentage + "%"); } } } ``` 这个示例代码中,我们使用Android相机API来实现拍照功能,然后对拍摄的照片进行处理。遍历照片中的每个像素点,将RGB值转换为HSV值,检查是否在黄色的HSV范围内。统计黄色像素点的数量,并计算出黄色像素点的百分比。 需要注意的是,这个示例代码只能检测一张照片中黄色叶子的比例,如果要识别不同的叶子颜色或者不同的叶子区域,需要对算法进行改进。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

咎旗盼Jewel

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值