概要
この記事では、Swiftでmacアプリのdockアイコンをアニメーションさせる方法について紹介します。dockアイコンのアニメーションには、「DSFDockTile」というライブラリを使用します。
デモ
作るもの
起動時に、dockアイコンでgifアニメーションを再生するアプリを作ります。
手順
gifファイルを用意する
まず、アニメーションさせたいgifファイルを用意します。
Assets.xcassetsにgifファイルを追加する
Assets.xcassetsに、用意したgifファイルを追加します。
DSFDockTileをインストールする
DSFDockTileはSwift Package Managerでインストールできます。
- Xcodeのメニューから「File」->「Swift Packages」->「Add Package Dependency...」を選択します。
- 「 https://github.com/dagronf/DSFDockTile 」と入力し、「Add Package」をクリックします。
- 「DSFDockTile」にチェックを入れ、「Add Package」をクリックします。
AppDelegateにコードを追加する
AppDelegateがない場合は、新たに作成してください。
import AppKit
import DSFDockTile
import DSFImageFlipbook
final class AppDelegate: NSObject, NSApplicationDelegate {
let animatedDockTile = {
let data = NSDataAsset(name: NSDataAsset.Name("gifファイルの名前"))! // gifファイルを読み込む
let flipbook = DSFImageFlipbook()
_ = flipbook.loadFrames(from: data.data)
return DSFDockTile.Animated(flipbook, dockTile: NSApplication.shared.dockTile) // DSFDockTile.Animatedを作成する
}()
func applicationDidFinishLaunching(_ aNotification: Notification) {
animatedDockTile.startAnimating() // アニメーションを開始する
}
}
このコードでは、以下の処理を行っています。
- gifファイルを読み込む
- DSFDockTile.Animatedを作成する
- アニメーションを開始する
SwiftUIでAppDelegateを使用する
SwiftUIでAppDelegateを使用するには、〇〇App.swiftに以下のコードを追加します。
import SwiftUI
@main
struct SampleApp: App {
@NSApplicationDelegateAdaptor(AppDelegate.self) var appDelegate // これを追加
var body: some Scene {
WindowGroup {
ContentView()
}
}
}
おわりに
この記事では、Swiftでmacアプリのdockアイコンをアニメーションさせる方法について紹介しました。今回は、起動時にアニメーションを再生する方法を紹介しましたが、アニメーションの再生タイミングを変更することもできます。ぜひ、いろいろ試してみてください。