昨年末からアプリのアップデート作業を少しづつ進めています。最初のアップデートはトランジションの追加です。Ver1.0の状態ではレビューを付けてもらうに値しない代物で、本来であればVer1.0に載せるはずの機能でした。現状最も代表的な(無難な)フェード系とスワイプ系のトランジションを実装したところです。
Ver1.0ではディゾルブのみの実装で、NSAnimationクラスを利用したものでしたが、現在はCore Animationに切り替えて実装を進めています。Core AnimationはiOSやMacOSにおいて見栄えのするリッチなインターフェースを作るための中核技術なので、ネットを検索すれば割と豊富に情報が見つかるのですが、それでも私がやろうとしていることと全く同じ事例がなく、異なるレイヤーを順番にアニメーションさせた後、事後処理をするというクロスディゾルブのパターンで、開始時間がうまく働かなかったり、レイヤーBのプロパティ変更がレイヤーAの表示時に影響してしまったり、多少試行錯誤を繰り返しました。ここからは3次元的なパラメーターをもったトランジションに挑戦です。とりあえずあと一つ種類を追加したところで、一度アップデートをリリースする予定です。例によって予期せぜ時間を費やす可能性ありありですが。
実際に実装したトランジションを画面上で見てみて発見だったのが、大きな画面でデスクトップ全体をスワイプさせると意外なほどうっとおしく感じることです。フェード系の切替えは視覚的な変化が小さく、気付かない間に切り替わっていたという感じですが、スワイプは作業中のウィンドーの背後でイメージが動いているのが強く目に入ってきて作業に対する集中を邪魔されます。また、自分は趣味と検証を兼ねて動画のシーンをキャプチャーしたイメージを多数壁紙に使っているのですが、動きのシーンをキャプチャーした連続したイメージはスワイプ系よりフェード系の切替えの方が合っていることです。そのために切替時間やトランジションなどの設定をアプリの設定ではなく、ファイルごとの設定にしているのが自分のアプリの特徴なのですが、Ver1.0ではプレイリストの設定を変えたら、個々のファイルの設定を精査して同じ設定だったら個別設定をクリアするという処理をさせていました。しかしこれでは、例えば普段使いにはディゾルブが最適でもたまにはスワイプにしてみたい、その時にも一部のイメージはディゾルブのままがいいと個別設定しても、全体設定を元に戻した時、個別設定が消えてしまい再びスワイプにした時、スワイプに向かないからと個別にフェード設定にしていたものも全て全体設定と同じになってしまい使い勝手が悪いことに気づきました。そのため前述した処理をごっそり削除して個々の設定は常に残すように修正しました。
こういったことは使って初めて気がつくことなので、頭で考えて設計をしている時にはわからないことで、ものづくりの難しいところでもあり、面白いところでもあります。
2021年1月7日の投稿
▼ 記事の選択 ▼
最近の投稿
コメントする
※ 匿名希望の場合は空欄で構いません。
コメントを追加する キャンセル