2017年10月31日火曜日

「壁ごよみ」の開発日記の二回目です。

Appleさんの申請にパスしました。出荷日の11/3の前にパスして良かった!!
iPhoneX対応もしているので、スクリーンショット登録できるようになったらしいので、やらねば。


今回は、操作方法の設計についてです。

このアプリは、ロック画面用のカレンダー付壁紙写真を作成するアプリです。
目的としては、かなり単純な部類なので、それにマッチしたサクサクした使い心地にしたいと考えました。

ただ、操作手順としては沢山のステップが必要です。
  1. カメラロールから写真を選ぶ
  2. 表示する月を選ぶ
  3. 写真の拡縮をする
  4. 写真の主題に被らないカレンダーの配置をする
  5. カレンダの拡縮をする
  6. カレンダーの文字の配色を決める
  7. カレンダーの文字フォントを決める
  8. カレンダーの文字の枠内の配置を決める
  9. 写真を保存
  10. 写真アプリで、壁紙に設定する
サクサクした使い心地にするために、この操作手順をできるだけ簡略化したいと考えました。
1は、写真変更のボタンを押す手間を削減するために、アプリの起動後に写真選択画面をすぐに起動する設定を設けました。
2は、起動日にもとに表示月を自動計算することにしました。少し工夫したのは、来月1日と同じ週に起動した場合は、今月ではなく来月のカレンダを表示することにしたこと。
3、4,5は、利用頻度は低いと想定し、ピンチなどで操作できるようにしつつ、元のサイズ・配置に戻せるようなUIにしました。
4,6,7,8は、利用頻度が高いと想定し、自由に設定するのではなく、いくつかの選択肢を順に提示することにしました。
10は、9の操作後に写真アプリを起動するダイアログをつけました。

その結果、かなり操作ステップが少なくなり、ほとんどボタンのタップだけで壁紙をつくることができるようになりました。


2017年10月27日金曜日

今回は、「壁ごよみ」の開発日記です。

このアプリ、一言でいうと、ロック画面の壁紙にカレンダーを表示する専用の画像編集アプリという感じでしょうか。 まぁ、先人達のアプリがたくさんあります。

電卓のmalc、 世界時計的なWTimeCalc、タイマーアプリのadj.timer など なんでレッドオーシャンばっかり攻めるのか?と、企画部門のシニアマネージャをしていた経験から、自分自身を小一時間説教したくなるところですw

当然、開発に至った経緯というのがあります。

まず、自分自身、iPhoneを買ってからずっと、ロック画面にカレンダーを表示していたのです。 そのために、たくさんのアプリを使ってまいりました。
古くは Q Calendar 、つい最近までは L.S.Calendar など。

なのですが、開発者の皆様 使われていないのか、現在の機種/OSに未対応とか、写真が90°回転してしまうとか、致命的な状態です。 その他のものも、デザイン的にどうしても気に入らない。。。

つまり、最初は 仕方なく という理由でした。

ところが、いつものように デザインを美しくとかだけでなく、何か新しいアイディアが伴っていないと、開発できないタイプでして。 

ちなみに、
malcは、メモリー(M+とかM-とか)の分かりやすい概念を思いついた。
WTimerCalcは、ある瞬間の世界時計ではなく、飛行機旅行のようなスケジュールを扱える世界時計が欲しかった。
adj.timerは、カウントダウン中に時間を足し引きできるタイマーが欲しかった。
という、something newがございます。

で、壁ごよみのsomething newは、標準カレンダアプリ上の予定を読み込んで、マークをつけられるという機能になります。 例えば、誰かの誕生日には●を、デートには♥を、と印をつける機能になります。


っと書いておいてなんですが、Appleさんに申請したばかりで まだパスしておりませんw
デザイナーが購入予定のiPhoneXにも対応させたので、予約日の10/27に申請できるように頑張ってみました。11/3の前にパスしますよーに。


2017年10月26日木曜日

ハマったことシリーズ No19

今回も、開発の細かな話です。ハマったシリーズNo18では、UILabelに影付き文字列を設定していてハマった話をしましたが、今度はフォントによってUILabelが欠ける(特に、斜体系の場合)という現象に出くわした話です。

影付き文字列なので前後にスペース文字列を足して影の領域を確保していました。
左揃えの場合は、ちゃんと影もクロッピングされず綺麗に表示されています。 しかし、右揃えの場合は、文字が途中でクロッピングされてしまいます。スペース文字の個数などを増やしても表示に変化がありません。
なぜだ?? ということで、Debug view Hierarchyで見てみると、右揃えの場合、末端のスペース文字(全角・半角とも)が無視されるようです。(怒!! w)

Google先生に伺っても聞き方が悪いのかお答えが聞けず 散々悩んだ末、透明の文字列を末尾に追加することにしました。


let shadow = NSShadow()
shadow.shadowColor = .black
shadow.shadowBlurRadius = offset
let aStr = NSMutableAttributedStrings(string:"text")
aStr.addAttributes([NSShadowAttributeName:shadow], range: NSMakeRange(0, aStr.length))

let rStr = NSAttributedStrings(string:"-")
rStr.addAttributes([NSForegrounddColorAttributeName:UIColor.clear], range: NSMakeRange(0, rStr.length))
aStr.append(rStr)


という感じ。無事、期待通りの表示となりました! 先頭のスペース文字は無視しないが、末尾は無視するとは。。。 いや~、ハマった。