dackdive's blog

新米webエンジニアによる技術ブログ。JavaScript(React), Salesforce, Python など

読書記録アプリを作ってkintoneの基本的な使い方を学ぶ

kintoneの使い方を勉強するのにちょうどいい題材はないかと考えたところ
自分が読んだ/読みたい本を管理するアプリが欲しいなと思っていたので、それを作りながら基本操作を学ぶことにした。


アプリのイメージ

読みたいと思った本や web 上のちょっと長い記事をどんどん登録して、読み途中・完了というステータスを管理するだけのシンプルなアプリ。
ゆくゆくは登録の手間をできるだけ省力化したい(URL 登録したら勝手に書籍タイトルが入る、とか)。
また読みたい本の優先度がころころ変わりそうなので、Jira のバックログみたく気軽に並べ替えられるならそういう機能もほしい。


目的

標準機能として kintone アプリでできることを理解するのが目的で、JS カスタマイズやプラグイン機能は含まない。
またなるべく画面だけ見ながら開発してみて、どこまで直感的に迷わず操作できるか試してみる。
加えて、詰まったときの情報検索の仕方を学ぶ。


作る

アプリにアイコンを設定する
設定 > 一般設定 > アイコンと説明

本棚っぽいアイコンどっかから探してこよう、と思ったら標準でも十分なのがあった。
これにします。

f:id:dackdive:20190111004401p:plain

項目作成

思いつきだが、こんな入力項目を用意する。

項目名 説明 データ型
種別 書籍📕かweb上の記事🔗か ドロップダウン
タイトル 書籍/記事のタイトル 文字列
リンク 書籍/記事へのリンク リンク
ステータス 未読/進行中/完了 を区別したい (後述)
開始日 読み始めた日。
ステータスを未読→進行中に変えたら自動でその日がセットされるとか将来やりたい
日付
完了日 読み終わった日。
こちらもステータスを完了に変えたタイミングで自動的にセットしたい
日付
経過日数 読み始めてから何日経ったか。または読み終わるまでに何日かかったか。
あんまり日が経ってるようだと目立たせたりアラートとばしたりしたい
計算(後述)
カテゴリー 書籍のジャンル。技術系とかビジネス系とか (後述)
メモ 感想など自由記入欄 リッチエディター

特に迷うことなく追加できた。

f:id:dackdive:20190111004452p:plain

ステータスとカテゴリーは項目じゃなくて別の機能を使うことにした。後述する。


経過日数を計算する

計算式で「今日」を使う方法がわからなかったので、とりあえず読み始めから読み終わりまでに何日かかったかだけやった。
日数を出そうとしたが計算結果の値が全然合わなかったのでググった。

よくあるご質問 | 日数の計算はできますか。

なるほど、(60 * 60 * 24) で割るらしい。正しく表示された。


カテゴリーを追加する

項目とは別に、こういった設定があるらしい。

設定 > その他の設定 > カテゴリー

これを使うと、レコード一覧を開いたときに左側にカテゴリー一覧が表示されるようになり、簡単にレコードをフィルターすることができる。

f:id:dackdive:20190111004624p:plain

カテゴリーは階層構造で持てるらしい。また1レコードに複数カテゴリー設定できる。


未読→進行中→完了 というステータス遷移を実現する:プロセス管理

なんらかのアクション実行ボタンを押して現在のステータスを変更する、みたいなのはプロセス管理という機能で実現できそうだ。

設定 > 一般設定 > プロセス管理

設定すると、レコード詳細ページ上部にアクションボタンが表示されるようになる。

f:id:dackdive:20190111005228p:plain


レコード一覧に表示する列を設定する

最後に、レコード一覧ページでの列を設定する。一覧設定からできる。

f:id:dackdive:20190111005406p:plain


できた

というわけで30分ぐらいでできた。

f:id:dackdive:20190111005522p:plain


TODO

発展的なお題として、これをもうちょっと使いやすくするために試してみたいことがいくつか。

  • アクションボタン実行に合わせて開始日・完了日の入力を自動化する
  • 経過日数が一定を超えたレコードはハイライト表示したり通知する
  • URL をリンク項目に入力したら勝手にタイトル補完してくれるようにする
  • ドラッグ&ドロップで行並び替えたい
    • かなり難しそう