最近は新しい技術が多すぎて、追いつくのに必死です。どうも私です。今回はNext.jsを使ってツールを作ってみた話です。
この記事の目次
Notionを使う様になった話
最近Notionをガッツリ使うようになってきた…いや、して行っている…というのが正しいかもしれないのですが、とにかくNotionをしっかり活用していこうという方向で頑張ってます。Notion自体は初期から使っていたのですが、ツールの立ち位置的な物が自分に合っていなくてなかなか使えていませんでした。
Notionを使う様にしようと思ったきっかけはYouTubeでもあるんですが、お仕事の情報が散乱し始めたのが一番大きいかなと。継続の案件が来たときにいろんな情報が多くて、「こりゃ整理しなきゃ無理だ」ってなったのです。自分でも若干限界を感じ始めていたので、この機会にという感じです。
タスク管理に挫折し続けた話
タスク管理がめちゃめちゃ苦手です。Trelloとかリリースしてすぐに使い始めてみた物の、イマイチ上手く使えない。所謂カンバン形式が上手くコントロールできないんですよね。多分あれは「今これドコに置いておけば正解なの?」というあたりが悩ましいんだと思う。
普通にリストにするだけのタイプの物も色々と使ってみましたがダメでした。どうも上手くいかない。
で、YouTubeのオススメで流れてきたのがこちらの動画。
Notionアンバサダーをされている円谷さんの動画です。見る前は正直「言うて…」って思ってました。えぇ。でも、一通り見てみて「あ、コレならできるかも」と思ったのと同時に、コレでNotion自体のことも理解できそうと思ったので、この動画に従ってタスク管理をし始めることにしました。
GTDとは
GTDとは「Getting Thins Done」の略だそうで、デビッド・アレンさんが開発したタスク管理手法とのこと。日本ではGTD Japanがセミナーなどをやっているそうです。セミナーを受けるまで行かなくても、本屋さんにはGTD関連の書籍があるという事なので、詳しく知りたい方はそちらを見ると良いかもしれません。
あんまり深いことはよくわかってないのですが、何となくこんな感じというポイントを整理すると
- タスクを思いついたら2分以内でやれるか考える
- できるならやる
- できないならInboxに書きためる
- 都度Inboxから次にやるべき事や、待ち状態の物を整理していく
- 次にやるべき事を今日やるべきかどうか選別する
- 必要に応じて振り返りを実施する
という感じみたいです。間違ってるかもしれないし、動画で解説されていた円谷さんのアレンジが入っているかもしれない。そこはよくわかっていない。でも自分はコレで整理しようと思っている。そんな感じです。
しかしNotionは面倒だった
GTD方式でタスク管理をするダッシュボード的なモノは、動画の中でも作り方を紹介してくださっていて、綺麗に作れたのですが、何せInboxにタスクを追加するのが一手間かかる。
NotionでInboxのところで新規に追加…というのは意外とヘビー。別の作業をNotion上でやっていたりするとなおさらです。複数のダッシュボードを行ったり来たりしないといけません。タスクを書いて「エイッ!」っと送れればそれでいいのに…となりました。
コレを解消する方法はいくつかあります。
Alfredを使う (Mac)
Macの効率化アプリの一つAlfredを使うという方法です。
Alfredにはワークフローという機能がありまして、こちらを使う事でキーボード上からタスク入力までできます。コレは便利。APIキーを取得するだけですのでそこまで難しくない。ワークフロー自体を配布してくれている方もいらっしゃいますし、勉強がてら作り方動画を探して作るって言うのもアリだと思います。
コレはコレで使えます。Macなら。
Fast Notionを使う (iOS / Android)
アプリとしてFast Notionというものがあります。こちらは先の動画の円谷さん制作のアプリ。初期から実はインストールしてました。
アプリとしては、特定のページに項目を投稿できると言う機能なのですが、インストールした当時は、ページに行を追加していくような感じのことができるアプリという事もあって、自分には合っていなかった。でもアプリ消していませんでした。
今はDatabaseに項目を追加するということもできる…のですが、有料機能です。年間で5,000円と言うことで、月額で支払うと500円となるんですが、機能に対しては妥当かなと思いつつ、「うーん、その価値を見いだせるかわからん…」となってしまった私。項目として見たときには妥当だと思えるのに、払う立場になると「高くないか…」ってなるの、何なんでしょう…。
ということで、コレも活用できるけど、自分では使っていない現状です。
残されたWindowsくん
と言うことで、Windowsくんが残されました。
イマココまで書いて、Windows Subsystem for Android使ってFast Notionすれば良いんじゃね?って思ったりしましたが、課金問題がある気がします。多分それぞれで使うと倍かかってきますよね。多分。
それはそれで一度置いておいて、Windowsはどうしてツールが見つからなかった。Alfredの代わりとかを見つけたりはしましたが、それでもワークフローが上手く組めなかったのです。たぶんよくわかってないだけなんですけど。
ないなら作れば良いじゃない
ということで、ないなら作れば良いじゃないの精神です。エンジニア気質ですね。最近はNuxt.jsを使ってアレコレ作ってきているのですが、どうしてもNuxt.jsの情報を集めているとNext.jsの情報が多数見つかってくるのです。めちゃ混乱するからやめてほしいんですけど、それはそれで勉強して見たら良いのかーと思ったりしつつみていたこともあって、今回はNext.jsで作ってみることにしました。
Next.jsってややこしい
ちょっと煽りタイトルみたいになりましたけど、Next.jsはとてもややこしかった。タイミングが悪かったんだと思いますが、App Directoryというものに移行していくところみたいで、情報が全然無い。ものすごく混乱しました。読み替えが大変だった。
APIをドコに書けばいいのかわからなかったし、NotionのAPIを叩くのも上手くいかなかったりした。めっちゃ苦戦しました。
結論としては、外部APIを叩くなら、Next.js内にプロキシとなるAPIを組んであげて、そこを経由して外部APIを叩くというのが確実っぽい。Rewriteでいけるよとかいう情報もあったのですが、ひたすら400エラーで蹴られました。
Notion GTD Inboxerができた
Next.jsの事自体は、また改めるとして、実働24時間くらいで完成させたのが、Notion GTD Inboxerです。
細かい挙動とか親切設計とかそこまでできてないんですが、動くからヨシ! 気になる方はIssue上げたりPRして頂けたらとても嬉しいです。はい。
APIキーとPage IDを入れてあげればそれだけで使えます。ログインとか要らないです。サーバー側では経由はするけど何のデータも保持しないので、誰でも使えるといえば使えます。これでWindowsも大丈夫だし、スマホもOKですね。
でもスマホで毎回Webブラウザ立ち上げるの?タブ開きっぱなし?みたいな事を思ったあなた。ちゃんと対策済みです。PWAにしてあるので、スマホにもブックマークと同様に保存することでアプリのように登録可能。ついでにWindowsもMacにもインストール可能です。
ということでお手軽なInbox投稿アプリを作る事ができました。実際にはDatabaseに対して登録したければ何にでも使えます。タイトルだけの投稿でよければ。気になる方は触ってみてください。(あんまりサーバーに負荷がかかる程使われるようになったら、ちょっと制限かけたりするかもしれないですが、そこまではないでしょう。)
とは言え、コレで少しはタスク整理が楽になるでしょうか。ここで苦戦したことも追々記事にまとめていきたいなとは思っています。新しい技術は難しい!
ということで、また。
文中に登場するGTDならびにGetting Things DoneはGTD Japanの登録商標です。