kintone Advent Calendar 2015 最終日です。
こんにちは!今日が仕事納めの@ama_chです。kintoneを開発して飯を食っています。
開発者にこそkintone!
kintoneはビジネス系部門でご利用いただくことが多いのですが、開発にも幅広い用途で役立てることができます。kintone開発チームではドッグフーディングも兼ねて業務全般でkintoneを活用しています。
今回はkintone開発チームの使い方を例に挙げながら、開発者目線でkintoneを紹介してみます。
気軽にデータを蓄積できるアプリ
kintoneの一番の特徴は、何と言ってもD&Dでフォームを配置するだけで作成できるアプリです。数分でデータを溜める箱を作って運用開始できます。
このような「気軽にデータを溜める箱」は意外と登場機会が多く、開発チーム内でもさまざまなアプリが運用されています。代表的なアプリを2つ紹介します。
タスク管理アプリ
いわゆるBTSと同じようなものです。世の中には数えきれない程の類似ツールが存在しますが、kintoneで作る場合の大きな特徴はスモールスタートできることです。
例えば、次のような流れでアプリにフォームや機能が増えていきます。
- 「タイトル」と「説明」だけの最低限のアプリを作る
- 開発メンバーが増えたので「担当者」フィールドを追加
- QAメンバーがジョインし試験対象のタスクが分かるようにするため、「プロセス管理」機能を有効化
- 登録される不具合が増えて機能追加と区別したくなり、「種別」フィールドを追加
kintone開発チームで利用しているタスク管理アプリもこのように変更を重ね、これまで約2200回の設定更新がありました。
業務の変化に合わせて柔軟にアプリの構成を変更できるため、気軽に使い始めることができます。ありがちな問題として、開発チーム内のツールは他チームのメンバーには使いにくいというのがありますが、kintoneは開発者以外の利用も想定しているので、そのような問題は起きにくくなっています。
ふりかえりアプリ
kintone開発チームでは2週間に1回ふりかえりを行っています。開発者にはおなじみのKPTを使っており、KeepやProblemはkintoneで作成したふりかえりアプリで管理しています。
最初は付箋やホワイトボードを使った方法も検討しましたが、次のような事情がありうまく機能しませんでした。
- 他拠点や自宅からリモートで参加するメンバーもいる
- Problemに対する議論の結果を残したい
- Tryの達成状況を管理したい
自分たちの要件を満たすサービスを探したり既存のサービスを無理して別用途に使うのに比べると、kintoneを使うことで簡単に欲しいシステムを実現できました。
こちらのふりかえりアプリは使いながら改善を重ね、現在はクローンアプリが社内のいたるところで作成・使用されています。
カスタマイズでアプリをハックする
kintoneアプリはただのデータを溜める箱に留まりません。コードを書いて表示や動きを色々カスタマイズすることができます。
JSカスタマイズ
任意のJSファイルをアップロードしてコードを実行することができます。JS APIを使って、次のような処理が記述できます。
- レコード保存時に特定の値が入力されていたらエラーにする
- 入力値によってフォームパーツの表示/非表示を切り替える
- 外部サービスから値を取得してフォームに入力する
具体的なカスタマイズの流れはこちらの記事がわかりやすいです。
先述のふりかえりアプリでは、「K/PフィールドでPが選択されたらTryが入力可能になる」などのカスタマイズがされています。
プラグイン
JSカスタマイズをパッケージングして配布できるようにしたものがプラグインです。
kintone開発チームでは、ふりかえりアプリに登録されたレコードに「いいね!」がしたくてたまらないメンバーがJSカスタマイズで実現しました。
このカスタマイズはプラグインになり、現在はcybozu.com developer networkのプラグインサンプルとして配布しています。
REST API
CLIプログラムでkintoneアプリにレコードを追加したい?
安心してください!REST APIがありますよ!
社内で稼働中のシステムからkitnoneにレコードを突っ込んだり、バッチプログラムでレコードを一括処理して集計したりできます。
開発チームによるREST APIの使用例
kintoneは日英中の3言語に対応しており、翻訳作業のため文言をkintoneアプリで管理しています。ソースコード内の文言リソースを変更したらkintoneアプリの文言も一緒に変更する必要があります。
この作業を自動化するため、Chrome拡張を使ってGitHubのプルリクエストからワンボタンでリソースの変更差分をアプリに反映できるようにしました。
ボタンをクリックするとJenkinsジョブがキックされ、ジョブの中で実行されるスクリプトでREST APIが叩かれます。APIトークンもあわせて利用すると、認証情報をプログラムにベタ書きせずに実装できます。
開発チームのやりすぎカスタマイズを紹介
最後に、中の人たちによるちょっと変わった使い方を紹介します。
Jenkinsビルド結果の通知
ビルド結果をkintoneのスレッドに通知するJenkinsプラグインです。ビルドを落とした疑いのある人にメンションを送信する機能もあります。
※ 現在スレッド投稿用のREST APIは未提供です。今後にご期待ください。
バーンダウンチャート
開発の進捗を可視化するためのバーンダウンチャートもkintoneアプリのレポート機能で作成しています。
グラフだけ見ても分かりませんが、このグラフを出力するために
- 事前に理想線を引くためのデータをCSVで登録
- タスク管理アプリからREST APIでデータを抽出
- 抽出したデータを集計用アプリに登録
- 集計用アプリからグラフを表示
といった処理が行われています。結果としてJenkinsジョブが5分に1回走っていて、頑張ってる感がすごいです。でも、我々はkintoneでやりたいんです。
いろんな集計アプリ
コードの行数やテスト数・カバレッジなど、いろんなメトリクスをグラフ化するためのアプリです。
アプリの構造はとてもシンプルで、基本的に日付、種別、集計値の3フィールドしかありません。
毎日データを登録して、種別で絞り込んでグラフ化すると、日々の変化が確認できます。集計値はJenkinsのデイリージョブで入力されます。
おやすみカレンダー
チームメンバーの休暇を確認できるアプリです。全社で利用している休暇申請アプリからチーム内のメンバーのデータだけ抽出し、カレンダー形式で確認できるようにしました。データの抽出はもちろんJenkinsジョブで実行されています。
上の画像は今月のおやすみカレンダーですが、サイボウズはホワイト企業なので28日休む人がめっちゃ多いですね。
まとめ
開発チームで活用するkintoneについて紹介しました。
手軽にアプリが作成でき、JSカスタマイズやREST APIもあるので、開発者にとっても遊びがいのあるサービスではないかと思います。開発チームのさまざまな業務にも役立てることができるので、興味を持っていただけた方は無料お試しからぜひご利用ください。
それではみなさん良いお年を!