カスタマインでカップ麺(タイマー)を作ろう!

こんにちは ゆーいちです。

この記事は Customineのカレンダー | Advent Calendar 2023 – Qiita の3日目です。

年末年始は、そばやうどんを食べる機会も多いかと思いますが、カップ麺で年越しそば・年明けうどん なんて方も多いのではないでしょうか?
※私も独身の頃はそうだった

今回は、そういった年末年始のカップ麺需要に大活躍してくれること間違いなしのカスタマイズ「カップ麵タイマー」の作り方をご紹介します!

自分で作ったカスタマイズでカップ麺を食べると、新たな発見やおいしさがあるかもしれませんよ。

カップ麺タイマーの動きについて?

編集画面に遷移し、ボタンを押すとタイマーが開始します。

カップ麺を開け、カスタマイズしたアプリも編集画面に遷移します。

準備して

お湯を注いで

蓋をして

そして、3分後にダイアログが出てカップ麺の食べごろをお知らせしてくれます。

食べごろです!

さあ、食べよう!

※今回は カップヌードル エビまみれ | 日清食品グループ (nissin.com) を食べてみました。お湯を注いで3分後、蓋を開けた瞬間エビの香りが爆発する凄いカップ麺でした。大変おいしかったのでご興味のある方はぜひ。

カスタマイズの全体像?

まず、カスタマイズの全体像を説明する前に、今回のカスタマイズを行ったアプリについてご説明します。フィールドは3つだけです。

※フィールドコードとフィールド名は同一としています。

アプリの全景

また、カスタマインでカップ麺を作るのに必要なアクションは7ステップです。

なお、アクショングラフは次のようになります。

それぞれのアクションの簡単な解説

アクション1:やること「ボタンをメニュー位置に配置する」条件「追加画面・編集画面を表示した時

ボタンを表示させているだけです。なおフィールドの値を変化させて3分タイマーを実現しているので、追加・編集画面でのみ動きます。

アクション2:やること「時刻を計算する」条件「ボタンを押した時

ボタンを押した時から3分後の時間を計算します。

※カップ麺がもしうどんだと5分だったりするので、設定値はカップ麺に合わせてください。

ここで一つポイントがあります。

kintoneの日時フィールドや時刻フィールドに一旦値を入れ、その値を元に処理をした場合は、秒数の情報が消えてしまう動きとなるのですが、

カスタマインでは「時刻を計算する」のドキュメントには次のような記述があります。(使い方 のところ)

これは簡単に言うと「日付を含む形式の場合、日付+時分秒までの情報を計算結果として持てる」という意味で、「now 関数」を使って計算した場合は秒単位での3分後の日時を正確に持つことができます。

今回は秒単位の精度できっちり3分を測りたいので、このアクションの実行結果を基準に処理を動かし、ほぼほぼ正確なカップ麺タイマーを実現しています。

アクション3:やること「数値の範囲から数値を取り出す」条件「いずれかのアクションの実行が完了した時

ここでは、ひたすら「数値の範囲から数値を取り出す」を動かし続けて、カップ麺タイマーのタイマー完了を待つ処理の、メインのループを実現しています。

アクション4:やること「なにもしない」条件「リストから要素を取り出した時

これは、TIPSの「「なにもしない」でなにかする : gusuku support」の応用例になります。

やること「数値の範囲から数値を取り出す」などの取り出す処理と、条件「リストから要素を取り出した時」でループ処理を作る場合に、取り出す処理から複数の条件「リストから要素を取り出した時」でアクションを繋ぎ、さらにそこに条件を足すような処理は正しく動かせないのですが、

このアクションのようにやること「なにもしない」を1つ挟んで、その後のアクションで条件によって動きを変える作りにすると、その様な処理を実現する事ができます。

アクション5:やること「フィールドに値をセットする」条件「他のアクションの実行が完了した時」「2つの値を比較して条件を満たすならば

アクション2で計算した3分後の日時(秒までの精度)を超えていなければ、この処理が動きます。

アクション6:やること「フィールドに値をセットする」条件「他のアクションの実行が完了した時」「2つの値を比較して条件を満たすならば

アクション2で計算した3分後の日時(秒までの精度)を超えると、この処理が動きます。

この時、「終点」フィールドの値を1に変更することで、アクション3が次に動いた際、ループを終了し、通知できるようになります。

アクション7:やること「情報ダイアログを表示する」条件「リストからの取り出しが終了した時

先のアクション6が動けば、リストからの取り出しが終了するのでダイアログを表示して食べごろを通知しましょう!

おわりに

すこしテッキーな感じの内容になってしまいましたが、どうだったでしょうか?

このアドカレを楽しんでもらえれば嬉しいな と思います。