Flitter 설치 및 설정
Flitter는 라이브러리입니다. npm으로 설치하고 바로 사용할 수 있습니다.
지원하는 프레임워크
Flitter는 다음과 같은 환경을 공식적으로 지원합니다:
- Vanilla JavaScript - 프레임워크 없이 순수 JavaScript로 사용
- React - React 컴포넌트로 쉽게 통합
- Svelte - Svelte 컴포넌트로 자연스럽게 사용
- Vue - Vue 3 Composition API와 함께 사용
- SolidJS - 반응형 시스템과 완벽하게 통합
- Qwik - 최적화된 로딩과 함께 사용
설치 가이드
아래 탭에서 사용하고자 하는 프레임워크를 선택하여 설치 방법과 기본 사용 예제를 확인하세요:
설치
npm install @meursyphus/flitter @meursyphus/flitter-react
사용 예제
import { Container, Alignment, Text, TextStyle } from '@meursyphus/flitter';
import Widget from '@meursyphus/flitter-react';
const App = () => (
<Widget
width="600px"
height="300px"
renderer="canvas" // or "svg"
widget={Container({
alignment: Alignment.center,
color: 'lightblue',
child: Text("Hello, Flitter!", {
style: TextStyle({
fontSize: 30,
fontWeight: 'bold'
})
})
})}
/>
);
export default App;
💡 중요 참고사항
- • You can switch between "canvas" and "svg" renderers
- • The Widget component handles sizing and lifecycle automatically
- • All Flitter widgets can be composed within the widget prop
다른 패키지 매니저
# Using Yarn
yarn add @meursyphus/flitter @meursyphus/flitter-react
# Using PNPM
pnpm add @meursyphus/flitter @meursyphus/flitter-react
렌더러 선택하기
Flitter는 두 가지 렌더러를 지원합니다:
Canvas 렌더러
- 장점: 높은 성능, 픽셀 단위 제어, 복잡한 애니메이션에 적합
- 단점: 텍스트 선택 불가, SEO 비친화적
- 사용 사례: 게임, 복잡한 시각화, 애니메이션이 많은 애플리케이션
SVG 렌더러
- 장점: 벡터 그래픽, 텍스트 선택 가능, SEO 친화적, CSS 스타일링 가능
- 단점: 복잡한 애니메이션에서 성능 저하 가능
- 사용 사례: 차트, 다이어그램, 정적인 시각화
서버 사이드 렌더링
// 서버 사이드 모드를 사용하면
// 1. 서버에서 SVG로 먼저 렌더링
// 2. 클라이언트에서 지정된 렌더러로 하이드레이션
<Widget
renderer="canvas" // 클라이언트 렌더러
ssr={{ // SSR 활성화 및 크기 지정
size: {
width: 800, // 서버에서 렌더링할 너비
height: 600 // 서버에서 렌더링할 높이
}
}}
widget={...}
/>
TypeScript 지원
Flitter는 TypeScript로 작성되었으며, 완전한 타입 지원을 제공합니다.
import { Container, ContainerProps, EdgeInsets, Text } from '@meursyphus/flitter';
const props: ContainerProps = {
color: 'lightblue',
padding: EdgeInsets.all(20),
child: Text('Hello, TypeScript!')
};
const container = Container(props);
다음 단계
설치가 완료되었다면, Hello World 예제를 통해 첫 번째 Flitter 애플리케이션을 만들어보세요.
커뮤니티 지원
도움이 필요하거나 질문이 있으신가요?