Upgrade to PRO for Only $50/Year—Limited-Time Offer! 🔥
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
using-play-cljc.pdf
Search
Niyarin
November 28, 2019
0
400
using-play-cljc.pdf
Niyarin
November 28, 2019
Tweet
Share
More Decks by Niyarin
See All by Niyarin
Scheme用nREPLの開発(エラー出力の改善)
niyarin
0
160
bel lispの紹介
niyarin
0
760
nanopass-compiler-frameworkを使ってみました
niyarin
0
450
Gorgos-parser-combinator-written-in-scheme
niyarin
0
400
outputting-beautiful-s-expression
niyarin
0
400
Serialisp
niyarin
1
680
Mongo DBとS式検索
niyarin
0
330
goodbye-python-repl
niyarin
0
380
SchemeのEphemeronとWeak Pairの説明
niyarin
0
1.1k
Featured
See All Featured
Leading Effective Engineering Teams in the AI Era
addyosmani
8
1.3k
Building Applications with DynamoDB
mza
96
6.8k
Site-Speed That Sticks
csswizardry
13
1k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
49
3.2k
Designing for humans not robots
tammielis
254
26k
Optimising Largest Contentful Paint
csswizardry
37
3.5k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
Embracing the Ebb and Flow
colly
88
4.9k
Code Review Best Practice
trishagee
74
19k
Product Roadmaps are Hard
iamctodd
PRO
55
12k
Fireside Chat
paigeccino
41
3.7k
Building a Modern Day E-commerce SEO Strategy
aleyda
45
8.3k
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で追加情報、進捗とか書けるとよいかなと思っている