レポート

東京Node学園祭の最終回(!?)に参加してきました!

この記事を読むのに必要な時間:およそ 5 分

ブロックチェーンアプリケーション開発でのJavascriptの話

DMM.comのブロックチェーン研究室に所属しているKoji Hiranoさんのブロックチェーンアプリケーション開発でのJavascriptの話では,ブロックチェーンアプリケーションにおける,フロントエンド開発者の介在価値について発表しました。

Hiranoさん

Hiranoさん

HiranoさんはQuestというクリプト報酬型Q&Aプラットフォームを開発しています。Questはコミュニティの成長を目的としたイベント運営プラットフォームであり,ホストの「盛り上げたい」とゲストの「知りたい」という感情を,ゲストによる良質な質問に対して報酬を支払うことで満たすことができるサービスです。

Quest

Quest

Questの技術スタック

Questはスマートコントラクト(決められた条件を満たすと自動的に命令を実行する技術)を用いて,DApps(非中央集権分散アプリケーション)として開発しています。

DAppsのプラットフォームはEthreium上で,スマートコントラクトはJavaScriptに似た言語であるSolidityで記述しています。スマートコントラクトの開発フレームワークにはTruffuleEthreumに対するクライアントライブラリにはweb3.jsウォレットの管理にはMetamaskを利用していると説明しました。そしてブロックチェーンアプリケーションのフロントエンドはReactで開発しているとのことです。

DAppsのフロントエンド開発で意識すべきこと

平野さん曰く,Webを介すブロックチェーンアプリケーションを開発する上での意識してほしい事柄として,ブロックチェーンアプリケーションはバックエンドの開発に目が行きがちだが,サービスを運営する上ではフロントエンドの開発も意識しないといけないとのことです。

そしてブロックチェーンアプリケーションでは,トランザクションやトークンのデプロイに待ち時間が発生するため,その時間をどう見せるかのUXがサービスを運営するにあたって重要になると話しました。たとえば,待ち時間に対するフロントエンドの解消方法は,綺麗なローディングや自然なローディングを出すといったことや,またローディング中に遊べるミニゲームなどを考えることができます。

現状,DAppsを作ることに特化したコンポーネントライブラリはないため,最適なUIやUXの模索は自分で行なわないといけません。その分,ブロックチェーンアプリケーションの開発は,フロントエンドエンジニアにとっても貢献できる部分が大きい領域だと述べていました。

宮崎優太郎さん「React+Apollo Client(GraphQL)により変化するアプリケーション設計」

メルカリの宮崎優太郎さんのReact+Apollo Client(GraphQL)により変化するアプリケーション設計では,メルカリをGraphQLを利用して再構築し直している話と,GraphQL+ApolloがReduxを置き換える可能性について発表しました。

GraphQLそれ単体はクエリ言語ですが,Apollo Platformの力を引き出すことによってReduxを置き換えることもできるとのことです。

Apollo

Apollo

Apolloライブラリの紹介

ApolloはGraphQLに対するクライアントになるだけではなく,プラットフォームとして様々な機能を持っています。

apollo-clientはGraphQLに対するClientライブラリです。そのClientがFetchしたデータは,react-apolloを通して,Reactコンポーネントに流すことができます。このreact-apolloはデータだけでなく,loadingフラグやエラーオブジェクトをコンポーネントに流します。そのため,データのfetchに関するフラグ管理を自前で用意することなく apolloに任せられるようになります。

さらにapollo-link-stateを利用するとlocal stateもapollo-clientで管理できます。つまりUIに関するStateをReact Apolloの中で参照できるようになります。

ApolloはReduxを置き換えられるのか

一般的にはReduxではbusiness logicやpresentation logicを管理します。データへのアクセスはapollo clientが責務を担い,データの管理はreact-apollo,UIのロジック管理はapollo-link-stateに任せることができます。

そのためApolloが提供するライブラリ群を組み合わせることで,Reduxを置き換えることもできます。宮崎さんは「Apolloを利用すると,状態管理で考えることを減らせるため,UIロジックについて集中できるようになる効果をもたらしてくれる」と述べていました。

apolloredux

apolloredux

1日目のトークを終えて

セッション後に,LT大会やスポンサートーク,懇親会がありました。

LT大会では5人が話しました。特に,へっぽこまるこさんのLT「食べたい IoT」ではJavaScriptで書けるマイコンobnizeを利用して,リアルアンパンマン(本物のあんぱんで作った顔の口部分にモーターを入れて動かし,その動きに合わせてスマートスピーカー経由で喋る)のデモなどユニークな作品を発表していました。自分を含め,大勢の方が爆笑していました。あれはずるい!

スポンサートークではスポンサーをつとめた,リクルートbitbankdwangoGMSメルカリからそれぞれ話がありました。これらの会社はJavaScriptやNode.jsを積極的に利用している会社であり,エンジニアを積極的に採用しているとのことです。

会場に置かれていたJOB Board

会場に置かれていたJOB Board

懇親会では美味しい料理だけでなく,JavaScriptを用いたVJが披露されました。

懇親会中のVJ

懇親会中のVJ

これはAtomのプラグインであるVEDAを利用しており,エディタ上でシェーダープログラムを実行,描画しているとのことでした。

著者プロフィール

井手優太(いでゆうた)

都内でフロントエンドエンジニアをしている。

URL:https://github.com/sadnessOjisan

バックナンバー

2018年

バックナンバー一覧