0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

「最後に実施した日を頻繁にリセットするが、毎日やるタスクではないタスク」を管理するアプリがないので、結局スプシで作った

Posted at

なぜか無い、シンプルに「最後に実施した日からの経過日数をカウントし、ワンタッチで今日に更新するツール

あったとしてもiCloud同期に対応してなかったりする。なんで??

成果物

スプシのスクショ

経過日数リセットqiita.gif

スプシ添付のGAS

// チェックボックスをオン・オフ切り替えたとき、そのチェックボックスの座標を起点として
// 隣のセルを更新する
function onEdit(e){
  if(e.value === 'TRUE' || e.value == 'FALSE' ){
    const todayYMD = Utilities.formatDate((new Date()), 'JST', 'yyyy-MM-dd');
    e.range.offset(0,-2).setValue(todayYMD);
  }
}

解説

  • onEdit(e) は、スプシ組込みのイベント処理関数で、あらゆるセル更新イベント(例外あり)を基本、受け取る
  • セルの値がTRUEまたはFALSEになるのは、チェックボックスだけなので、イベントを発生させたのは、チェックボックスに限定できる
  • チェックボックスはセルに配置できるので、そのセル座標から相対参照で、「その行」に対する処理を書くことができる
  • JavascriptのDateオブジェクトは、ExcelVBAと比べて貧弱なので、 Utilities.formatDate を使って楽をする

できること

  • Mac(Windows/Linux PC)、iPad、iPhone間のリアルタイム同期
    • 当然だよなあ?
  • ワンタッチで、指定したレコードの日付だけを「今日」にできる。つまり、経過日数を0にできる。
    • 当然だよなあ?
  • 項目の追加・削除が自由にできる
  • 数式を自分の好みにカスタマイズできる
    • スプシなので可能

できないこと

  • かっこいいリセットボタンをつける
    • なぜかiOSのスプシアプリは「ボタンを押してGAS実行」を禁じられているため、仕方なくチェックボックスで代用している。代用できたからよかったものの…Google Formsといい、Appleデバイスは理不尽な制約を受けることが多い。Appleが悪いのか、Googleが悪いのか…
  • iOSデバイスで、カレンダーコントロールを使って日付を選ぶ
    • Google Formsもそうなんだけど、なんでこういうイケズをするの?Googleくん。こればっかりは、Appleによるセキュリティ上の制約じゃなくて、「Androidを使ってくれよ」という嫌がらせでしょ?

だいたいのアプリのアイデアはスプシで賄えてしまう

スプシが有能すぎて、flutterだとかの開発環境を構築する気が失せる。
開発環境のトラブルシュートしてる間に、スプシなら構想も実装も全部終わって、デプロイまでできる。なんならこのQiita記事だって書けるだろう。
スプシの生産性が高過ぎるのか、 モバイルアプリの開発環境がクソなのか 、両方なのか…。
またしてもApp Storeでアプリ配布して大富豪になる機会を逃したのだった。

0
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
0
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?