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回だけビルドできるのだが、 この制限に引っかかるたびに思い出すのは、 幽白で霊丸を打てる回数に最初は制限があったなぁということだ。