前回やった内容で「golang webassembly」と検索してもあまり情報がなかったけど、ReactやCordovaとWebAssemblyの組み合わせは全く出てこなかった。
React+Cordovaでアプリを作るテストもしていたので、せっかくだから手探りでアプリ化までしました。
今回はその備忘録です。
前回やった内容で「golang webassembly」と検索してもあまり情報がなかったけど、ReactやCordovaとWebAssemblyの組み合わせは全く出てこなかった。
React+Cordovaでアプリを作るテストもしていたので、せっかくだから手探りでアプリ化までしました。
今回はその備忘録です。
Gopherjsを使ってJavascript化して色々してきましたが、ブラウザでバイナリを動かす手段としてWebAssemblyがあります。
GO1.11から追加された機能で情報も多くないですが、無理にJSにして使うよりも軽く速くなるかもしれないので使ってみたいと思います。
windows10でやっていくので他環境だと環境変数などは適宜変える必要があります。
AWS LambdaでGOできないかなと思ったらあったので使ってみます。
実施環境はWindows10です。
GOでos.Open()
などを使って静的なファイルをロードすることは多い。
この場合、ビルドした実行ファイルと一緒に静的コンテンツを配る必要がある。
またgopherjsでjavascript化すると開くことができない。
バイナリ化してしてコードに含めると実行ファイルに含められるが、面倒なうえにサイズが非常に大きくなってしまう。
go-assets-builderを使うとどちらも解決したので、使用方法などメモ。
gopherjsを使う時にファイル入出力があると変換処理が必要になる。
そしてosパッケージが使えないため機能のテストをしにくい。
jsを使ったテストコードをgo上で書くのは結構面倒くさいので切り分けて書くと楽でした。
GOをgopherjsでjavascriptに変換してからCordovaで利用することを考えます。
os.Open()
などでファイルを開く処理はnode.js以外で使えない。
Cordovaで操作可能な場所のファイルを使う場合でもPermission deniedになる。
そこで基本的にCordova側で入出力してGO側で実処理と変換を行うようにします。
Androidアプリを作るのは難しそうだったのでjavascript化して何かに使えないか模索してみます。バイナリ化してexecするより汎用性は上がるはず。
Windowsだけでやりたかったけど、無理だったのでUbuntuで実行します。
物理マシンでもAWS上でもLinuxを持ってますが、Windowsメインで使っているときにちょっとLinuxを使いたい場合に一手間かかります。
そこでWindows上で動く仮想マシンをインストールすることにしました。
大学でも会社でもVMWareを使ってましたが、がっつり使うわけでもないので別に人気のありそうなVirtualBoxを試してみます。
Golangに慣れてきたので何かしら作ってみたい。
最近Androidアプリを作れていないのでGOで書けないかなと試してみました。
テスト環境はWindows10です。