Revery - 이유가 있는 크로스 플랫폼 데스크탑 앱

Cover image by Frank Brown, on Flickr

현재 저는 다음 프로젝트인 소프트웨어 MVP 생성에 관한 책을 조사하고 있으며 자주 나타나는 큰 요구 사항 중 하나는 하나의 코드 기반으로 교차 플랫폼 애플리케이션을 구축하는 기능입니다.

React-Native가 갈 길이라고 생각하지만 다른 솔루션이 있는지 살펴보는 것은 항상 좋은 생각입니다. 예를 들어 Flutter는 최근 Dart 프로그래밍 언어로 크로스 플랫폼 앱을 구축하기 위한 프레임워크로 많은 관심을 받았습니다.

오늘 저는 또 다른 유망한 접근 방식을 살펴보고자 합니다. Revery



"Revery는 번들로 제공되는 React, Redux 및 빠른 빌드 시스템이 포함된 초고속 기본 Electron과 같습니다. 모든 준비가 완료되었습니다!"

Revery는 Reason 프로그래밍 언어로 빌드된 (현재 실험적인) 교차 플랫폼 데스크톱 앱 프레임워크입니다.

Reason은 JavaScript 개발자가 더 쉽게 접근할 수 있도록 하는 새로운 OCaml 구문입니다. 또한 구문과 같은 JSX를 제공합니다. 주로 JavaScript로 컴파일하는 데 사용되지만 BuckleScript이라는 도구를 통해 네이티브 바이너리로 컴파일할 수도 있습니다.

Reason은 null을 허용하지 않는 유형과 패턴 일치가 포함된 사운드 유형 시스템을 제공하여 JavaScript 코드 기반의 가장 악명 높은 버그를 해결해야 합니다.

Revery는 기본 위젯을 렌더링하지 않지만 GPU 가속 렌더링을 통해 자체 위젯을 렌더링합니다.



Electron은 의심할 여지 없이 현재 데스크탑 앱을 빌드하는 가장 빠른 방법이지만, 크기 비용과 몇 가지 성능 문제가 있습니다. Electron은 개발자가 웹 생태계를 활용할 수 있도록 전체 브라우저와 함께 제공됩니다.

React-Native과 같은 프레임워크에는 기본 위젯을 사용하는 접근 방식이 있어 성능이 향상되고 응용 프로그램이 작아집니다. 이는 모바일 장치에서 엄청난 이점이지만 iOS와 Android가 100% 겹치는 기능을 제공하지 않기 때문에 불일치도 발생합니다. 기본 위젯 또는 그 동작까지.

Flutter가 아닌 이유는 무엇입니까?

가장 큰 이유는 Flutter가 현재 모바일 개발에 집중하고 있기 때문이라고 생각합니다.

Revery는 로드맵의 대상으로 모바일 플랫폼을 가지고 있지만 먼저 데스크톱에 중점을 둡니다.

어떻게



Revery의 example project을 시작하고 실행하는 방법을 살펴보겠습니다.

먼저 Reason으로 네이티브 개발을 위한 패키지 관리자esy를 설치해야 합니다. npm을 통해 설치됩니다.

$ npm install -g esy

다음으로 Github에서 git을 사용하여 예제 프로젝트를 복제하고 프로젝트를 열어야 합니다.

$ git clone [email protected]:revery-ui/revery-quick-start.git
$ cd revery-quick-start

이제 종속성을 설치하고 esy로 모든 것을 컴파일해야 합니다.

$ esy install
$ esy build

첫 번째 빌드는 시간이 좀 걸리지만 그 후에는 컴파일된 바이너리를 직접 실행할 수 있습니다.

$ _build/install/default/bin/App

그러면 앱이 열리고 텍스트와 버튼이 있는 창이 표시됩니다.


App.re에서 소스를 찾고 원하는 대로 변경할 수 있습니다.

결론



저는 Revery가 크로스 플랫폼 프레임워크 환경에 멋진 추가 기능이라고 생각하고 Reason/OCaml은 제가 일상적인 JavaScript 작업에서 알고 있는 문제를 해결하는 많은 멋진 기능을 갖춘 흥미로운 언어입니다.

Revery가 React에서 개념을 차용했다는 사실이 저에게 특히 흥미로웠습니다.

좋은 웹페이지 즐겨찾기