Erabという、パーソナルでプログラマブルなダッシュボードアプリを作った

公開:2020/11/03
更新:2020/11/08
4 min読了の目安(約3900字IDEAアイデア記事

はじめに

Erab というFlutter製アプリを作成し、TestFlightでiOS用アプリの限定公開をはじめました。

Android版は現在申請中です。
公開され次第Twitterでアナウンスしますので、もう少しお待ち下さい。

Erab とは?

Erab は自分に必要な情報だけを絞って表示することができるアプリです。
簡易的メモ帳としての利用はもちろん、外部から様々な情報を流し込んでダッシュボード的な利用もできるようになってます。

image

日本語の「選ぶ」と英語の「Grab」から造られた名前の Erab は、パーソナルでプログラマブルな本当に必要な情報だけを取捨選択して掴み取ることができます。

image

準備にはそれなりに時間と労力がかかりますが、一度構築してしまえば欲しい情報を自分の好きなように一覧表示して確認できるようになります。

情報源

公開したばかりのアプリでWebにも情報はありませんし、そもそも立ち上げただけではどう使ったらよいかなかなか分かりづらいアプリです。

Zennで2つの本を公開していますので、ご利用の参考にしてください。

  • 仕組みや使い方など

https://zenn.dev/nobu/books/266ba347163afb7f773a

  • 利用する際の参考情報

https://zenn.dev/nobu/books/b4745d3a69cd5e9b0506

コンセプト

スマホひとつで「さまざまな情報が簡単に手に入り」「様々なアプリが簡単に使え」「暇な時間はゲームで時間を潰せ」「SNSで簡単にコミュニケーションがとれる」ようになりましたが、逆に言うと「必要な情報はバラバラに散らばり」「本当に必要な情報と不要な情報は混在し」「暇な時間はあまりなくなり」「アプリを開くたびに様々な誘惑が襲ってくる」ようになってしまいました(ちょっとニュースを追いかけようとTwitterを開いたが最後、永遠とスクロールしてしまったという経験は皆さんお持ちだと思います)。

これはこれで良いところもあるのですが、ほとんどの人は「朝目覚めて一つのアプリを開いたら今日必要な情報がすべて把握できたらいいなー」なんてことを一度は思ったことがあると思います。

Erab はそれを可能にするアプリです。

BoardとBlockという表示場所を指定し、WebHookでプログラマブルに表示内容を指定したタイミングで更新することができます。

表示形式はマークダウンやリンクカードなど複数の方法を用意していますので、内容によってお好きなように様々なパーソナルな表示方法を選べるようになっています。

作成の動機

(ここからはポエムになります)

昔からタスク管理ツールが好きで、タスクを管理しているのかタスク管理ツール自体をいじってるのかわからないくらい様々なツールを試してみました。

でも、既存のツールではなかなか気に入るものがありませんでした。

タスク管理ツールでは粒度が細かすぎるし、プロジェクト管理ツールではなかなか複数のプロジェクトを俯瞰的にみることが難しいのです。
そもそもマウスポチポチやタップタップタップなアプリでは、思考に操作が追いついてきません。

性格的なところもあり各ツールの利用は長く続かないのですが、それでも長く利用できたのは下記のツールまたは仕組みです。

  • Howm[1]
  • Markdownでのタスク管理[2]
  • Taskpaper[3]
  • Plagger[4]

こう考えてみると、自分には

  1. テキストファイルで管理できる
  2. タスクにコメントを入れるのではなく、文章の中にタスクを入れたい
  3. キーボードを使いブレインストーミング的に書き出したい
  4. 自分で拡張できる

というところあたりが重要なのだと考えました。

ですが、これだけモバイルが発達してくるとこれだけでは満足できず、

  1. 移動中はモバイル端末を利用したい
  2. モバイル端末ではDragDropで並び替えたい
  3. 気になる情報はすべて一緒に見たい

という欲求が出てきます。

そんなときにFlutterという開発環境がGoogleから出てきました。
(zenn.devを利用中の皆さんはご存知だと思いますので、詳しい説明は省略します)

Flutterでアプリを作ったら「僕の考える最強のプロジェクト・タスク管理ツール」が作れるのでは?と考え、いくつもツールを試作してみました。しかし、既存のタスク管理アプリを参考にして作ってみてもどうもしっくり来ませんでした。

作ってみたものの中で一番野心的なものは、Markdownで書かれたテキストを各要素に分割して表示させるというアプリです。
ですが、ネストを表現しながらDragDropで並びを変えられるようにするのが結構難しいうえに、あまり現実的ではないことに気づいて作成途中でお蔵入りとなりました。

そこで、もう一度自分がほしいツールってなんなんだろう?と考えた末にできた[5]のが本アプリケーションの Erab です。

プログラミングでよく話に出てくる「MVC」ではありませんが

  • データ部分: 各種既存ツールや一般的なWebページ
  • コントローラー部分: IFTTTやGASなどを利用した自前部分
  • 表示部分: Erab の担当領域

を分けたうえ、最近のアプリ制作でよく使われる

  • リアクティブな作り
  • 一方通行な情報の流れ

的な概念や構造を採用することで、自分が求めていた感じのアプリケーションが出来上がりました。

とはいえ、アプリで編集できないのはそれはそれで不便ですので、アプリでの内容編集も可能です。
コントローラー部分から新たなデータが流れてくると編集したデータは上書きされますので、編集用Blockとデータ表示専用Blockは分けて利用すると良いでしょう。

複数のBoardと複数のBlockというのは一見複雑そうに見えますが、この仕組みがあることで表示部分はスッキリとさせながら表示側でのDragDropによる並び替えにも対応することができるようになっています。もしかしたらカード式とは違った表示形式も追加できるかもしれません。

コントローラー部分の開発が必要になりますので万人受けするようなアプリではありませんが、ハマる人にはハマるアプリではないかな?と思ってます。
実際、ここまで「うん、うん」言って読んだ人も多いのではないでしょうか?

さいごに

Erab は現時点で、本リリース前の評価リリースです。

評価リリースの間は本リリースで予定している有料機能部分についても制限無しで利用できますので、ぜひ利用してみていただきフィードバックいただけたら嬉しいです。

また、動作におかしな場所を発見したり、機能的な要望がありましたら、Twitter 経由などで教えて下さい。

よろしくお願いします!

脚注
  1. howmは「一人お手軽 Wiki もどき」という名のEmacsで動くlispパッケージで、メモっておけば必要な情報が自動的に浮かんでくるという仕組みが最高でした。パッケージ自体も長らく利用させていただきましたが、その概念的なものにはかなり影響を受けています。 https://howm.osdn.jp/index-j.html ↩︎

  2. Markdownでのタスク管理については以前記事を書いたことがあります。時間のあるときに zenn.dev へ移しましょうかね。https://blog.bulkus.net/post/manage_tasks_markdown/ ↩︎

  3. 以前はiOSバージョンもあったのですが、現在はMacOSバージョンだけになってしまいました。良いソフトだったんですけどね。 https://www.taskpaper.com/ ↩︎

  4. 分類的にはタスク管理ツールではないのですが、様々な情報を一つにまとめるという意味で今でも非常に影響を受けてます。しかし、あれからもう10年近く経ってるんですね。おっさんになってるわけですわ。 https://github.com/miyagawa/plagger ↩︎

  5. 作り始めて2ヶ月、ビューワー的なものなのでもっと簡単に完成するかと思ったのですが、結構時間がかかってしまいました。試行錯誤しながら作ったとはいえ、アプリってプログラミング以外のところが結構面倒で時間がかかるんですよね。 ↩︎