Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Speaker Deck
PRO
Sign in
Sign up for free
using-play-cljc.pdf
Niyarin
November 28, 2019
0
220
using-play-cljc.pdf
Niyarin
November 28, 2019
Tweet
Share
More Decks by Niyarin
See All by Niyarin
Scheme用nREPLの開発(エラー出力の改善)
niyarin
0
74
bel lispの紹介
niyarin
0
390
nanopass-compiler-frameworkを使ってみました
niyarin
0
240
Gorgos-parser-combinator-written-in-scheme
niyarin
0
220
outputting-beautiful-s-expression
niyarin
0
200
Serialisp
niyarin
1
550
Mongo DBとS式検索
niyarin
0
170
goodbye-python-repl
niyarin
0
180
SchemeのEphemeronとWeak Pairの説明
niyarin
0
610
Featured
See All Featured
Rebuilding a faster, lazier Slack
samanthasiow
69
7.5k
GraphQLとの向き合い方2022年版
quramy
20
9.8k
Build The Right Thing And Hit Your Dates
maggiecrowley
22
1.4k
JazzCon 2018 Closing Keynote - Leadership for the Reluctant Leader
reverentgeek
175
9.1k
Typedesign – Prime Four
hannesfritz
34
1.5k
Understanding Cognitive Biases in Performance Measurement
bluesmoon
2
390
Designing on Purpose - Digital PM Summit 2013
jponch
108
5.9k
How GitHub (no longer) Works
holman
298
140k
What's new in Ruby 2.0
geeforr
336
30k
Easily Structure & Communicate Ideas using Wireframe
afnizarnur
182
15k
Why You Should Never Use an ORM
jnunemaker
PRO
49
7.9k
GraphQLの誤解/rethinking-graphql
sonatard
39
7.8k
Transcript
Clojureで昔のAndroid用ゲーム を 書き直そうとしている話 Niyarin
古いAndroid Appが動かなくなった(1) AndroidAppが流行りだった時代のプロダクトが動かなくなった ・動かないよという内容のメールをもらったことで知った。存在を忘れていた。
古いAndroid Appが動かなくなった(2) 流行りではなくなったのでライブラリは開発が止まっていた → ライブラリのWebページも消滅していた アプリのソースコードも紛失した(たぶん、SSDのフォーマットでこの世界から消えた) → Clojureで書き直そうと思った
Lispでゲームを書いて人気取りをしよう Land of Lisp (ConradBarski) Realm of Racket (Conrad Barski達)
Common LispでSTGを作りますがなにか? (usamimi.info) Clojureによる、初めての関数型プログラミング(gpsoft) カジュアルな言語入門系記事は初心者にうれしいかもれしれない 参考)
ゲーム/Android用のライブラリの選択 思ったほど選択肢があるわけではなかった。 Clojure on Android 現在開発されておらず、立ち上がりも遅い(らしい) play-clj :libGDXベース ◦ AndroidとDesktop用に出力できる
☓ 開発が終了している play-cljc :Webgl,Openglベース ◦ 開発が終わっていない ☓ Android用バイナリは直接出力できない
Play-cljcでAndroid ・js,htmlファイルを出力してくれる (初期状態でそのままビルドした結果↓) これをWebViewに貼れば目的は達成できそう
WebViewにそのまま貼るだけでよいのか ◦画像表示がローカル同一オリジンポリシーエラーで うまくいかない ・サーバーにおいたり、開発時だとブラウザの設定 変更が必要なやつ D/MyApplication: Uncaught SecurityError: Failed to
execute 'texImage2D' on 'WebGL2RenderingContext': The image element contains cross-origin data, and may not be loaded
WebViewにそのまま貼るだけでよいのか ・許可周りの設定を加えたりすることで動かすことはできた。 → このままいってもよさそうなのであとは実装するだけ。 webView.getSettings().setDomStorageEnabled(true); webView.getSettings().setAllowFileAccessFromFileURL s(true); webView.getSettings().setAllowUniversalAccessFromFil eURLs(true); webView.setWebViewClient(new WebViewClient());
ちょっとだけPlay-cljcに触れてみた ・ライブラリは標準的なゲームライブラリに近い ・2D 3Dの両対応 ・OpenGLの手続きが呼べる ・Clojureの要素でシェーダーが書ける機能もある
まとめなど ◦Play-cljcはjsを出力できるので、webviewに貼ればAndroidアプリとして出せそう ・js+htmlだと割と長いことメンテしなくても良さそう ◦みなさんも放置しているAndroidアプリがあれば、確認したほうが良いですよ ・Clojureで書き直そうとはいいませんが ◦Clojure Advent Calendar 2019で追加情報、進捗とか書けるとよいかなと思っている