川柳箋 技術情報
縦書き
iPhoneもMacと同様多言語対応ですが、基本的に横書きのみです。
このため川柳箋開発にあたって縦書き表示を独自に実装しました。
簡易禁則処理
簡易行頭禁則処理を行います。通常次の禁則文字が行頭にならないようにします。
ーぁぃぅぇぉっゃゅょゎァィゥぇォッャュョヮヵヶ
音引き(伸ばす記号)『きゃきゅきょ』などのちいさな仮名文字を簡易禁則処理の対象にしています。
閉じ括弧は行頭禁則の対象にはしていません。(1行の文字数が少ないためです)
ドラッグ&ドロップ
開発を始めた当初は『コピーペースト』機能を実現する事を目標にしていました。ところが縦書きでインライン変換できないため、ペーストをボタンで実装すると使い勝手が悪いことがわかりました。
複数の技術的な限界から縦書きインライン変換は実現できなかったのです。これにともない縦書きでの挿入ポイントの点滅をとりやめました。挿入位置が決まらないとどこにペーストするかが決まりません。
そこでペースト操作ではなくドラッグ&ドロップ操作でペーストや移動を実現することに方針変更しました。
ひとつのアプリケーションの中専用ですのでDrag Managerと呼べる程複雑ではありませんが、iPhoneには存在しない機能だったので独自に実装しました。
ドラッグ操作中は半透明の文字列を表示し、移動と複製を挿入ポイントのプラスマークで区別するなどできるだけMacのドラッグ操作に挙動を合わせるようにしました。
ドロップせずにドラッグ操作をキャンセルしたときのアニメーション表示もMacに合わせました。
ペーストボード
ドラッグ&ドロップであればまずドラッグする「何か」が存在しなければなりません。
そこでペーストボードを作りました。作品を切替えてもペーストボードはそのまま存在するので、別の作品からのコピーペーストも可能です。
ペーストボードにはペーストするための文字の一部を表示するようにしました。当初からほぼ現在のデザインでしたので過去にコピーしたものを順に残す仕様もすぐに思いつきました。
ベータテスト(発売前のテスト。ある程度完成したアプリケーションを外部の方に実際に近い使い方でテストしていただく)でペーストボードの任意の文字を消したいとのご要望があり、追加実装しました。
実はペーストボードの任意の文字を消す操作が必要な事は認識していましたが、発売を急ぎその機能は後回しにするつもりでした。
なおペーストボードへのドロップ操作によるコピーは受け付けません。背景以外でドラッグのタッチをはなすとドラッグのキャンセルになります。
コピーボタン
コピーボタンは『コピー機能』を持っている事を明示するための役割も持たせています。
コピーはiPhoneの標準ではまだ実現されていないため、機能そのものを認知してもらう必要があったのです。
ボタンのような見える要素でなければ、コピー機能を持っている事に気づいてもらえない可能性があるためです。
Macなどのパソコンではファイルと編集など標準機能は多くの利用者に認知されていて、しかもメニューバーに表示されているため機能の存在を思い出しやすく操作も間違えにくくなっています。
一方iPhoneでは限られた画面サイズで情報そのものを多く、あるいは大きく表示するため常時表示するメニューバーのような表示/操作要素は切り詰められ電波状態や電池残それに時刻を表示するステイタスバーのみ標準です。
操作可能な要素は指先の面積に大きさを合わせているため「コピー」ボタンのようにステイタスバーのほぼ2倍の高さになります。
明朝体フォントとメモリ不足
川柳箋1.2.0で明朝体の表示を実現しました。
IPAフォントを川柳箋アプリケーション内に持っています。明朝体の表示は川柳箋のみで可能です。明朝体を表示するため内部では6MB近くのメモリーが追加で必要になります。
iPhoneではかな漢字変換をおこなうとどんどんと空きメモリーが少なくなる現象があります。明朝体を表示するとメモリ不足になる場合があります。文字の入力中は角ゴシック体で表示すると明朝体表示のためのメモリ消費はなくなります。
メモリ不足のジレンマ:
メモリ不足の状況でもアラートなどを表示すべきではないとの設計思想もあります。利用者にはメモリ不足を回復する手だてがないためです。
しかしiPhone OSではメモリ不足の状態が続くとアプリケーションが強制終了される場合があります。電話の着信やアラーム表示などそのきっかけは様々のようです。どのような原因であっても強制終了は避けなければなりません。また強制終了の場合はアラートを表示することも不可能です。
このため川柳箋では「空きメモリ不足」のアラートを表示します。
この表示が出ましたら一度ホームに戻ってください。頻繁にメモリ不足が発生する場合は一度完全に電源を切ると川柳箋が利用可能なメモリーが増えます。
「設定」アプリケーション
環境設定と新規付箋の設定は一度ホームに戻り「設定」アプリケーションでおこないます。これはiPhoneのガイドラインに沿った実装です。
バージョンアップで背景色と文字色を追加しましたが、数が増えたため指定の行数も増えました。残念ながら「設定」アプリケーションの中では川柳箋のプログラムはまったく動かす事ができません。このため色の名前の設定で、川柳箋のようなピッカーを使った実際の色を見ながらの選択はできません。
「設定」アプリケーションの問題:
「作者名」の入力で改行キーをタップしてもオンスクリーンキーボードは消えません。これは「設定」アプリケーションのバグのようです。