Re-frame and A-Frame

Kazuhiro Hara
Kazuhiro HaraCEO & Founder at Greative
Re-frame and A-Frame
Clojure, ClojureScript, WebVR!
2016/08/08
WebVR入門者の会
登壇者
{:company “Greative.GK”
:name “Kazuhiro Hara”
:twitter “@kara_d”}
本日はA-FrameとRe-frameのお話
(Clojure/ClojureScript)(WebVR framework)
おなじみ? A-Frame
MozVR : A-Frame
https://aframe.io/
I ❤ MEMarkup Engineering
あまりおなじみでないClojureのこと
Clojure と ClojureScript
Lispの方言 並行性
Code as Data
不変データ構造
関数型プログラミング
複数の実行環境
Java, JavaScript, .NET
http://clojure.org/
Clojure と ClojureScript
Lispの方言 並行性
Code as Data
不変データ構造
関数型プログラミング
複数の実行環境
Java, JavaScript, .NET
http://clojure.org/
Re-frameについて
● Clojure(Script)で作られたReactのラッピングライブラリReagent
● Reagentをベースに作られたSPAのためのフレームワークがRe-frame
● RACES
○ Reactive-Atom Component Event Subscription framework
■ 単一のストア、変更のイベントと、その購読をするコンポーネント
Re-frameについて
● Clojure(Script)で作られたReactのラッピングライブラリReagent
● Reagentをベースに作られたSPAのためのフレームワークがRe-frame
● RACES
○ Reactive-Atom Component Event Subscription framework
■ 単一のストア、変更のイベントと、その購読をするコンポーネント
ClojureとA-Frameの親和性
果てしなくマークアップ親和性高し
;; Clojureのデータ構造
[“dog” “cat” “fish”] ;; ベクター
{:name “太郎” :age 36} ;; ハッシュマップ
;; HTMLのマークアップ
[:div#app [:img.entry {:src “/img/a.png” :alt “”}]
;; A-Frameのマークアップ
[:a-scene [:a-box {:width 1 :height 2}]]
Clojureの良さを活かした構成
ClojureでWebVRコンテンツを作る構成例
Clojure /
ClojureScript
Project
Java Server JavaSctipt
● Java Http Server
● Server Side Rendering
● Routing & Database
● React / Re-frame
● Clientside Routing
● A-Frame Markup
共通コード
Ajax
DEMO
DEMOについて
● パーマリンクを持つWebVRコンテンツ
● カーソル(視点)を合わせたときに状態が変化、
URLも変化
● サーバーサイドレンダリングにより、
URLを直接読み込まれたときも状態が反映されている
○ http://0.0.0.0:4001/red/
○ http://0.0.0.0:4001/blue/
○ http://0.0.0.0:4001/green/
パーマリンクはWebの強い武器
スターターキットをGitHubで配布予定
近日公開
@kara_d をフォローして待とう!!
ありがとうございました
おまけ
WebVRのパーマリンクについて考えてみよう
● WebVRコンテンツも、技術的には任意の時点でパーマリンクをつくれる
● でもどうやってパーマリンクを取得したらいいんだろう?
● どうシェアする? シェアボタンとか?
● シェアされたものがいきなりVR表示になるのはいいのだろうか?
● OGPってどうしたらいいんだろう?
などなど...
詳しい方、懇親会などで教えてください
1 of 21

Recommended

React系(別言語含む)の サーバーサイドレンダリング について考えよう by
React系(別言語含む)の サーバーサイドレンダリング について考えようReact系(別言語含む)の サーバーサイドレンダリング について考えよう
React系(別言語含む)の サーバーサイドレンダリング について考えようKazuhiro Hara
7.8K views29 slides
React VR ことはじめ by
React VR ことはじめReact VR ことはじめ
React VR ことはじめKazuhiro Hara
3.6K views24 slides
Clojure の各種React系ラッパーライブラリのサーバーサイドレンダリングの現状について by
Clojure の各種React系ラッパーライブラリのサーバーサイドレンダリングの現状についてClojure の各種React系ラッパーライブラリのサーバーサイドレンダリングの現状について
Clojure の各種React系ラッパーライブラリのサーバーサイドレンダリングの現状についてKazuhiro Hara
3.7K views22 slides
高速!Clojure Web 開発入門 by
高速!Clojure Web 開発入門高速!Clojure Web 開発入門
高速!Clojure Web 開発入門Kazuki Tsutsumi
5.1K views34 slides
ClojureでElectronアプリを作ろう by
ClojureでElectronアプリを作ろうClojureでElectronアプリを作ろう
ClojureでElectronアプリを作ろうKazuhiro Hara
5.3K views39 slides
入門ClojureScript by
入門ClojureScript入門ClojureScript
入門ClojureScriptsohta
3.3K views12 slides

More Related Content

What's hot

Crawler Commons by
Crawler CommonsCrawler Commons
Crawler Commonschibochibo
635 views19 slides
buddyのユーザ認証周りのデータ構造 - 使われているデータの取り回しについてのお話 by
buddyのユーザ認証周りのデータ構造 - 使われているデータの取り回しについてのお話buddyのユーザ認証周りのデータ構造 - 使われているデータの取り回しについてのお話
buddyのユーザ認証周りのデータ構造 - 使われているデータの取り回しについてのお話Kazuhiro Hara
1.5K views29 slides
LocalStack by
LocalStackLocalStack
LocalStackchibochibo
2.6K views43 slides
React Redux Redux-Saga + サーバサイドレンダリング by
React Redux Redux-Saga + サーバサイドレンダリングReact Redux Redux-Saga + サーバサイドレンダリング
React Redux Redux-Saga + サーバサイドレンダリングエンジニア勉強会 エスキュービズム
17K views42 slides
WebXR TechTokyo #3 in Cluster発表資料 by
WebXR TechTokyo #3 in Cluster発表資料WebXR TechTokyo #3 in Cluster発表資料
WebXR TechTokyo #3 in Cluster発表資料WheetTweet
353 views10 slides
Azure container service上でコンテナベースでオートスケールの検証をしてみた by
Azure container service上でコンテナベースでオートスケールの検証をしてみたAzure container service上でコンテナベースでオートスケールの検証をしてみた
Azure container service上でコンテナベースでオートスケールの検証をしてみたエンジニア勉強会 エスキュービズム
2.8K views23 slides

What's hot(20)

Crawler Commons by chibochibo
Crawler CommonsCrawler Commons
Crawler Commons
chibochibo635 views
buddyのユーザ認証周りのデータ構造 - 使われているデータの取り回しについてのお話 by Kazuhiro Hara
buddyのユーザ認証周りのデータ構造 - 使われているデータの取り回しについてのお話buddyのユーザ認証周りのデータ構造 - 使われているデータの取り回しについてのお話
buddyのユーザ認証周りのデータ構造 - 使われているデータの取り回しについてのお話
Kazuhiro Hara1.5K views
LocalStack by chibochibo
LocalStackLocalStack
LocalStack
chibochibo2.6K views
WebXR TechTokyo #3 in Cluster発表資料 by WheetTweet
WebXR TechTokyo #3 in Cluster発表資料WebXR TechTokyo #3 in Cluster発表資料
WebXR TechTokyo #3 in Cluster発表資料
WheetTweet353 views
Riot + generator で始める新しいデータバインディング by Tsutomu Kawamura
Riot + generator で始める新しいデータバインディングRiot + generator で始める新しいデータバインディング
Riot + generator で始める新しいデータバインディング
Tsutomu Kawamura9.8K views
Node.js を選ぶとき 選ばないとき by Ryunosuke SATO
Node.js を選ぶとき 選ばないときNode.js を選ぶとき 選ばないとき
Node.js を選ぶとき 選ばないとき
Ryunosuke SATO83.2K views
大規模Node.jsを支える ロードバランスとオートスケールの独自実装 by kidach1
大規模Node.jsを支える ロードバランスとオートスケールの独自実装大規模Node.jsを支える ロードバランスとオートスケールの独自実装
大規模Node.jsを支える ロードバランスとオートスケールの独自実装
kidach125.3K views
[大図解]ピグライフはこう動いている by Akihiro Kuwano
[大図解]ピグライフはこう動いている[大図解]ピグライフはこう動いている
[大図解]ピグライフはこう動いている
Akihiro Kuwano12.3K views
Nodeとフロントエンド − 知っておかなければならない、今と未来の話 − by Kohei Asai
Nodeとフロントエンド − 知っておかなければならない、今と未来の話 −Nodeとフロントエンド − 知っておかなければならない、今と未来の話 −
Nodeとフロントエンド − 知っておかなければならない、今と未来の話 −
Kohei Asai16.3K views
Bp study39 nodejs by Yohei Sasaki
Bp study39 nodejsBp study39 nodejs
Bp study39 nodejs
Yohei Sasaki1.5K views
Node.jsとAWS入門(Elastic Beanstalk & AWS SDK for Node.js) by 崇之 清水
Node.jsとAWS入門(Elastic Beanstalk & AWS SDK for Node.js)Node.jsとAWS入門(Elastic Beanstalk & AWS SDK for Node.js)
Node.jsとAWS入門(Elastic Beanstalk & AWS SDK for Node.js)
崇之 清水13.9K views
Node.jsでスクレイピングして可視化してみた by Yasunori Kirimoto
Node.jsでスクレイピングして可視化してみたNode.jsでスクレイピングして可視化してみた
Node.jsでスクレイピングして可視化してみた
Yasunori Kirimoto1.2K views
MySQLのリアルタイムモニタリングツールを作った話 by Kentaro Kitagawa
MySQLのリアルタイムモニタリングツールを作った話MySQLのリアルタイムモニタリングツールを作った話
MySQLのリアルタイムモニタリングツールを作った話
Kentaro Kitagawa933 views
Getting started with node.js by kouzouman
Getting started with node.jsGetting started with node.js
Getting started with node.js
kouzouman321 views

Similar to Re-frame and A-Frame

Web制作勉強会 #2 by
Web制作勉強会 #2Web制作勉強会 #2
Web制作勉強会 #2Moto Yan
614 views26 slides
Play frameworkの概要 by
Play frameworkの概要Play frameworkの概要
Play frameworkの概要Shuhei Kaneko
606 views9 slides
Mvc conf session_5_isami by
Mvc conf session_5_isamiMvc conf session_5_isami
Mvc conf session_5_isamiHiroshi Okunushi
707 views43 slides
わんくま同盟名古屋勉強会18回目 ASP.NET MVC3を利用したHTML5な画面開発~クラウドも有るよ!~ by
わんくま同盟名古屋勉強会18回目 ASP.NET MVC3を利用したHTML5な画面開発~クラウドも有るよ!~わんくま同盟名古屋勉強会18回目 ASP.NET MVC3を利用したHTML5な画面開発~クラウドも有るよ!~
わんくま同盟名古屋勉強会18回目 ASP.NET MVC3を利用したHTML5な画面開発~クラウドも有るよ!~normalian
1.5K views33 slides
モダンJavaScript環境構築一歩目 by
モダンJavaScript環境構築一歩目モダンJavaScript環境構築一歩目
モダンJavaScript環境構築一歩目大樹 小倉
16.4K views51 slides
Reactを使ったVR環境 by
Reactを使ったVR環境Reactを使ったVR環境
Reactを使ったVR環境KatsuyaENDOH
714 views13 slides

Similar to Re-frame and A-Frame(20)

Web制作勉強会 #2 by Moto Yan
Web制作勉強会 #2Web制作勉強会 #2
Web制作勉強会 #2
Moto Yan614 views
わんくま同盟名古屋勉強会18回目 ASP.NET MVC3を利用したHTML5な画面開発~クラウドも有るよ!~ by normalian
わんくま同盟名古屋勉強会18回目 ASP.NET MVC3を利用したHTML5な画面開発~クラウドも有るよ!~わんくま同盟名古屋勉強会18回目 ASP.NET MVC3を利用したHTML5な画面開発~クラウドも有るよ!~
わんくま同盟名古屋勉強会18回目 ASP.NET MVC3を利用したHTML5な画面開発~クラウドも有るよ!~
normalian1.5K views
モダンJavaScript環境構築一歩目 by 大樹 小倉
モダンJavaScript環境構築一歩目モダンJavaScript環境構築一歩目
モダンJavaScript環境構築一歩目
大樹 小倉16.4K views
Reactを使ったVR環境 by KatsuyaENDOH
Reactを使ったVR環境Reactを使ったVR環境
Reactを使ったVR環境
KatsuyaENDOH714 views
いよいよ始められる Java EEでのWebSocket #jjug #jjug_ccc #ccc_r21 by Takakiyo Tanaka
いよいよ始められる Java EEでのWebSocket #jjug #jjug_ccc #ccc_r21いよいよ始められる Java EEでのWebSocket #jjug #jjug_ccc #ccc_r21
いよいよ始められる Java EEでのWebSocket #jjug #jjug_ccc #ccc_r21
Takakiyo Tanaka4.7K views
Isomorphic web development with scala and scala.js by TanUkkii
Isomorphic web development  with scala and scala.jsIsomorphic web development  with scala and scala.js
Isomorphic web development with scala and scala.js
TanUkkii23.5K views
3DCG(3Dコンピュータグラフィック)をWebGLで始めよう by AdvancedTechNight
3DCG(3Dコンピュータグラフィック)をWebGLで始めよう3DCG(3Dコンピュータグラフィック)をWebGLで始めよう
3DCG(3Dコンピュータグラフィック)をWebGLで始めよう
AdvancedTechNight5.4K views
Inside frogc in Dart by Goro Fuji
Inside frogc in DartInside frogc in Dart
Inside frogc in Dart
Goro Fuji1.5K views
OSC 2013.Cloud@Osaka by samemoon
OSC 2013.Cloud@OsakaOSC 2013.Cloud@Osaka
OSC 2013.Cloud@Osaka
samemoon1.9K views
Java scriptの進化 by maruyama097
Java scriptの進化Java scriptの進化
Java scriptの進化
maruyama0977.3K views
Om Next ~React.jsを超えて by Kazuki Tsutsumi
Om Next ~React.jsを超えてOm Next ~React.jsを超えて
Om Next ~React.jsを超えて
Kazuki Tsutsumi1.1K views
JAWSUG architecture-crowler by Takuro Sasaki
JAWSUG architecture-crowlerJAWSUG architecture-crowler
JAWSUG architecture-crowler
Takuro Sasaki5.8K views
Javaで1から10まで書いた話(sanitized) by Tokuhiro Matsuno
Javaで1から10まで書いた話(sanitized)Javaで1から10まで書いた話(sanitized)
Javaで1から10まで書いた話(sanitized)
Tokuhiro Matsuno12.4K views

More from Kazuhiro Hara

MDX with Next.js by
MDX with Next.jsMDX with Next.js
MDX with Next.jsKazuhiro Hara
1.1K views15 slides
MDX and Next.js by
MDX and Next.jsMDX and Next.js
MDX and Next.jsKazuhiro Hara
887 views14 slides
About Plone Conference Tokyo 2018 Frontend Day by
About Plone Conference Tokyo 2018 Frontend DayAbout Plone Conference Tokyo 2018 Frontend Day
About Plone Conference Tokyo 2018 Frontend DayKazuhiro Hara
348 views10 slides
Gatsby & React Static by
Gatsby & React StaticGatsby & React Static
Gatsby & React StaticKazuhiro Hara
878 views28 slides
Clojure.tokyo.descjop by
Clojure.tokyo.descjopClojure.tokyo.descjop
Clojure.tokyo.descjopKazuhiro Hara
573 views31 slides
SwaggerとAPIのデザイン by
SwaggerとAPIのデザインSwaggerとAPIのデザイン
SwaggerとAPIのデザインKazuhiro Hara
3.7K views33 slides

More from Kazuhiro Hara(20)

About Plone Conference Tokyo 2018 Frontend Day by Kazuhiro Hara
About Plone Conference Tokyo 2018 Frontend DayAbout Plone Conference Tokyo 2018 Frontend Day
About Plone Conference Tokyo 2018 Frontend Day
Kazuhiro Hara348 views
SwaggerとAPIのデザイン by Kazuhiro Hara
SwaggerとAPIのデザインSwaggerとAPIのデザイン
SwaggerとAPIのデザイン
Kazuhiro Hara3.7K views
ひとりアドベントカレンダーのご紹介 by Kazuhiro Hara
ひとりアドベントカレンダーのご紹介ひとりアドベントカレンダーのご紹介
ひとりアドベントカレンダーのご紹介
Kazuhiro Hara1.3K views
(IDEユーザのための) ClojureのEmacs開発環境について by Kazuhiro Hara
(IDEユーザのための) ClojureのEmacs開発環境について(IDEユーザのための) ClojureのEmacs開発環境について
(IDEユーザのための) ClojureのEmacs開発環境について
Kazuhiro Hara3.5K views
Cryogenでサイトつくろーじぇん by Kazuhiro Hara
CryogenでサイトつくろーじぇんCryogenでサイトつくろーじぇん
Cryogenでサイトつくろーじぇん
Kazuhiro Hara1.7K views
WebSocket+Akka(Remote)+Play 2.1 Java by Kazuhiro Hara
WebSocket+Akka(Remote)+Play 2.1 JavaWebSocket+Akka(Remote)+Play 2.1 Java
WebSocket+Akka(Remote)+Play 2.1 Java
Kazuhiro Hara4.7K views
第2回 -Play部屋- Play 2.0はじめて&もくもく会 by Kazuhiro Hara
第2回 -Play部屋- Play 2.0はじめて&もくもく会第2回 -Play部屋- Play 2.0はじめて&もくもく会
第2回 -Play部屋- Play 2.0はじめて&もくもく会
Kazuhiro Hara1.7K views
-Play部屋- Play 2.0はじめて&もくもく会 by Kazuhiro Hara
-Play部屋- Play 2.0はじめて&もくもく会-Play部屋- Play 2.0はじめて&もくもく会
-Play部屋- Play 2.0はじめて&もくもく会
Kazuhiro Hara1.7K views
Play framework 2.0のおすすめと1.2からのアップグレード by Kazuhiro Hara
Play framework 2.0のおすすめと1.2からのアップグレードPlay framework 2.0のおすすめと1.2からのアップグレード
Play framework 2.0のおすすめと1.2からのアップグレード
Kazuhiro Hara8.6K views
sbtマルチプロジェクトビルドの使いどころ by Kazuhiro Hara
sbtマルチプロジェクトビルドの使いどころsbtマルチプロジェクトビルドの使いどころ
sbtマルチプロジェクトビルドの使いどころ
Kazuhiro Hara1.8K views
Playbay Play 2.0 plugin イロハのイ by Kazuhiro Hara
Playbay Play 2.0 plugin イロハのイPlaybay Play 2.0 plugin イロハのイ
Playbay Play 2.0 plugin イロハのイ
Kazuhiro Hara1.7K views
PlayFramework 2.0 Javaと WebSocketでつくる リアルタイムMVC Webアプリケーション by Kazuhiro Hara
PlayFramework 2.0 Javaと WebSocketでつくる リアルタイムMVC WebアプリケーションPlayFramework 2.0 Javaと WebSocketでつくる リアルタイムMVC Webアプリケーション
PlayFramework 2.0 Javaと WebSocketでつくる リアルタイムMVC Webアプリケーション
Kazuhiro Hara12.1K views
PlayFramework1.2.4におけるWebSocket by Kazuhiro Hara
PlayFramework1.2.4におけるWebSocketPlayFramework1.2.4におけるWebSocket
PlayFramework1.2.4におけるWebSocket
Kazuhiro Hara2K views
クリーンな WordPress サイトのための PHP コーディングのお作法 ― 計画的に WordPress を拡張していくためのフレームワーク思考 |... by Kazuhiro Hara
クリーンな WordPress サイトのための PHP コーディングのお作法 ― 計画的に WordPress を拡張していくためのフレームワーク思考 |...クリーンな WordPress サイトのための PHP コーディングのお作法 ― 計画的に WordPress を拡張していくためのフレームワーク思考 |...
クリーンな WordPress サイトのための PHP コーディングのお作法 ― 計画的に WordPress を拡張していくためのフレームワーク思考 |...
Kazuhiro Hara14.1K views
WP Jelly vol.01 WordPress管理画面にメニューを追加しよう by Kazuhiro Hara
WP Jelly vol.01 WordPress管理画面にメニューを追加しようWP Jelly vol.01 WordPress管理画面にメニューを追加しよう
WP Jelly vol.01 WordPress管理画面にメニューを追加しよう
Kazuhiro Hara1K views
Play FrameworkとWeb Socketの話 by Kazuhiro Hara
Play FrameworkとWeb Socketの話Play FrameworkとWeb Socketの話
Play FrameworkとWeb Socketの話
Kazuhiro Hara1.6K views

Recently uploaded

SNMPセキュリティ超入門 by
SNMPセキュリティ超入門SNMPセキュリティ超入門
SNMPセキュリティ超入門mkoda
188 views15 slides
Web3 Career_クレデン資料 .pdf by
Web3 Career_クレデン資料 .pdfWeb3 Career_クレデン資料 .pdf
Web3 Career_クレデン資料 .pdfnanamatsuo
14 views9 slides
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20... by
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...NTT DATA Technology & Innovation
101 views42 slides
さくらのひやおろし2023 by
さくらのひやおろし2023さくらのひやおろし2023
さくらのひやおろし2023法林浩之
94 views58 slides
速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料) by
速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)
速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)NTT DATA Technology & Innovation
17 views38 slides

Recently uploaded(11)

SNMPセキュリティ超入門 by mkoda
SNMPセキュリティ超入門SNMPセキュリティ超入門
SNMPセキュリティ超入門
mkoda188 views
Web3 Career_クレデン資料 .pdf by nanamatsuo
Web3 Career_クレデン資料 .pdfWeb3 Career_クレデン資料 .pdf
Web3 Career_クレデン資料 .pdf
nanamatsuo14 views
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20... by NTT DATA Technology & Innovation
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...
今、改めて考えるPostgreSQLプラットフォーム - マルチクラウドとポータビリティ -(PostgreSQL Conference Japan 20...
さくらのひやおろし2023 by 法林浩之
さくらのひやおろし2023さくらのひやおろし2023
さくらのひやおろし2023
法林浩之94 views
速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料) by NTT DATA Technology & Innovation
速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)
速習! PostgreSQL専用HAソフトウェア: Patroni(PostgreSQL Conference Japan 2023 発表資料)
Windows 11 information that can be used at the development site by Atomu Hidaka
Windows 11 information that can be used at the development siteWindows 11 information that can be used at the development site
Windows 11 information that can be used at the development site
Atomu Hidaka76 views
The Things Stack説明資料 by The Things Industries by CRI Japan, Inc.
The Things Stack説明資料 by The Things IndustriesThe Things Stack説明資料 by The Things Industries
The Things Stack説明資料 by The Things Industries
CRI Japan, Inc.50 views
SSH応用編_20231129.pdf by icebreaker4
SSH応用編_20231129.pdfSSH応用編_20231129.pdf
SSH応用編_20231129.pdf
icebreaker4184 views

Re-frame and A-Frame