Revery -クロスプラットフォームデスクトップアプリケーションの理由


Cover image by Frank Brown, on Flickr
現在、私は私の次のプロジェクトを研究しています、ソフトウェアMVPSを作成することに関する本と1つの大きな必要性は1つのコードベースで十字プラットホームアプリケーションを構築する能力です.
私がネイティブに反応する方法は、行く方法であると思いますが、それは常に良いアイデアは、他の解決策があるかを見ている.例えば、フラッターは、多くの誇大宣伝を得ました- DARTプログラミング言語でクロスプラットフォームアプリケーションを構築するフレームワーク.
今日、私は別の有望なアプローチを見たい.Revery


“非常に高速な、ネイティブ電子のようなものです-束の反応、redux、および高速ビルドシステム-すべての準備ができて!”
Reveryは(現在実験的な)クロスプラットフォームのデスクトップアプリケーションのフレームワークは、理由のプログラミング言語をビルドします.
Reason JavaScript開発者のためによりアクセスできるようにする新しいOCaml構文ですまた、JSXのような構文を備えています.それは主にJavaScriptにコンパイルするために使用されるツールとしてBuckleScript , また、ネイティブのバイナリにコンパイルすることができます.
理由は、JavaScriptのコードベースの最も悪名高いバグに対処する必要がありますnullなしのタイプとパターンマッチングを持つサウンドタイプのシステムを提供しています.
REveryは、ネイティブのウィジェットをレンダリングしませんが、GPU加速レンダリングの助けを借りて、独自のウィジェット.

なぜ


Electron 間違いなく最速の方法は、現時点では、デスクトップアプリケーションを構築するには、そのサイズのコストといくつかのパフォーマンスの問題が付属しています.電子メールは、開発者がWeb生態系を活用できるようにブラウザ全体を出荷します.
フレームワークReact-Native ネイティブのウィジェットを使用する方法を持って、それはより良いパフォーマンスと小さなアプリケーションにつながる、それはモバイルデバイス上で大規模な勝利ですが、それはまた、一貫性につながる、iOSとAndroidは、ネイティブウィジェットまたはその動作でも100 %重複を提供していないため.
では、なぜフラッター?
私は、主な理由がフラッターが現在モバイル開発に集中するということです.
リーミングは、そのロードマップ上のターゲットとしてモバイルプラットフォームを持っていますが、それは最初のデスクトップに焦点を当てています.

ハウ


我々が得る方法を見ましょうexample project やり直しの.
まず、インストールする必要があります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は、クロスプラットフォームのフレームワークの風景との理由に加えている/オマーンは確かに興味深い言語です、私は私の毎日のJavascriptの仕事から知っている問題に対処する多くの素晴らしい機能を備えています.
Reveryが反応から概念を借りているという事実は、私にとって特に面白いです.