LoginSignup
4
1

【Swift】macアプリのdockアイコンをアニメーションさせる方法

Last updated at Posted at 2023-05-26

概要

この記事では、Swiftでmacアプリのdockアイコンをアニメーションさせる方法について紹介します。dockアイコンのアニメーションには、「DSFDockTile」というライブラリを使用します。

デモ

作るもの

起動時に、dockアイコンでgifアニメーションを再生するアプリを作ります。

手順

gifファイルを用意する

まず、アニメーションさせたいgifファイルを用意します。

Assets.xcassetsにgifファイルを追加する

Assets.xcassetsに、用意したgifファイルを追加します。

DSFDockTileをインストールする

DSFDockTileはSwift Package Managerでインストールできます。

  1. Xcodeのメニューから「File」->「Swift Packages」->「Add Package Dependency...」を選択します。
  2. https://github.com/dagronf/DSFDockTile 」と入力し、「Add Package」をクリックします。
  3. 「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() // アニメーションを開始する
    }
}

このコードでは、以下の処理を行っています。

  1. gifファイルを読み込む
  2. DSFDockTile.Animatedを作成する
  3. アニメーションを開始する

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アイコンをアニメーションさせる方法について紹介しました。今回は、起動時にアニメーションを再生する方法を紹介しましたが、アニメーションの再生タイミングを変更することもできます。ぜひ、いろいろ試してみてください。

4
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
4
1