#HarmonyOS NEXT体验官#鸿蒙原生应用开发项目实战: 记账应用 原创

鱼弦CTO
发布于 2024-8-27 09:51
浏览
0收藏

鸿蒙原生应用开发项目实战: 记账应用

项目介绍

功能

  • 收入和支出的记录管理:用户可以添加收入和支出条目,管理个人财务。
  • 财务报告和分析:提供月度或年度的财务报告,可视化展示财务数据并进行分析。

应用使用场景

  • 个人理财:帮助用户记录日常开销和收入,管理个人财务。
  • 家庭预算:家庭成员共同使用,用于家庭财务管理和预算控制。
  • 小型企业:用于小型企业的简单财务记录和报告生成。

原理解释

数据库管理

使用鸿蒙系统中的 Room 数据库来存储和管理应用的数据。Room 提供了一种抽象层,使 SQLite 的操作更加简便。

数据可视化

使用图表库(如 MPAndroidChart)对财务数据进行可视化展示,包括柱状图、饼图等。

算法原理流程图

graph TD;
    A[开始] --> B[用户输入收入/支出]
    B --> C[数据保存至 Room 数据库]
    C --> D{是否要生成报告?}
    D -- 是 --> E[从数据库读取数据]
    E --> F[数据处理和统计]
    F --> G[显示图表]
    D -- 否 --> H[返回首页]
    G --> I[结束]
    H --> I

算法原理解释

  1. 用户输入收入/支出:用户通过界面输入收入或支出信息。
  2. 数据保存至 Room 数据库:应用将数据保存到 Room 数据库中。
  3. 生成报告:当用户请求生成报告时,从数据库读取数据。
  4. 数据处理和统计:对数据进行处理和统计,分月度或年度汇总。
  5. 显示图表:使用图表库将统计结果以图表形式展示给用户。

实际应用代码示例实现

数据库部分

// Entity 类
@Entity(tableName = "transactions")
public class Transaction {
    @PrimaryKey(autoGenerate = true)
    public int id;
    
    @ColumnInfo(name = "type")
    public String type;  // "income" 或 "expense"
    
    @ColumnInfo(name = "amount")
    public double amount;
    
    @ColumnInfo(name = "date")
    public Date date;
}

// DAO 接口
@Dao
public interface TransactionDao {
    @Insert
    void insert(Transaction transaction);
    
    @Query("SELECT * FROM transactions WHERE date BETWEEN :startDate AND :endDate")
    List<Transaction> getTransactionsByDateRange(Date startDate, Date endDate);
}

// Database 类
@Database(entities = {Transaction.class}, version = 1)
public abstract class AppDatabase extends RoomDatabase {
    public abstract TransactionDao transactionDao();
}

图表部分

public void displayChart(List<Transaction> transactions) {
    BarChart barChart = findViewById(R.id.barChart);
    
    List<BarEntry> entries = new ArrayList<>();
    for (int i = 0; i < transactions.size(); i++) {
        entries.add(new BarEntry(i, transactions.get(i).amount));
    }
    
    BarDataSet dataSet = new BarDataSet(entries, "Transactions");
    BarData barData = new BarData(dataSet);
    barChart.setData(barData);
    barChart.invalidate(); // Refresh chart
}

测试代码

@RunWith(AndroidJUnit4.class)
public class DatabaseTest {
    private AppDatabase db;
    private TransactionDao transactionDao;

    @Before
    public void createDb() {
        Context context = ApplicationProvider.getApplicationContext();
        db = Room.inMemoryDatabaseBuilder(context, AppDatabase.class).build();
        transactionDao = db.transactionDao();
    }

    @After
    public void closeDb() {
        db.close();
    }

    @Test
    public void writeReadTest() {
        Transaction transaction = new Transaction();
        transaction.type = "income";
        transaction.amount = 100.0;
        transaction.date = new Date();
        transactionDao.insert(transaction);

        List<Transaction> transactions = transactionDao.getTransactionsByDateRange(new Date(0), new Date());
        assertEquals(transactions.get(0).amount, 100.0, 0);
    }
}

部署场景

  • 鸿蒙设备:应用可以部署在任意搭载鸿蒙系统的智能手机、平板等设备上,通过华为应用商店分发。
  • 测试环境:开发者可使用鸿蒙模拟器进行测试。

材料链接

总结

这款记账应用能够方便用户记录和管理个人财务,并通过图表直观展示收支情况。它利用Room数据库进行数据管理,结合MPAndroidChart进行数据可视化,具有很高的实用性。

未来展望

未来可以进一步完善:

  • 多币种支持:支持多种货币类型,进行汇率转换。
  • 高级分析功能:提供更丰富的财务分析功能,如趋势预测、预算提醒等。
  • 云同步:增加数据的云备份和跨设备同步功能。

希望这个项目能为您的鸿蒙开发之路带来帮助!

©著作权归作者所有,如需转载,请注明出处,否则将追究法律责任
1
收藏
回复
举报
回复
    相关推荐