본문 바로가기

Flutter-플러터/클론코딩

Expense Tracker

반응형

https://www.youtube.com/watch?v=f7VewR__76I&t=640s&ab_channel=MitchKoko 

 

위 코드를 코딩했다...!!

 

배운점 

1.Hive는 기본적으로 String, DateTime 의 값을 저장 할 수 있는데 복합적인 값의 저장을 위해 convert 함수가 필요로 한다. 

아마 내가 하루 지출 어플을 만들었을 때 이와 같은 작업을 하지 않아서 오류가 생긴 것 같다. 

class HiveDataBase {
  final _mybox = Hive.box("Expense2");

  void saveData(List<ExpenseItem> allExpense) {
    List<List<dynamic>> allExpenseFormatted = [];

    for (var expense in allExpense) {
      List<dynamic> expenseFomatted = [
        expense.name,
        expense.amount,
        expense.dateTime,
      ];
      allExpenseFormatted.add(expenseFomatted);
    }
    _mybox.put("All_EXPENSES", allExpenseFormatted);



  }


  List<ExpenseItem> readData() {
    List savedExpense = _mybox.get('All_EXPENSES') ?? [];
    List<ExpenseItem> allExpenses = [];

    for (int i = 0; i < savedExpense.length; i++) {
      String name = savedExpense[i][0];
      String amount= savedExpense[i][1];
      DateTime dateTime = savedExpense[i][2];

      ExpenseItem expense =
      ExpenseItem(
          name: name ,
          amount: amount,
          dateTime: dateTime);
      allExpenses.add(expense);


    }
return allExpenses;
  }


}

 

 

2. 모델을 사용할 때는 List를 두 가지로 사용하여야 한다. 단순히 ui용 , data용  이렇게 2가지이다. 

 

List<ExpenseItem >overallExpenseList=[]; //리스트 타일에 들어가는 리스트

  List<ExpenseItem> getAllExpenseList(){
    return overallExpenseList;  // overallExpenseList에 들어가는 모델을 위한 데이터

  }

 

 

반응형

'Flutter-플러터 > 클론코딩' 카테고리의 다른 글

원가계산기 클론코딩  (0) 2023.02.26
레시피 계산기 클론코딩  (0) 2023.02.24
todo 클론코딩  (0) 2023.02.13
클론코딩 moneytracker with Hive 1편  (0) 2023.01.18
todo 클론코딩  (0) 2023.01.11