从0开发Android记账APP,基于Navigation的单Activity架构开发。

众所周知,Android平台的记账软件众多,但大多数都冗余着广告,复杂,VIP等等,因为公司都要生存,而小而美的APP为了活下来,也逐渐会向这方面发展。也许只有个人开发者才会去写简洁,高效的记账APP吧。

为什么要写这样一个APP?

得益于女朋友的碎碎念,于是决定将毕设方向转向 记账 方向。

宁小记,一个简洁高效的Android记账APP(仿钱迹),开源地址

这里首先感谢 钱迹 开发者—首富的气质(唐哥)钱迹 是我见过Android平台为数不多简洁实用高效的记账软件,目前是独立开发。宁小记的UI是仿照 钱迹,内部框架我们可能大不相同。

好了,说了这么多,先上图:

image-20190829112706614

image-20190829020155257

image-20190829021333506

项目进展情况:

目前完成了单机版必需功能,因为时间的原因,更多功能,如何自定义主题,多账单等暂时没办法加入。

其中核心功能——同步,因为个人能力有限,只能写简单的后端(php),而同步作为一个核心功能,涉及到异常同步处理,多数据同步,实时同步,网络监测等,所以只能暂时搁浅,这是非常遗憾的一件事,后期一定要强化这方面。

总的来说,项目的基础框架,工具已经全部造好,以后的扩展将会无比顺畅,逐渐面向傻瓜式,简洁化。


技术栈:

代码经历过两次重构,业务层封装了基于 Navigation+Lifecycle +RxJava的MVP框架,使得未来的扩展将更加容易。

其中的亮点有:

  • WebView简单式封装(解决掉内存泄漏等)
  • DialogFragment 一键式封装
  • RecyclerView二次封装(基于BaseRecyclerViewAdapterHelper)
  • 字体图标瘦身方案
  • Navigation返回键,页面跳转时导致的oncreView优化,多页面跳转优化
  • 基于RxJava的异步数据封装
  • Android P生物识别适配

业务基础开发库,CloudMVP,只需体验三分钟,你就会逐渐上头。

更多的小工具,细节处理,请翻阅核心model。


最后

因为能力的原因,代码中可能会有冗余,某些变量名不规范的情况,请理解。

希望这个项目对你会有所帮助,不胜荣幸,如果觉得还行,可以帮我点个star,谢谢啦。

### 关于Android Studio期末小项目的资源与教程 #### 文字识别应用 对于希望创建文字识别应用程序的学生来说,可以参考一个基于百度云OCR的文字识别项目。此项目展示了如何集成相机和相册调用功能,并实现了有效的文字识别能力[^1]。 ```java // 实现文字识别的核心部分通常涉及设置API请求并处理响应数据 String apiKey = "your_api_key"; String secretKey = "your_secret_key"; public void recognizeText(Bitmap bitmap){ AipOcr client = new AipOcr(apiKey, secretKey); HashMap<String, String> options = new HashMap<>(); options.put("language_type", "CHN_ENG"); JSONObject res = client.basicGeneral(bitmap, options); } ``` 上述代码片段提供了通过百度AI平台进行图像到文本转换的方法概览。需要注意的是,在实际部署前应当替换`apiKey` 和 `secretKey`为自己的密钥。 #### 类微信界面设计实践 另一个值得探索的方向是从零构建类似于微信的消息传递UI体验的应用程序。这类项目不仅能够帮助理解现代聊天应用的设计模式,还能学习到更多有关Material Design组件的知识[^2]。 ```xml <!-- activity_main.xml --> <androidx.coordinatorlayout.widget.CoordinatorLayout xmlns:android="http://schemas.android.com/apk/res/android" android:layout_width="match_parent" android:layout_height="match_parent"> <!-- 底部导航栏 --> <com.google.android.material.bottomnavigation.BottomNavigationView android:id="@+id/bottom_navigation" android:layout_width="match_parent" android:layout_height="wrap_content" app:menu="@menu/navigation_menu"/> </androidx.coordinatorlayout.widget.CoordinatorLayout> ``` 这段XML布局文件定义了一个简的底部导航菜结构,适用于大多数社交类App的基础框架搭建。 #### 记账本应用开发指南 如果倾向于财务管理和个人理财方向,则可以从一个简易记账簿着手。该项目涵盖了基本的预算设定、支出记录以及超支预警等功能模块[^3]。 ```sql CREATE TABLE IF NOT EXISTS expenses ( id INTEGER PRIMARY KEY AUTOINCREMENT, amount REAL NOT NULL, date TEXT DEFAULT CURRENT_DATE, description TEXT, category TEXT CHECK (category IN ('food', 'transportation', 'entertainment')) ); INSERT INTO expenses(amount, description, category) VALUES(50.0,'午餐','food'); ``` 这里给出了一组SQL语句用于初始化开销跟踪所需的表格及其字段约束条件;同时展示了一条插入新消费项的例子。 #### 垃圾分类教育工具制作流程 最后介绍一款具有社会意义的作品——垃圾分类辅助软件。它利用本地SQLite数据库存储不同类型废物的信息,并提供查询服务以便公众更好地了解环保常识[^4]。 ```python import sqlite3 conn = sqlite3.connect('waste_management.db') cursor = conn.cursor() def create_tables(): cursor.execute(""" CREATE TABLE user( id INTEGER PRIMARY KEY, username VARCHAR UNIQUE, password_hash BLOB ); CREATE TABLE rubbish( code CHAR(6), name VARCHAR, type ENUM('recyclable', 'hazardous', 'residual'), FOREIGN KEY(type) REFERENCES category(name) ); /* 更多表省略 */ """) ``` 以上Python脚本演示了怎样建立必要的关系型数据库架构以支持整个系统的运作逻辑。
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

petterp

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

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

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

打赏作者

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

抵扣说明:

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

余额充值