본문 바로가기
버블 개발/중급

73. Custom States(중급) : 버블의 사용자 지정 상태 설정, 값 설정하기

by 스타트업 사업가 마르코 2023. 8. 9.
이 섹션에서는 다양한 종류의 임시 데이터를 저장하는 데 사용되는 Custom states(사용자 상태)를 다룹니다.

 

(1) Custom States 정의

Custom states(사용자 정의 상태)는 페이지 자체를 포함하여 페이지의 모든 element에 저장할 수 있는 데이터입니다.

  • 페이지를 다시 로드할 때 초기화되는 임시 데이터를 일시적으로 저장할 수 있습니다.
    • 이는 데이터베이스에 영구적으로 저장할 필요가 없는 일부 정보를 앱이 기억해야 할 때 유용합니다.
  • Custom states는 앱 사용자에게 직접 표시되지 않지만 중요한 데이터를 저장하는 안전한 방법은 아닙니다.
  • 기본값을 포함하여 사용자 지정 상태에 배치한 모든 정보는 해당 장치의 사용자가 읽을 수 있습니다.

 

Custom states에는 다음과 같은 속성이 있습니다.

  • 페이지가 다시 로드되고 기본값(default)으로 재설정될 때까지만 데이터를 보유합니다.(기본적으로 비어 있음)
  • 사용자에게는 숨겨져 있지만 필요한 모든 동적 표현식에서 참조할 수 있습니다.
  • 클라이언트 측에 저장되며 데이터베이스를 읽고 쓰는 것보다 빠릅니다.
  • element 유형(텍스트, 숫자, 날짜 등), 옵션 세트 옵션 및 Custom 데이터 유형을 포함한 모든 종류의 데이터를 보유할 수 있습니다. 값 List 형태를 보유할 수도 있습니다.
  • Custom states는 element에 연결되어 있으며 페이지 자체를 포함하여 각 element에 필요한 만큼 만들 수 있습니다.
  • 간단한 텍스트 값에서 특정 사용자, 장바구니 또는 앱에서 기억하기를 원하는 모든 것과 같은 데이터 유형에 이르기까지 모든 종류의 데이터를 Custom states로 저장할 수 있습니다.
  • 값 List로 설정하여 여러 데이터 조각을 추적하도록 Custom states를 설정할 수도 있습니다.
    • 예를 들어 Custom states List에 항목을 추가하여 사용자가 반복 그룹에서 항목을 선택하는 시점을 추적할 수 있습니다.

 

(2) Custom states 만들기

모든 element에는 Custom states가 첨부될 수 있으며 이를 저장하기에 가장 적합한 위치의 element를 결정하는 것은 사용자의 몫입니다.
각 element에 대해 필요한 만큼 Custom states를 만들 수 있습니다.

 

: Custom states를 정의하는 방법에는 두 가지가 있습니다.

 

1. 워크플로우의 Action으로 만들기

워크플로우에서 Set state 작업을 사용할 때 만들 수 있습니다 .

 

  1. 워크플로에 element Action의 Set state 설정 추가 클릭
  2. 원하는 element(이 예시에서는 index 페이지)를 선택한 다음 새 사용자 지정 상태 만들기(Create a new custom states)를 선택합니다.

해당 element에 기존 custom state가 있는 경우, 그 아래에 Create a new custom states 옵션이 표시됩니다.

Action에서 custom states정의하기
Action에서 custom states정의하기

2. Element Inspector (요소 추적기)

Element Inspector를 사용하여 새 Custom state를 만들거나 이미 만든 상태를 볼 수 있습니다.

 

Element Inspector에서 custom state 만들기
Element Inspector에서 custom state 만들기

 

위의 예시에는 텍스트 유형의 My state라는 Custom state가 이미 있습니다.

 

새로운 Custom state를 만들려면 오른쪽 창에서 Add a new custom state를 클릭합니다.

  • 필드와 마찬가지로 Custom state에는 정의된 데이터 유형이 있어야 합니다.
  • 이렇게 하면 element의 상태 값을 사용할 때 Bubble 편집기가 관련 옵션을 표시할 수 있습니다.
  • 데이터 유형을 Bubble의 기본 제공 데이터 유형, 옵션 세트 및 사용자 정의 데이터 유형으로 설정할 수 있습니다.
  • 데이터 유형을 설정하면 해당 유형과 관련된 방식으로 Custom state를 처리하도록 Bubble에 지시합니다.

 

(3) Custom state 찾기, 편집 및 삭제

Element Inspector를 사용하여 element에 대한 기존 Custom state를 찾고, 편집하고, 삭제할 수도 있습니다.

: 위의 사진에서와 같이 element의 상단 오른쪽에 있는 i 아이콘을 클릭합니다.

  • Custom state의 이름은 앱 전체에서 자동으로 업데이트되며 안전하게 변경할 수 있습니다.
  • Custom state에서 데이터 유형을 변경하거나 완전히 삭제할 수 있지만, 변경 후 더 이상 작동하지 않는다면 오류가 발생할 수 있다.
  • 이 현상은 이슈 트래커(상단 바의 오른편 빨간색 글씨로 표시)를 통해 오류를 인식할 수 있습니다.

 

(4) Custom state에 값 할당

Custom state에 값을 할당하는 방법에는 두 가지가 있습니다.

 

1. Element Inspector에서 default(기본값)을 설정할 수 있습니다.

  • 이것은 텍스트 및 숫자와 같이 기본값 필드에 입력할 수 있는 정적 값인 경우에만 작동합니다.

 

2. 워크플로우의 Set state of an element 액션을 사용하여 Custom state에 값을 할당할 수 있습니다.

  • Custom state에 값을 할당할 때마다 마지막 값을 영구적으로 덮어씁니다.
데이터베이스 레코드가 삭제될 때 자동으로 업데이트되지 않습니다.
  • 즉, Custom state로 항목 List를 저장하고 있고 해당 항목 중 하나 이상이 데이터베이스에서 삭제된 경우 List에는 여전히 동일한 항목 수가 표시됩니다.
  • 삭제된 데이터의 필드는 비어 있는 것으로 표시됩니다.
  • 이런 불일치 문제를 해결하기 위해 다음과 같이 필터를 적용할 수 있습니다.
  • 내 element의 Custom state에 list:filtered [Creation Date is not empty]:count와 같이 List의 항목의 존재하는 수를 계산하는 식으로 필터를 적용하여 이 문제를 해결할 수 있습니다.