건강에 대한 GSoC 중간 보고서

3261 단어
진행 상황을 마지막으로 업데이트한 지 오래되었습니다. 마지막 업데이트 이후 상당한 진전을 이루었습니다.
마지막 업데이트에서 User 모델을 만들기 시작했습니다. 지금까지 전체 사용자 모델을 GSettings에서 데이터베이스로 마이그레이션하고 이에 따라 코드베이스를 리팩토링했습니다.

지금까지의 주요 진행 상황은 다음과 같습니다.

  • 새로운 사용자 모델 생성:
    새 사용자 모델은 user_birthday, user_height 등과 같이 처음에 GSettings에 저장된 모든 사용자 세부 정보로 구성됩니다. 이 새 모델은 각 사용자를 단일 데이터 구조와 연결하는 데 도움이 됩니다.

  • pub struct User {
            pub user_id: i64,
            pub user_name: String,
            pub user_birthday: glib::DateTime,
            pub user_height: Length,
            pub user_weightgoal: Mass,
            pub user_stepgoal: i64,
            pub enabled_plugins: Vec<PluginName>,
            pub recent_activity_types: Vec<ActivityType>,
            pub did_initial_setup: bool,
        }
    
    


  • 데이터베이스로 마이그레이션
    현재 사용자 데이터는 유연성을 높이고 여러 다른 사용자를 지원하기 위해 GSettings 대신 데이터베이스에 저장됩니다. 각 사용자에게는 사용자 ID가 할당되고 활성 사용자 ID는 특정 사용자에 대한 빠른 액세스를 위해 GSettings에 저장됩니다.
  • 가중치 및 활동을 사용자에게 연결
    내 프로젝트의 다음 부분에서는 특정 사용자의 사용자 ID를 기반으로 각 데이터를 저장하고 추출할 수 있도록 가중치와 활동을 특정 사용자와 연관시키는 것을 다루었습니다.
  • 데이터베이스 마이그레이션 처리
    이전에는 Date를 DateTime으로 마이그레이션하는 마이그레이션 기능이 모든 기능에 대해 실행되어 애플리케이션 시작 시간이 느려졌습니다. 이는 데이터베이스 버전이 현재 버전과 같으면 마이그레이션을 건너뛰고 마이그레이션을 실행하고 데이터베이스를 업데이트하도록 데이터베이스에 버전을 추가하여 수정되었습니다. 또한 GSettings 파일의 데이터에서 초기 사용자가 생성되고 각 활동 및 체중을 사용자 ID 1의 초기 사용자와 연결하도록 세 가지 추가 마이그레이션 기능이 추가되었습니다.
  • 사용자 전환 방법 추가
    중간 평가까지의 마지막 부분은 여러 사용자를 전환하기 위한 UI 추가를 다뤘습니다.

  • 지금까지 내 프로젝트의 전부입니다. 내 MR에 대한 링크는 다음과 같습니다. https://gitlab.gnome.org/World/Health/-/merge_requests/174

    다음 단계:
    이제 저는 다음 작업을 할 것입니다.
  • 각 사용자의 서로 다른 건강 범주에 대해 여러 동기화 공급자를 지원하는 데 도움이 되는 새 동기화 모델을 추가합니다.
  • Google Fit에서 실제 활동 추출,
  • 양방향 동기화 지원
  • 여러 동기화 제공자의 전환을 처리하기 위해 UI를 추가합니다.

  • 3주 후에 모두 만나요. 읽어 주셔서 감사합니다!

    좋은 웹페이지 즐겨찾기