LoginSignup
7
7

More than 3 years have passed since last update.

SwiftUIでiPhoneのバッテリー残量を表示してみる

Posted at

はじめに

たまたまTwitterで#swiftuiを検索していたら見つけたので、ちょっと作ってみました。

バッテリー残量を取るには

バッテリー残量を取るには、下記のコードで取得できます。

BatteryViewModel.swift
        //バッテリー監視を開始する
        UIDevice.current.isBatteryMonitoringEnabled = true
        //変化通知登録しただけなので初回は更新する必要がある
        remain = String(format: "%0.1f", UIDevice.current.batteryLevel * 100)
        status = UIDevice.current.batteryState

その後の変化通知をNotificationCenterで受け取れます。

BatteryViewModel.swift
        //バッテリーレベル変化通知を受け取れるようにする
        NotificationCenter.default.addObserver(self, selector: #selector(batteryLevelChanged(notification:)), name: UIDevice.batteryLevelDidChangeNotification, object: nil)
        //バッテリー状態編か通知を受け取れるようにする
        NotificationCenter.default.addObserver(self, selector: #selector(batteryStateChanged(notification:)), name: UIDevice.batteryStateDidChangeNotification, object: nil)

バッテリー残量をViewに反映する

ObservableObjectで反映します。

BatteryViewModel.swift
class BatteryViewModel: ObservableObject {
    ///バッテリー状態
    @Published var status: UIDevice.BatteryState = .unknown
    ///バッテリー残量
    @Published var remain = ""

終わりに

サンプルコードは、githubにアップしています。
参考にどうぞ。

7
7
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
7
7