Google의 오픈소스 SDK로, 하나의 Dart 코드베이스에서 네이티브 컴파일 모바일·웹·데스크톱 앱을 빌드합니다.
Snapchat/Valdi
선언형 TypeScript 컴포넌트를 웹 뷰나 JS 브리지 없이 iOS, Android, macOS 네이티브 뷰로 컴파일하는 크로스 플랫폼 UI 프레임워크입니다.
- 스타
- 16,382
- 포크
- 538
- 열린 이슈
- 22
- 마지막 커밋
- 12시간 전
어떤 프로젝트인가요?
Valdi는 모바일 및 데스크톱 인터페이스를 만들기 위한 Snap의 UI 프레임워크입니다. TypeScript를 사용해 선언형 TSX로 컴포넌트를 작성하면, Valdi는 웹 뷰나 JavaScript 브리지를 통해 렌더링하는 대신 iOS, Android, macOS의 플랫폼 네이티브 뷰로 컴파일합니다.
이 프레임워크는 화면 간 뷰 재사용, 컴포넌트별 독립 렌더링, RTL을 지원하는 Flexbox 기반 C++ 레이아웃 엔진, 화면에 보이는 뷰만 생성하는 뷰포트 인식 렌더링을 제공합니다. 또한 핫 리로드, 중단점과 힙 덤프를 지원하는 VSCode 디버깅, 컴포넌트 단위 테스트 프레임워크도 포함합니다.
Valdi 컴포넌트를 기존 UIKit 또는 Android 뷰 계층에 삽입하거나, Valdi 레이아웃 안에서 네이티브 뷰를 사용하거나, 성능이 중요한 모듈을 C++, Swift, Kotlin 또는 Objective-C로 작성하고 TypeScript 바인딩을 생성할 수 있습니다. 프로젝트는 베타 단계이며 MIT 라이선스를 따릅니다.
핵심 기능
- 01선언형 TSX 컴포넌트를 iOS, Android, macOS 네이티브 뷰로 컴파일
- 02핫 리로드 및 중단점과 힙 덤프를 지원하는 VSCode 디버깅
- 03더욱 부드러운 스크롤을 위한 전역 뷰 재사용 및 뷰포트 인식 렌더링
- 04자동 RTL 지원을 제공하는 C++ Flexbox 레이아웃 엔진
- 05TypeScript와 Kotlin, Swift 또는 Objective-C 간 타입 안전 바인딩 생성
- 06Valdi 컴포넌트를 기존 네이티브 뷰 계층에 삽입
활용 사례
- 웹 뷰 없이 크로스 플랫폼 모바일 화면 구축
- 기존 iOS 또는 Android 앱에 Valdi 컴포넌트를 단계적으로 추가
- TypeScript 바인딩을 활용해 C++ 또는 Swift로 성능 민감 모듈 작성
- 피드처럼 기능이 풍부하고 스크롤이 많은 인터페이스 구축
빠른 시작
- 1
npm에서 Valdi CLI를 설치합니다
npm install -g @snap/valdi - 2
의존성을 설정하는 단일 명령을 실행합니다
valdi dev_setup - 3
프로젝트 폴더를 만들고 초기화합니다
mkdir my_project && cd my_project valdi bootstrap - 4
iOS 또는 Android에 앱을 설치합니다
valdi install ios
사용 전 알아둘 점
- 현재 베타 상태이며, README에 따르면 오픈 소스 환경에서 도구와 문서를 계속 검증하고 있습니다.
- iOS 또는 macOS용 빌드에는 Xcode 26.5 또는 27이 필요하므로 Mac이 필요합니다.
포함된 컬렉션
토픽
자주 묻는 질문
- Valdi은(는) 무엇인가요?
- 선언형 TypeScript 컴포넌트를 웹 뷰나 JS 브리지 없이 iOS, Android, macOS 네이티브 뷰로 컴파일하는 크로스 플랫폼 UI 프레임워크입니다. Valdi는 모바일 및 데스크톱 인터페이스를 만들기 위한 Snap의 UI 프레임워크입니다. TypeScript를 사용해 선언형 TSX로 컴포넌트를 작성하면, Valdi는 웹 뷰나 JavaScript 브리지를 통해 렌더링하는 대신 iOS, Android, macOS의 플랫폼 네이티브 뷰로 컴파일합니다.
- Valdi은(는) 무료로 사용할 수 있나요? 라이선스는 무엇인가요?
- Valdi은(는) MIT 라이선스의 오픈소스입니다. 상업용 제품에 사용하기 전에 라이선스 조건을 확인하세요.
- Valdi은(는) 아직 유지보수되고 있나요?
- 활발히 유지보수 중. Valdi의 마지막 커밋은 2026년 11월 5일입니다.
- Valdi은(는) 어디에 사용할 수 있나요?
- 웹 뷰 없이 크로스 플랫폼 모바일 화면 구축 기존 iOS 또는 Android 앱에 Valdi 컴포넌트를 단계적으로 추가 TypeScript 바인딩을 활용해 C++ 또는 Swift로 성능 민감 모듈 작성 피드처럼 기능이 풍부하고 스크롤이 많은 인터페이스 구축
- Valdi는 어떻게 설치하나요?
- npm에서 Valdi CLI를 설치합니다: npm install -g @snap/valdi 의존성을 설정하는 단일 명령을 실행합니다: valdi dev_setup 프로젝트 폴더를 만들고 초기화합니다: mkdir my_project && cd my_project valdi bootstrap iOS 또는 Android에 앱을 설치합니다: valdi install ios
- Valdi은(는) 어디서 받을 수 있나요?
- 소스 코드와 설치 방법은 GitHub에 있습니다: https://github.com/Snapchat/Valdi
요약은 프로젝트 README를 바탕으로 AI가 작성했습니다. GitHub 통계는 매일 갱신됩니다.
관련 프로젝트
하나의 코드베이스로 데스크톱, 모바일, 임베디드 플랫폼에서 실행되는 GUI 앱을 만드는 오픈소스 Python 프레임워크입니다.
JavaScript 번들이 로드되기 전 앱 실행 시점부터 네이티브로 재생되는 React Native용 Lottie 및 dotLottie 스플래시 화면입니다.
Android, iOS, 웹에서 실행되는 범용 네이티브 앱을 React로 만드는 오픈소스 프레임워크입니다.
Vue.js 기반 크로스 플랫폼 프레임워크로, 하나의 코드베이스로 iOS, Android, HarmonyOS, Web 및 여러 미니 프로그램 플랫폼용 앱을 개발할 수 있습니다.