Help us understand the problem. What is going on with this article?

Block Kit Builder を使ってインタラクティブな Slack アプリをプロトタイピングしよう

Block Kit とは?

Slack は昨年 Block Kit という仕組みをリリースしました。これは既定の JSON の定義に従うことで、デスクトップ・モバイル両方に最適な形で対応した UI を簡単に組み立てることができるものです。チャットのメッセージだけではなく、モーダルHome タブのようなその他の UI にも同じ JSON を流用することができます。1

Block Kit 自体については、まずは公式ドキュメント(英語)と、こちらのチュートリアルを読むと理解が深まるかと思います。

また、昨年夏にいち早く Block Kit を活用されたナビタイムジャパンさんの記事も読んでいただくと、よりイメージが湧くかと思います。

Block Kit Builder とは?

Block Kit Builder はブラウザだけで、この Block Kit の表示を確認したり、簡単にプロトタイピングすることができるツールです。

上記の NAVITIME アプリの記事からも実際にどのようにあのユーザーインターフェースが実現されているかを見ることができる Block Kit Builder の URL がリンクされています。そちらにアクセスすると以下のように表示されます。

NAVITIME アプリもあくまで標準的なブロックを組み合わせているだけなので、このような UI は必要に応じてラベルなどだけを変えて似た構造を持つだけで誰でも実装することができます。

とりあえずぽちぽち押してみる

Block Kit Builder を開いたら、とりあえずいろんなところを押してみましょう。何かおかしくなってもそのブラウザタブの中だけの話です!(「Send to Slack」だけは送り先のワークスペースに注意してください :pray:

左のペインにいろいろと並んでいますが、これらはすべて押せます。押すと Section や Image のブロックがどんどん今表示されているものの末尾に追加されていきます。

要らないものはマウスホバーするとゴミ箱のアイコンが出てきますので、これを押せば消せます。JSON を編集することに慣れている方はもちろん直接右ペインの JSON を変更しても OK です。

あまりにも追加しすぎたので一旦全部消したいというときは "blocks" の配列の要素を手動で全部消すか、右上にある「Clear Code」ボタンを押すと同様に初期化することができます。

テンプレートを使いこなそう

とはいえ、つぎはぎな見た目だけ見ていてもなかなかインスピレーションが湧きにくいかと思います。Block Kit Builder はよくある UI パターンをテンプレートとして提供しています。

中央にある「Select a Template」というボタンを押してみてください。

以下のようなメッセージ、モーダル、Home タブそれぞれに最適なテンプレートが複数用意されています。

3 パターンのプレビューを理解する

Block Kit Builder の左上のあたりに「Message Preview」がデフォルトで選択されているプルダウンがあるかと思います。

それぞれ役割が異なります。

名前 説明
Message Preview チャンネル上のメッセージでの Block Kit の見た目を扱うモード
Modal Preview モーダル(英語) での Block Kit の見た目を扱うモード
App Home Preview Home タブ(英語) での Block Kit の見た目を扱うモード

Modal や App Home の Preview も選択してみてください。今表示されている Block がそれぞれの UI に合った形でそのまま表示されます。

Message Preview

Modal Preview

App Home Preview

このように目的に合わせて切り替えることができます。モーダルでは Input のブロック(フォーム送信で情報を一括送信するためのブロックの種別です)が使えるようになるため、左側のブロック単位でのサンプル選択にそれらが追加されています。

また、さきほど紹介したテンプレートもそれぞれ用意されています。以下に直接アクセスできるリンクを置いておきますので、眺めてみてください。

Send to Slack

右上に「Send to Slack」というボタンがあることに気づかれたかもしれません。これは、Block Kit Builder でつくった見た目をそのまま実際の Slack ワークスペース内で確認できる機能です。

特にデスクトップの Slack だけでなくモバイルの実機で見た目を確認したいときに大変便利です。また、そのブラウザでログイン中の Slack ユーザからのメッセージとして送信されるので、普通の入力フォームではつくることができないリッチなメッセージを送信するツールとしても使えたりします。

Message Preview の状態で、このボタンを押すとワークスペースと送信先のチャンネルを指定するよう促されます。選択して送信すると実際にメッセージとしてワークスペース内に送信されます。注意点として、ボタンやプルダウンのようなインタラクティブなコンポーネントは表示はされますが、動作はしません。これらを実際に動作せるためには Slack アプリをつくって Slack API からのリクエストを受け付ける Web のエンドポイントを開発・運用する必要があります。

一方、モーダル・Home タブについてはある程度インタラクティブな表示を確認することが先日できるようになりました。Modal Preview もしくは App Home Preview で「Send to Slack」を押すと Slack Developer Tools を使って動作を確認することができます。

Slack Developer Tools がすでにインストール済の場合 3 は以下のように実際に試すことができるようになります。ボタンなどを押すとサーバーにどのようなペイロードが飛ぶかが確認できます。

モーダルの場合は、メッセージとして投稿されて「Open Modal」というボタンが末尾についていますので、これを押します。

Home タブの場合はそのままタブに反映されます。

日本語でのサンプル集

最後に私がつくった日本語対応されているサンプルを共有したいと思います。

他の人も使えそうなテンプレートをつくったので共有したい!」という方は、その URL を編集リクエストで送っていただければ反映いたします。もちろんご自身の記事を書かれて、この記事をリンクしていただく形でも嬉しいです!

ということで、この記事が Block Kit Builder の理解のお役に立っていれば幸いです。いろいろ遊んでみてください :wave:


  1. "type": "input" のブロックはモーダルでのみ利用可能です 

  2. 同じものがこちらにもあります: https://api.slack.com/lang/ja-jp/slash-block-kit 

  3. まだワークスペースにインストールされていない場合は一旦許可確認画面に遷移します 

seratch
Slack の東京オフィスで技術スタッフをしています。日本でのパートナー協業を技術面でサポートしたり、本社のメンバーと Slack の SDK 開発を一緒に行ったりしています。
http://git.io/sera
slack
Slack は必要なメンバーから情報、ツールまで一元化するビジネスコラボレーションハブと、そのアプリ開発用プラットフォームを提供しています。
https://api.slack.com
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
Comments
No comments
Sign up for free and join this conversation.
If you already have a Qiita account
Why do not you register as a user and use Qiita more conveniently?
You need to log in to use this function. Qiita can be used more conveniently after logging in.
You seem to be reading articles frequently this month. Qiita can be used more conveniently after logging in.
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away
ユーザーは見つかりませんでした