GithubHelp home page GithubHelp logo

mirage-x's Introduction

MirageX(ミラージュ・クロス)α

MirageX は TypeScript×React で Resonite の開発を行えるフレームワークです。

現在は α 版であり破壊的な変更を頻繁にします。

サーバーサイドでメインロジックを動かし、Resonite では結果のみを表示するという仕組みになっています。 特殊な構成になるため、導入は慎重に検討してください。

主なメリット

  • 以下の理由により、開発速度が早くなる。
    • React の作り方が使える。
    • 外部ライブラリが使える。
    • コードベースの開発ができる。
      • git が使える。
      • 再利用がしやすくなる。
  • メインロジックを隠蔽できるため、ユーザーのチートを防ぎやすくなる。

主なデメリット

  • 完成品にはインフラコストがかかる。
  • ネットワークレイテンシーの影響を受ける。
  • Resonite 上で改造できない。

ローカル環境のセットアップ

パッケージをインストール

以下のコマンドで依存モジュールをインストールします。

npm install

とりあえず動かす

npm run dev

  • Resonite オブジェクトが./dist/res/src/output.brsonに生成されます。
  • サーバーが起動します。
  • これらはソースコードを変更すると自動で再生成・再起動します。

./dist/res/src/output.brsonを Resonite のウィンドウにドラッグアンドドロップすると、サーバーと通信してサンプルが表示されます。

メインロジック

メインロジックは./src/core/main/下に配置します。 React で動いています。

サンプルを参考にしてください。 ./src/core/main/index.tsximport { App } from "./samples/xxxxx"を変更すれば別のサンプルに切り替えられます。

Unit パッケージ

MirageX では Resonite と同期する際に、Unit という独自概念を最小単位としています。 Unit はユースケースに合わせてパッケージでまとめられています。 また、自分で作ることもできます。

Unit を作る

./src/core/unit/package/下にパッケージのディレクトリを作ります。既存のパッケージを使ってもいいです。

./src/core/unit/package/000_template/unitTemplateResFeedbackというテンプレートをコピーして、先程作ったパッケージのディレクトリ下に配置します。 またディレクトリ名は任意の Unit 名をつけます。

コピーしたテンプレート下にあるdetail.tsを編集します。 detail.codeに他の Unit と衝突しない名前、detail.propsConfigに必要なプロパティを定義します。

以下のコマンドで各パッケージに Unit のインポート文を追加します。(Unit を新規追加・削除した後は実行してください。)

npm run unitPackage:sync

新しいパッケージを作った場合は./src/core/unit/main.ts./src/core/unit/res.tsに import する文を追記します。

以下のコマンドで./dist/res/src/output.brsonを更新して、Resonite にドラッグアンドドロップしなおします。 (npm run devを実行中であれば、以下を行わずとも変更を検知して自動で再生成されています。)

npm run build:res

Unit を Resonite で編集する

Resonite 上の編集をリポジトリにフィードバックさせることができます。 (正確には Resonite 側を優先する Slot とそうでない Slot があります。)

読み込んだ./dist/res/src/output.brsonを編集して保存します。

config の設定

./src/dev/config.private.jsonを作成します。 {RECORD_URL}に Resonite で保存したフォルダのリンクを入れます。 (パブリックフォルダにする必要があります。)

{
  "feedbackLink": "{RECORD_URL}"
}

使い方

以下のコマンドで登録したフォルダから最新のオブジェクトを取得して、ユニット名 xxxx に適用します。

npm run feedback:unit xxxx

ユニット名の指定には正規表現が使えます。

mirage-x's People

Contributors

g-ratie avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.