2026-02-20 06:41:52 -06:00
# `:core:nfc`
## Overview
2026-03-12 16:14:49 -05:00
The `:core:nfc` module provides Near Field Communication (NFC) capabilities for the application. It is a KMP module with Android NFC hardware implementation isolated to `androidMain` . The shared NFC contract is provided via `LocalNfcScannerProvider` in `core:ui` .
2026-02-20 06:41:52 -06:00
## Key Components
2026-03-12 16:14:49 -05:00
### 1. `NfcScannerEffect` (androidMain)
A Composable side-effect that manages Android NFC adapter state and listens for NDEF tags. Located in `androidMain` since NFC hardware APIs are Android-specific.
### 2. `LocalNfcScannerProvider` (core:ui/commonMain)
The shared capability contract for NFC scanning, injected via `CompositionLocalProvider` from the app layer.
2026-02-20 06:41:52 -06:00
## Module dependency graph
<!-- region graph -->
```mermaid
graph TB
2026-03-24 21:15:51 -05:00
:core:nfc[nfc]:::kmp-library-compose
2026-02-20 06:41:52 -06:00
classDef android-application fill:#CAFFBF ,stroke:#000 ,stroke-width:2px,color:#000 ;
classDef android-application-compose fill:#CAFFBF ,stroke:#000 ,stroke-width:2px,color:#000 ;
2026-03-12 22:15:20 -05:00
classDef compose-desktop-application fill:#CAFFBF ,stroke:#000 ,stroke-width:2px,color:#000 ;
2026-02-20 06:41:52 -06:00
classDef android-feature fill:#FFD6A5 ,stroke:#000 ,stroke-width:2px,color:#000 ;
classDef android-library fill:#9BF6FF ,stroke:#000 ,stroke-width:2px,color:#000 ;
classDef android-library-compose fill:#9BF6FF ,stroke:#000 ,stroke-width:2px,color:#000 ;
classDef android-test fill:#A0C4FF ,stroke:#000 ,stroke-width:2px,color:#000 ;
classDef jvm-library fill:#BDB2FF ,stroke:#000 ,stroke-width:2px,color:#000 ;
2026-03-17 16:51:09 -05:00
classDef kmp-feature fill:#FFD6A5 ,stroke:#000 ,stroke-width:2px,color:#000 ;
2026-03-24 21:15:51 -05:00
classDef kmp-library-compose fill:#FFC1CC ,stroke:#000 ,stroke-width:2px,color:#000 ;
2026-02-20 06:41:52 -06:00
classDef kmp-library fill:#FFC1CC ,stroke:#000 ,stroke-width:2px,color:#000 ;
classDef unknown fill:#FFADAD ,stroke:#000 ,stroke-width:2px,color:#000 ;
```
<!-- endregion -->