聴講メモ:集まれSwift好き!Swift愛好会 vol.95 @ 株式会社スマートバンク

オフライン参加のつもりが予定が狂い、今回はオンライン視聴。ラストの Liquid Glass 対応に関するトークはオフライン限定ということで、残念ながら聴講できず。最後のアセットコンパイルの話で、Assets に含めた svg ファイルが、ビルドの過程で各解像度の png に変換されていると知り目から鱗。

イベントページ:https://love-swift.connpass.com/event/367730/
アーカイブ動画:https://youtube.com/live/uZpxIPIg6F0


アプリの “かわいい” を支えるアニメーションツールRiveについて

上ちょ / uetyo さん

  • Rive とは? “インタラクティブ” アニメーションツール
  • ユーザーのタップを起点にアニメーション、音声再生、Haptic も可能
  • 複数種類のアニメーションを用意したい場合
    • Lottie アニメーションは種類分の個数が必要だが、Rive はファイルは一つのみでOK
    • Rive ファイル内で分岐が完結
  • RiveViewModel: Rive ファイルに指示するプロトコルを SDK が提供(型安全)
  • riveViewModel.view() でビュー生成
  • Screen に手を加える必要なし
  • アニメーション、再生タイミング、タイマー調整… は従来、エンジニア実装、デザイナー確認のラリーが発生していたが、 Rive ファイル内でデザイナー完結するのでラク
  • アニメーションの制作方法:
    • 初期:Rive ファイルの作成をエンジニアが主導+デザイナー巻き込み
    • 現在:デザイナーで完結
    • Rive は Duolingo が最も利用している、アニメータ専門チームが存在
  • Lottie Animation との使い分け
    • Rive:パフォーマンスが高い(メモリ使用量、CPUのレンダリングコスト)
    • 銀の弾丸ではない、ループ再生は Lottie を公式が推奨する
    • カスタムフォントはキャッシュ機構が必要(メモリ使用が増大し不安定に)
  • Q&A
    • Lottie と比べて微妙な点
      • Rive が高機能すぎて作りにくい
      • Lottie は AE から直接エクスポートできるが、Rive は専用のツール (Rive Editor) が必要で学習うコストが高い
      • 前述のパフォーマンスに対する考慮が必要
    • 後発の Rive だからこそ導入時の困りごと
      • トラブル時情報が少ない(フォーラムやGitHub Issueで質問→レスポンスに時間がかかる)
      • 日本語での情報が少ない、AIの学習も進んでいない
    • 採用すべき
      • ただのローディングだけであれば慣れ親しんだLottieが良さそう
      • 画面全体で利用したい、アニメーション途中のインタラクションをさせたいケースはおすすめ
    • 両方採用はあり?
      • ワンバンクは両方利用
      • ケースによって片方に倒すのもあり

異業種からiOSエンジニアへの道のり〜iOS開発の魅力〜

hinakko さん

未経験からエンジニアになるまでの自らの歴史。自分から機会を得て、人と出逢いにいくその行動の量や幅がとにかくすごい。ひなっこさんはバイタリティに満ちていて、お会いするたびに圧倒されているが、そんな彼女のキャラクターが画面を越えて滲み溢れてくるプレゼン。ぜひアーカイブをご覧ください。

アセットのコンパイルについて

ojun さん

  • xcassets によるアセット管理が、最終的にどのようにアプリに表示されているか
  • xcassets は ipa に含まれない`
    • Assets.car にビルド・変換されている
    • actool を利用してビルドされている
  • actool とは
    • xcassetsをコンパイルするツール、Xcodeに内包
    • $ man actool でコマンドオプション見れる
    • ビルドログでコマンド実行確認できる→整形
      • output path 指定など
  • actool はプロジェクト外でも使える
    • コマンドとして公開されているため、Xcode のプロジェクト関係なく Assets.car 作成可能
  • Assets.car の中身
    • assetutil コマンドで確認可能
    • $ assetutil —info Assets.car
      • 画像のプロパティがJSONでまとまっている
      • insidegui/AssetCatalogTinkerer で可視化可能
  • xcassets がなくても Assets.car があれば画像を表示可能
    • 事実上コンパイルをスキップ可能
    • デモ実演
      • Assets をターゲットから外すと、Preview に画像は表示されない
      • actool により Assets.car を生成 → Preview に画像が表示される
        • Assets ではなく .car ファイルを見ていることがわかる
    • 嬉しいこと
      • クリーンビルドをすると、アセットのビルドに多くの時間がかかる
      • アセットを大量に含むアプリの場合、事前に .car をビルドしておくことでビルド時間を短縮できそう
  • Q&A
    • xcassets が複数あるとエラー
      • ファイル名変えて(固定アセットを)複数管理できる?
        • サブモジュールで持っておけばマージされるかも
    • xcassets に SVG 含む場合、最終的な ipa に内部で png 化されている説、これもビルド時間に含まれる
      • 含まれる

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です