원문 캡처 · github.com
원문 캡처 · github.com

react-jsonschema-ui는 하나의 <SchemaForm> 컴포넌트로 iOS·Android와 웹에서 JSON Schema 기반 폼을 만드는 라이브러리다. 라이브 플레이그라운드에서 폼을 체험할 수 있다.

설치 명령은 다음과 같다.

bash
npm install react-jsonschema-ui tamagui

앱은 react가 필요하며 Tamagui 위젯을 쓸 때는 19 이상이어야 한다. tamagui는 ^2.7이 필요하고, 네이티브 환경에서는 react-native 또는 Expo도 필요하다. Ajv, ajv-formats, Zustand는 패키지에 포함된다.

폼은 기본적으로 비제어 방식이다. initialValues와 스키마의 기본값은 폼을 만들 때 읽으며, schema나 uiSchema 객체의 참조가 바뀌면 폼이 다시 만들어지고 상태가 초기화된다. 따라서 두 객체를 모듈 상수나 useMemo로 안정적으로 유지해야 한다.

기본 위젯과 필드, 레이아웃 템플릿을 바꿀 수 있고, Tamagui 없이 자체 컴포넌트를 쓰려면 react-jsonschema-ui/core의 파서·검증기·스토어·React 바인딩을 이용할 수 있다. JSON Schema의 여러 키워드를 지원하지만, 조건부 스키마와 추가 속성 등 일부 기능은 검증만 하고 전용 렌더링은 하지 않는다. 네이티브 환경의 날짜·시간 위젯은 텍스트 입력이며, 피커를 쓰려면 사용자 정의 위젯을 등록해야 한다.