4.8K Views
February 06, 23
スライド概要
2023年1月28日に実施された「JavaDoでしょう」グループによる「ハイブリット開催!Javaもそれ以外も幅広く聞きたい・話したい!」イベントにて発表したLTの内容です。
takagimeow is the full stack Android engineer working in Sapporo, Hokkaido, Japan. I love Android, so I usually write mobile app code and server-side code in Kotlin language.
Jetpack Composeからはじめる NFCアプリ たかぎとねこ(@takagimeow)
たかぎとねこ ・Android Developer ・Qiita : @takagimeow ・Twitter : @takagimeow ・https://takagimeow.takagi.app
AndroidとNFCの現状 ・「NFC Hacks」と呼ばれる名著が、オライリージャパンから出版された2013年11月を最 後に、AndroidとNFCをメインテーマにした書籍の出版は2023年1月現在出版されてい ない ・2013年当時と比べて、現在はオンラインショッピングサイトを通じて安価で多様なNFC タグを入手しやすくなっている ・最近のAndroidスマートフォンでは、標準でNFCの機能が利用可能となっている
Jetpack Composeの登場 ・ネイティブUIをビルドするために開発され たAndroidの最新ツールキット ・宣言的UIと呼ばれるスタイルでUIを記述 することができる ・Kotlinの関数を使って記述できるため、よ りシンプルにUIを作成できるので、従来の XMLを使った複雑なレイアウトの記述を避 けることができる
NFCタグを読み取った時の主なインテント ・発行されるインテントの種類はandroid.nfc.NfcAdapterにて定義されている ・https://developer.android.com/reference/android/nfc/NfcAdapter ・NfcAdapter ・ACTION_NDEF_DISCOVERED ・ACTION_TECH_DISCOVERED ・ACTION_TAG_DISCOVERED
ACTION_NDEF_DISCOVERED ・NDEFペイロードを持つNFCタグが見つかった場合に発行されるインテント ・android.nfc.action.ACTION_NDEF_DISCOVEREDを使って参照する
ACTION_TECH_DISCOVERED ・NFCタグが発見され、発見されたNFCタグが事前に設定されているテクノロジーをサ ポートしている場合に発行されるインテント ・android.nfc.action.ACTION_TECH_DISCOVEREDを使って参照する
ACTION_TAG_DISCOVERED ・NFCタグが見つかった場合に発行されるインテント ・ACTION_NDEF_DISCOVEREDやACTION_TECH_DISCOVEREDなどに対応す るアクティビティが存在する場合は発行されない
使用許可を設定する
IntentFilterを設定する
NfcAdapter
DisposableEffect
LifecycleOwner
addObserver()
LifeCycleEventObserver
LifeCycle.Event.ON_CREATE
LifeCycle.Event.ON_RESUME
LifeCycle.Event.ON_PAUSE
newIntent.action
Tag
書き込む場合
NDEFメッセージを作成する
実際に書き込む
読み取る場合
onDispose
まとめ ・Jetpack Composeを採用しても、既存のNFCとAndroidに関する知識を使ってアプリ の開発を行える ・Activityに対してandroid:launchMode=”singleTask”を設定する ・他のパッケージ名が含まれたAARが保存されているNFCタグも取り扱いたい場合は既 存のアクティビティを使った実装がおすすめ