まずはWindowsデスクトップ用のものをFSやDLLエミュなしで作る方が問題が分割できるという目論見
Switch branches/tags
Nothing to show
Clone or download
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
scripts
src
.gitignore
.npmrc
Readme.md
package.json
tsconfig.json
tslint.json

Readme.md

ikagaka-desktop

デスクトップ版イカガカ

目的

イカガカは「ブラウザで(も)動く」「オープンソースで拡張性の高い」伺かベースウェアを目指して開発されました。

Webベースウェアとして登場したイカガカは、EmscriptenによるSHIORIエミュレーション、BrowserFSによるファイルシステムエミュレーション、jszip、canvas利用等によって、頑張ればブラウザでも色々動かせるという知見を示すことができました。

一方でその後、「ブラウザで(も)動く」目的のための「ブラウザに載せる技術」の複雑性により、作業が進まないという問題を抱えています。

そこで、このプロジェクトではもう一つの「オープンソースで拡張性の高い」伺かベースウェアを作るという側面について推し進めるために、一旦一般WebブラウザではなくelectronによるWindows上での動作を前提として、基礎的なベースウェアの仕組みを拡充することを目的とします。

前提

  • とりあえずElectronの動くWindows上で動作すればよい
  • ファイルシステムエミュレーション不要
  • SHIORIエミュレーション不要
  • 理想をSSP置き換えとして一定の互換性向上を目指す(最初から100%担保を目的とするものでは無く、ブラウザ上動作他周辺の目的とバランスをとってすすめたい)

ツールセット

  • node.js 8+
  • TypeScript 2.7+
  • NW.jsまたはElectron
  • Visual Studio Code または Visual Studio (Community)

複雑性を回避するため、Babelは使わずTypeScript一本で出来ることをし、またWebpack等のモジュールバンドラーは出来れば使わないで行きたい。

環境構築

node.js

node.js公式からインストールできる。

plenvのように複数バージョンを扱えるnodistなどを使う方法もある。

お好みで。

git

Githubを使うので。

git公式、Git for WindowsSourceTreeGithub Desktop等がある。

コマンドライン派としては前者側がおすすめだがどれでも良い。GUIはなぜかコマンドラインと別の言葉を使いたがることが多い。

Visual Studio Code または Visual Studio (Community)

どっちでもいいのでMSからインストール。

ソリューションファイルを現状設けていないのでVisual Studio Codeでやるほうがスムーズ。

ただインテリセンスがいまいちいい感じに更新されないようになってエディタ再起動したりする作業はたまにあります。

リポジトリをクローン

このリポジトリをクローン

npm install

npm install

を叩くと一式インストールされます。

なおyarnだとcuttlebone系の依存関係がめんどくさいことになって上手いこと行かないのでnpm一択。

開発コマンド

基本的に2窓開いて(VSCodeの下でもいける)、npm run watchbuildnpm run ndevwを実行しとくスタイルが便利。

サンプルゴーストをダウンロード

初回に1回だけ叩いてください。

npm run prepare:example

ビルド系

初回及びHTML更新があった場合はbuild。以後はwatchbuildでよさそう。

# ビルド(TypeScriptをトランスパイル)し、HTMLと一緒にdistフォルダに置く
npm run build
# インストールさえyarn回避すればyarn buildとかでもよい

# TypeScriptのみ更新をチェックしつつビルドする(HTMLは更新されない) 通常はこちらで良いと思う
npm run watchbuild

閲覧系

# 開発用にNW.jsを立ち上げる(ファイルが更新あったら再読み込みする)
npm run ndevw

# 開発用にNW.jsを立ち上げる(上記に加えて背景透過&ウインドウ枠非表示&最大化でゴーストっぽくなる)
npm run ndev

# NW.jsを立ち上げる(更新トラッキングなし)
npm run n

# 開発用にElectronを立ち上げる(ファイルが更新あったら再読み込みする)
npm run edevw

# 開発用にElectronを立ち上げる(上記に加えて背景透過&ウインドウ枠非表示&最大化でゴーストっぽくなる)
npm run edev

# Electronを立ち上げる(更新トラッキングなし)
npm run e

devのほうは閉じるボタンがないのでタスクバーアイコン右クリかAlt+F4で閉じて下さい。

周辺ライブラリ

イカガカの要素技術(伺か Advent Calendar 2016) にまとめられています。

ブラウザ動作でないので内必要なのは

その他多分あまり表に出てこないが使うやつとしては

これらを同時開発する仕組みとしてikagaka-projectがあります。

License

MITライセンスでリリースされています。