職業プログラマによる日曜自宅プログラミングや思考実験の成果たち。リアル休日出勤が発生すると更新が滞りがちになる。記事の内容は個人の意見であり、所属している(いた)組織の意見ではない。̄こんな吹き出しをお手軽に作成するためのiOSアプリ「突然の死」のバージョン2.0をリリースしました。このアプリには、次のような機能があります。履歴の記録こうやって機能をリストアップすると昔のバージョンとは大きな違いはありませんが、バージョン2.0には重要なポイントがあります。それは「改行対応」です。今まで改行に対応していなかったのか?進捗ダメだったからというのは強ち間違いという訳でもありませんが、作ったUIに自分で満足していなかったから公開していなかった、というのが実際の背景です。最近になって、自分の心の中で諦めの心が芽生えたことから、公開に踏み切りました。改行対応の何が難しいのか?「突然の死」の文字列処理が難しいなんてことはありません。開発対象プラットフォームにおける文字幅の取得方法さえわかれば、あとは基礎的なプログラミングと中学校で習う範囲の数学とをきちんと勉強している方であれば誰でも組める程度の文字列処理です。難しいのはUI設計の方です。このアプリの一番大事なところは、画面が最も小さい端末*1であっても、以下の機能を備えている点です。キーボード操作をしながら、リアルタイム描画*2のプレビューが見えること。キーボードが表示されている状態であったとしても、文字入力以外の操作(余白の設定や、出力操作など)がキーボードに隠されていることに気づくことができること。言い換えれば、そういった操作のための要素が完全にはキーボードには隠されないこと。見た目が超絶ダサかったとしても、これらの要件を満たしているだけで使い易いアプリになっているはずだと私は考えています。これらの要件を同時に満たそうとすると、キーボードに隠されることのない領域に、以下のものを全て詰め込む必要があります。プレビュー表示領域テキスト入力領域オプション指定等の領域のうち、縦方向スワイプ操作を開始するのに十分な部分あとは広告1行だけのサポートのときは、プレビュー表示領域もテキスト入力領域も高さが固定だったので、特に何も考えずに詰め込むことができていました。あ、広告の枠と他のタップする要素とが隣接するようなUIはダメ*3です。リリース時のスクリーンショット複数行の対応をするということは、プレビュー内容もテキスト入力領域も、多くの行を入力すれば高さが変わるのが自然です。そんなことをすれば、オプション指定等の領域がキーボードに隠れる状態になるリスクがあります。今までそんなアプリはリリースしていませんでした。開発環境としては、branchは存在していたけれどもmergeしてはいないという状態でした。等の端末がリリースされ、いいかげんにバージョンアップしないとなーと思いつめた結果、「もういいや、沢山の行を入力する物好きな人はスクロールしながら使ってくれ」と諦めてリリースしたのが今回のバージョンです。リリース時のスクリーンショットスクリーンショットからだとわかりにくいですが、入力欄やプレビュー表示欄は、縦にスクロールしたりします。実際にインストールされた皆さんは、スクロールとフォントサイズ調整で、どうにかして問題から逃げようとしている様子が見て取れると思います。まー、もっと良いUI部品の配置を思い付いたらそれ採用しますんで。MotookaUtilitiesFree今後も使ってあげて下さいね。*1:現時点では、iPhoneのみ対応のアプリをiPadで起動した状態の画面。iPhone3GSサイズ相当。*2:ここでは、一般的な人間の体感としてのリアルタイムのこと。*3:広告の誤タップを誘うから、ですね。08:00吹き出し作成アプリ「突然の死」バージョン2.0リリースTweet広告を非表示にする関連記事2017-10-30英語から開発しよう、そのアプリ。私は、WebアプリでもiOSアプリでもその他のものでも、何かしらU...2016-12-312016年、作ったものまとめ。2016年も残り10時間を切りました。勉強会に参加してきました2日前の話題ではありますが、タイトルの通りです。著者id:t_motookaSVGやPostScriptの同人誌を出してる人。本業はCRMシステムのコンサル&開発やってる零細企業の代表。PostgreSQL。