🖥️
【Swift/macOS】"ログイン時に起動"を簡単に実装できる「LaunchAtLogin」
はじめに
常駐系のMacアプリ(LINE、Discordなど)でよく見かける「ログイン時に起動」という設定がありますが、これを簡単に実装できる「LaunchAtLogin」というライブラリを紹介します。
LaunchAtLoginには、ログイン時に起動させるヘルパーとなるアプリが入っていて、そこからアプリ本体を起動させるという仕組みです。
macOS 12以前も対応させる場合
macOS 13以降にのみ対応させる場合
インストール方法
Swift Package Managerでは、「File」→「Add Packages...」から以下のURLを指定すればインストールできます。
https://github.com/sindresorhus/LaunchAtLogin
https://github.com/sindresorhus/LaunchAtLogin-Modern
使い方
インポート
import LaunchAtLogin
「ログイン時に起動」設定になっているか?(Bool)
LaunchAtLogin.isEnabled
ライブラリ側で保存されるので、この設定をUserDefaultsなどに保存しておく必要はありません。
LaunchAtLogin.isEnabled = true
このようにLaunchAtLogin.isEnabled
を書き換えるだけで、LaunchAtLoginの設定を変更できます。
SwiftUI
SwiftUI用のViewなども色々用意されているので、SwiftUI製のアプリであれば上記の処理を書かなくてもチェックボックスなどが利用できます。
struct ContentView: View {
var body: some View {
LaunchAtLogin.Toggle()
}
}
struct ContentView: View {
var body: some View {
LaunchAtLogin.Toggle {
Text("Launch at login")
}
}
}
struct ContentView: View {
@ObservedObject private var launchAtLogin = LaunchAtLogin.observable
var body: some View {
Toggle("Launch at login", isOn: $launchAtLogin.isEnabled)
}
}
おわりに
その他のコード例や注意事項などは、ライブラリのGitHubページから確認できます。
使う前に1度目を通しておくことをオススメします。
Discussion