Help us understand the problem. What is going on with this article?

iOSショートカットアプリを作って鍵をNFCで素早く開ける

スマートロックをもっとスマートに解錠したい。

玄関の前まで帰ってきたときに

携帯を取り出す → (マスクを外す) → 顔認証を解除 → アプリを探す → アプリを開く → 鍵を開ける

というプロセスを踏む必要があるのですが、「アプリを探す → アプリを開く」の2工程をNFCタグを使って削減するアプリを作ります。

特にこのマスク環境下では1工程でも減らしたい。

スマートロックにはGPSで近づくと自動で鍵を開ける設定などもあるのですが、常にGPSをチェックするため電池を激しく消耗し、チェック間隔より手動で開けた方が早いことも多く、
そもそも内廊下のマンションでは電波なんて届かないので使えません。

公式アプリではiOSショートカットに対応していないので、自分で対応するアプリを作り、
そこから公式アプリへリダイレクトさせてしまいます。

NFCタグ

10枚 NFCステッカー NTAG 213 NFCタグ/ 25 mm(1インチ)黒 円形

シールタイプで黒の目立たないものを選びました。
これを玄関部分に貼り付けるのですが、大抵の玄関の扉は金属製だと思うのですが、金属に貼り付けると反応が鈍くなるので注意!
私はインターホンの近くの壁部分に貼り付けました。

一応、マンションの玄関や廊下部分ですが普通は共用部という扱いですのでご注意ください。

iOSアプリ作成

特にView部分は必要ないのですがSwift UIで作っています。

別アプリを開く

まず公式アプリへリダイレクトさせるアプリを作成していきます。
私の場合bitlockを使用しているためlunchBitlockというアプリ名にしました。
画面を表示した瞬間に公式アプリを開くようにしています。

import SwiftUI

@main
struct lunchBitlockApp: App {
    @Environment(\.scenePhase) private var scenePhase

    var body: some Scene {
        WindowGroup {
            ContentView()
                .onAppear {
                    lunchApp()
                }
                .onChange(of: scenePhase) { _ in
                    lunchApp()
                }
        }
    }

    func lunchApp() -> Void {
        if let url = URL(string: "app.jp.co.bitkey.bitlock:") {
            UIApplication.shared.open(url)
        }
    }
}

アプリ個別のURLスキームは公開されていないため調べるのが難しいのですが、
Androidアプリも同名を使っていることが多いので、Google PlayストアのURLに書かれているパッケージ名から推察できたりします。

ショートカット対応させる

iOSショートカットXcodeのメニューから

File → New → File → SiriKit Intent Definition File

でショートカット対応させるためのファイルを作成します。

作ったIntent DefinitionファイルにCustom Intentsを追加します。
特に設定は不要ですが、わかりやすいようにタイトルを設定しておきましょう。

このファイルを追加するだけでiOSショートカットへの対応は完了です。
ショートカットアプリのアクション部分にアプリが表示されるようになります。

オートメーション設定

ショートカットアプリのオートメーション設定から新しく追加します。

「いつ」に反応させたいNFCタグを登録し、「行う(アクション)」に作ったアプリを登録するとこんな感じのオートメーションができあがります。

この状態でNFCタグにiPhoneをかざすと自動でアプリが開かれるようになって便利。

おわり

疲れてヘトヘトになって帰ってきたときに「アプリを探す」という工程が面倒だったり、別アプリを開いてるときにサクッとアプリが切り替えられるので割と便利です。

私の場合自宅WiFiに接続したときにこのアプリを開くオートメーションも登録しています。
たまにこっちの方が早く反応することもありますが、WiFi切り替え時などに誤爆します。

公式さん対応してください。。。

Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away