rpn更新
[tag:]
スマートフォン用のrpnカルキュレータを更新した。
以前のものは関数ボタンへの画面遷移があるため、
四則演算以外はどうしても2動作必要になる。
これだと、ほとんどの演算子が裏にあるような状態なので、
あまり魅力的でないのが問題だった。
ボタンの個数を抑えつつ、なるべく簡潔な動作で
より多くの機能を配置するには、ということで
最初に考えたのがフリップ入力方式だ。
しかし、ボタン名の表示がゴチャゴチャするのが
いやなのと、ボタンへの機能の割り当てを変えるたびに
ボタン名も更新しないといけないのが苦痛だ。
そこで冒頭のパターンロック方式に思い至る。
Androidのパターンロックと同様のジェスチャが入力できる
フィールドを用意し、ジェスチャと機能を対応させている。
ジェスチャへの機能割り当てをできるようにしておけば、
機能配置にほぼ制限が感じられないくらい自由度が高くなる。
問題は各機能のジェスチャを覚えていられるかどうかだ。
golangでもgxuiでデモ版は作ったが、golang.org/x/mobileを
使うのがまだまだ面倒すぎてgolangでのAndroidへの移植は断念。
patternLock.jsというおあつらえ向きのライブラリがあったので、
monacaでさらっと実装した。
最も苦労したのはcssで、<input type="image">で挿入した
ロゴをタップした時の青いハイライトを消すところだ。
ずっと:active擬似クラスだと思って検索していたら、
-webkit-tap-highlight-color:rgba(0,0,0,0);
だった。わかるか。
p.s.
monacaのBasicプランでは24時間に3回だけビルドできるのだが、
この制限に引っかかるたびに思い出すのは、
幽白で霊丸を打てる回数に最初は制限があったなぁということだ。