업데이트로 돌아가기
New releaseSep 7, 2026

yj_nearbyglasses v1.0.10

주변에 있는 스마트 글라스를 감지하여 경고합니다

공유

yj_nearbyglasses

근처에 있는 스마트 안경을 감지하고 경고하려는 시도.

⚠ 경고! ⚠

nearby-glasses-alert.pages.dev는 제 프로젝트와 관련이 없습니다. Play Store와 App Store의 많은 앱들이 Nearby Glasses와 매우 유사하게 보이거나 심지어 같은 이름을 사용합니다. 이들은 이름을 가로채서 빠르게 이익을 얻으려는 것으로 보입니다. 이들은 AGPL 라이선스를 준수하지 않으며, 아무것도 제공하지 않습니다. 저는 이를 지지하지 않습니다.

Screenshot Nearby Glasses classic Screenshot Nearby Glasses canary mode

⚠ 경고! ⚠

누군가가 은밀한 감시 장치를 착용하고 있다고 생각하여 그 사람을 괴롭히는 것은 형사 범죄가 될 수 있습니다. 그러한 장치를 사용하는 것보다 더 심각한 범죄일 수도 있습니다. 이 문제에 관한 현지 법률에 대해 법률 자문을 구하시기 바랍니다.

⚠ 누구도 괴롭히지 마십시오 ⚠


Nearby Glasses

Nearby Glasses라는 이 앱은 단 하나의 목적을 가지고 있습니다: 근처에 있는 스마트 안경을 찾아 경고하는 것.

Get It On Google Play Get it at IzzyOnDroid Get it on Obtainium Download on the App Store

목차

이 앱은 스마트 안경이 근처에 있을 때 알려줍니다. 이는 스마트 안경이 전송하는 Bluetooth 데이터의 회사 식별자를 사용합니다. 따라서 오탐(예: VR 헤드셋)이 있을 가능성이 높습니다. 그러므로 근처에 안경을 착용한 사람에게 다가갈 때 주의하시기 바랍니다. 이 앱의 경고에도 불구하고 그저 일반 안경일 수도 있습니다.

앱 작성자 Yves Jeanrenaud는 이 앱이나 그 기능에 대해 어떠한 책임도 지지 않습니다. 사용에 따른 위험은 본인이 감수하십시오. 기술적 설계상 Bluetooth LE 기기 감지가 예상대로 작동하지 않을 수 있습니다. 저는 정식 개발자가 아닙니다. 이 모든 것은 제 여가 시간에 스스로 배운 지식으로 작성되었습니다.
오탐이 발생할 가능성이 높습니다. 이는 Nearby Glasses 앱이 실제로는 같은 제조사의 VR 헤드셋이나 그 회사의 다른 제품이 있음에도 불구하고 근처에 스마트 안경이 있다고 알려줄 수 있음을 의미합니다. 또한 근처의 스마트 안경을 놓칠 수도 있습니다. 다시 말하지만: 저는 전문 개발자가 아닙니다.
그러나 이 앱은 무료이며 오픈 소스이므로, 코드를 검토하고, 변경하고, 재사용할 수 있습니다(라이선스 하에).
Nearby Glasses 앱은 귀하에 대한 어떠한 세부 정보도 저장하지 않으며 귀하나 귀하의 휴대폰에 대한 어떠한 정보도 수집하지 않습니다. 텔레메트리, 광고, 기타 성가신 요소가 없습니다. Play Store를 통해 앱을 설치하면 Google이 귀하에 대해 뭔가를 알 수 있고 일부 통계를 수집할 수 있습니다. 그러나 앱 자체는 그렇지 않습니다.
로그 파일을 저장(내보내기)하기로 선택한 경우, 그 데이터가 어디로 가는지는 전적으로 귀하와 귀하의 책임입니다. 로그는 로컬에만 기록되며 누구와도 자동으로 공유되지 않습니다. 로그에는 민감한 데이터가 거의 포함되지 않으며, 실제로는 마주친 BLE 기기의 제조사 ID 코드만 포함됩니다.

극도의 주의를 기울여 사용하십시오! 앞서 언급했듯이: 감지된 스마트 안경이 실제로 근처에 있다는 보장은 없습니다. 기술적으로(BLE adv 수준에서) 스마트 안경과 유사해 보이는 다른 기기일 수 있습니다.
성급하게 행동하지 마십시오. 어떤 메시지에 대해서든 행동하기 전에 생각하십시오(이 앱뿐만 아니라).

왜?

  • 스마트 안경은 용납할 수 없는 침입이며, 동의를 무시하는 끔찍한 기술로, 이미 다양하고 수많은 똑같이 역겨운 '콘텐츠'를 만드는 데 사용되고 있다고 생각하기 때문입니다. 1, 2
  • 일부 스마트 안경에는 녹화 중임을 나타내는 작은 LED가 있습니다. 그러나 이는 쉽게 비활성화할 수 있으며, 제조사들은 이를 방지한다고 주장하면서도 전혀 책임을 지지 않습니다(기술은 수십 년 동안 그렇게 해왔습니다). 3
  • 스마트 안경은 이전에 즉각적인 얼굴 인식에 사용된 적이 있으며 4, 출시 시 기본으로 제공될 것이라고 보도되었습니다 5. 이는 많은 사람들을 위험에 빠뜨립니다.
  • 그들의 데이터는 AI 훈련에 사용되며, 이는 사람들이 녹화물을 검토하고 아마도 가장 사적인 통찰을 보게 될 것임을 의미합니다 6
  • 이 앱이 누군가에게 유용하기를 바랍니다.

어떻게?

  • 이는 단순하고 다소 휴리스틱한 접근 방식입니다. BLE는 무작위화된 MAC을 사용하고 OSSID가 안정적이지 않으며 서비스 공지의 UUID도 안정적이지 않기 때문에, 블루투스 비콘을 단순히 스캔할 수는 없습니다. 그리고 더 심각하게, Meta와 같은 일부는 독점 Bluetooth 서비스를 사용하고 UUID가 지속적이지 않으므로, 현재로서는 통신되는 기기 이름에만 의존할 수 있습니다.
  • 현재 가장 실행 가능한 접근 방식은 Bluetooth SIG 할당 번호 저장소에서 나옵니다. 이에 따르면, 제조 회사의 이름이 BLE 비콘의 패킷 광고 헤더(ADV)에 숫자 코드로 나타납니다.
  • BLE 광고 프레임은 다음과 같습니다:``` Frame 1: Advertising (ADV_IND) Time: 0.591232 s Address: C4:7C:8D:1E:2B:3F (Random Static) RSSI: -58 dBm

Flags: 02 01 06 Flags: LE General Discoverable Mode, BR/EDR Not Supported

Manufacturer Specific Data: Length: 0x1A Type: Manufacturer Specific Data (0xFF) Company ID: 0x058E (Meta Platforms Technologies, LLC) Data: 4D 45 54 41 5F 52 42 5F 47 4C 41 53 53

Service UUIDs: Complete List of 16-bit Service UUIDs 0xFEAA

- [Bluetooth SIG assigned numbers repo](https://github.com/yjeanrenaud/yj_nearbyglasses/blob/main/www.bluetooth.com/specifications/assigned-numbers)에 따르면, 다음 회사 ID를 사용할 수 있습니다:
  - `0x01AB` — `Meta Platforms, Inc. (구 Facebook)`
  - `0x058E` — `Meta Platforms Technologies, LLC`
  - `0x0D53` — `Luxottica Group S.p.A` (Meta Ray-Bans를 제조하는 회사)
  - `0x03C2` — `Snapchat, Inc.` (SNAP Spectacles를 만드는 회사)
  - `0x05D6` — `Zhuhai Jieli Technology Co` (Rogbird VisionPro와 Rollme VistaView를 만드는 회사)
  이들은 **변경 불가능하며 필수**입니다. 물론 Meta와 다른 제조사들도 Bluetooth가 탑재된 다른 제품들(예: VR 헤드셋)을 가지고 있으므로 해당 ID를 사용합니다. 따라서 앱의 스캔 과정에서 이 회사 ID 코드를 사용하면 오탐이 발생하기 쉽습니다. 하지만 주변에 Oculus Rift를 착용한 사람이 보이지 않고 그들이 숨을 만한 건물도 없다면, 스마트 안경일 가능성이 높습니다.
- 페어링 중에 스마트 안경은 보통 제품 이름을 송출하므로, 그것도 스캔할 수 있습니다. 하지만 현장에서 이를 보게 되는 경우는 드뭅니다. 바, 펍, 거리 등에서 스마트 안경을 사용할 의도가 있는 사람들은 보통 사전에 준비를 합니다.
- 앱이 충분한 신호 강도(아래 RSI 참조)를 가진 Bluetooth Low Energy (BLE) 기기를 인식하면 경고 메시지를 푸시합니다. 이는 그에 맞게 대응하는 데 도움이 됩니다.
- 또한, 송출되는 기기 이름(예: `rayban`, `ray-ban`, `HeyCyan`)도 스캔합니다. `HeyCyan`은 [다양한 브랜드의 스마트 안경을 위한 유명한 SDK](https://github.com/ebowwa/HeyCyanSmartGlassesSDK)입니다. 이러한 *HeyCyan* 기기 중에는 ALDI와 Hofer(오스트리아)에서 판매하는 Nilox Smart AI Glasses도 있습니다. 이를 강화하기 위해, 해당 안경의 소프트웨어 측에 고정된 서비스 식별자인 `primary_UUID`(`7905FFF0-B5CE-4E99-A40F-4B1E122D00D0`)도 찾습니다. 이는 향후 변경될 수 있지만, 구형 기기를 사용할 수 없게 만들 것이므로 가능성은 낮으며, 따라서 그때는 스캔 루틴에 더 많은 UUID를 추가하기만 하면 됩니다.
## Features
- *Nearby Glasses* 앱은 스마트 안경이 근처에 있을 때(즉, 위에서 언급한 회사 ID 중 하나에 해당하는 BLE 기기) 알림을 표시합니다
- **근처**란 RSSI(신호 강도)가 주어진 값 이하임을 의미합니다: 기본값은 -75 dBm입니다. 이 기본값은 중간 거리와 적당한 신호에 해당합니다.
  ### What's RSSI?
- RSSI 값에 대해 조금 설명하겠습니다:<br/>
RSSI는 Received Signal Strength Indication의 약자입니다. 이 값은 무선 통신 애플리케이션의 수신 전계 강도를 나타내는 지표입니다. [Wikipedia에 꽤 좋은 문서](https://en.wikipedia.org/wiki/Received_signal_strength_indicator)가 있습니다.
간단히 말해, RSSI는 주로 다음에 따라 달라집니다:<br/>
  - 기기 송신 전력
  - 안테나 설계
  - 벽과 장애물
  - 신호를 흡수하는 인체
  - 반사와 간섭
  - 기기 방향<br/>
하지만 일반적인 BLE (Bluetooth Low Energy) 시나리오에서 RSSI 대략적 거리(개방 공간)는 다음과 같습니다: <br/>
  - -60 dBm ~ 1 – 3 m<br/>
  - -70 dBm ~ 3 – 10 m<br/>
  - -80 dBm ~ 10 – 20 m<br/>
  - -90 dBm ~ 20 – 40 m<br/>
  - -100 dBm ~ 30 – 100+ m 또는 신호 손실 근처<br/>
실내에서는 거리가 종종 훨씬 짧습니다.<br/>
RSSI는 대략 다음에 따라 감소합니다<br/>
    `RSSI ≈ -10 * n * log10(distance) + constant`<br/>
- 따라서 기본 RSSI 임계값 -75 dBm은 개방 공간에서 약 10~15미터, 실내나 혼잡한 공간에서 3~10미터에 해당합니다. 이렇게 하면 스마트 안경을 착용한 사람을 발견할 좋은 기회를 얻게 됩니다.
- *Nearby Glasses*는 내보낼 수 있는(텍스트 파일로) 선택적 디버그 로그를 표시하며 복사&붙여넣기 기능을 제공합니다. 이는 고급 사용자(너드)와 추가 디버깅을 위한 것입니다.
- *Settings*에서 로그 길이, 디버깅(모든 스캔 항목 표시 또는 ADV 프레임만 표시)을 지정할 수 있습니다.
- 또한 16진수 값 문자열로 일부 **회사 ID**를 입력할 수 있습니다(예: `0x01AB,0x058E,0x0D53`). 이는 내장 감지를 재정의하므로 새 값에 대해 알림이 표시됩니다.
- 더 나은 지속성을 위해 Android의 *Foreground Service*를 사용합니다. 필요하지 않다면 *Settings*에서 비활성화할 수 있습니다.
- *Settings*의 *Notification Cooldown*은 두 경고 사이에 얼마나 많은 시간이 경과해야 하는지를 지정합니다. 기본값은 10000 ms, 즉 10초입니다. 이는 카나리아에도 적용됩니다. 예를 들어 10초는 10초 동안 경계 상태를 유지한 후 다시 진정된다는 의미입니다.
- 이제 조금 더 현지화되었습니다: <img src="https://raw.githubusercontent.com/yjeanrenaud/yj_nearbyglasses/HEAD/img/canary_hide.svg" align="right" alt="Drawing of a canary that hides underneath a wing" height="100" width="100">
   - 영어
   - 독일어
   - 스위스 독일어
   - 프랑스어
   - 스페인어
   - 중국어
   - 이탈리아어
   - 포르투갈어(브라질)
   - 러시아어
   - 터키어
   - 추후 더 추가될 예정 ([여러분의 언어로 기여하여 이 프로젝트를 지원해주세요!](https://github.com/yjeanrenaud/yj_nearbyglasses/issues/3))
- 이제 앱 아이콘의 배경이 더 이상 투명하지 않습니다
- 이제 UUID도 스캔합니다
- *Nearby Glasses*는 이제 다크 모드(시스템 설정을 통해)를 지원합니다
- edge-to-edge 레이아웃 문제는 [v1.0.4](https://github.com/yjeanrenaud/yj_nearbyglasses/releases)부터 수정되었습니다.
- AGPL 3.0으로 새로 라이선스되었습니다
- CLA를 포기하기로 결정했습니다. 협업 프로젝트에 대해 저보다 더 잘 아는 사람들과 몇 가지 논의를 한 후, 이것이 불필요한 단계라는 통찰을 얻었습니다.
- AGPL 3.0을 더 엄격히 준수하기 위해 이제 약간 다른 아이콘을 사용합니다.
## iOS and Android
- 마침내 3주 만에 iOS 포트가 제공됩니다. 대부분의 iPhone과 iPad, 심지어 구형(iOS 16까지)에서도 작동할 것입니다. [소스 코드와 프로젝트 파일도 제공됩니다](https://github.com/yjeanrenaud/yj_nearbyglasses/blob/main/iOS). 코드는 못생기고 비정통적입니다. 많은 접근 방식이 빠르고 즉흥적입니다(예: Android 현지화의 json 파일을 재사용합니다). 하지만 지금까지는 작동합니다. *Nearby Glasses*는 [Apple App Store](https://apps.apple.com/us/app/nearby-glasses-original/id6761056896)에서 이용 가능합니다. (복제품들과 구별하기 위해 original이라고 부릅니다). .ipa는 [releases](https://github.com/yjeanrenaud/yj_nearbyglasses/releases)에서 사이드로딩용으로 제공됩니다.
  iOS 앱은 백그라운드에서 작동하지 않습니다. iOS 제한으로 인해 BTLE ADV를 영구적으로 스캔하기 위해 `ForegroundServices`와 유사한 것을 사용할 방법을 찾지 못했기 때문입니다. 따라서 iOS의 *Nearby Glasses*에서는 *Canary Mode*만 사용할 수 있습니다. 저보다 Swift와 iOS를 더 잘 아신다면(그럴 가능성이 높습니다), 기여해주세요!
- 이 저장소가 Android와 iOS 앱 코드를 모두 보유하고 있으므로 폴더를 재구성했습니다. 따라서 [/iOS](https://github.com/yjeanrenaud/yj_nearbyglasses/blob/main/iOS)와 [/Android](https://github.com/yjeanrenaud/yj_nearbyglasses/blob/main/Android)가 있습니다.

## Usage

- 다운로드할 APK는 [Releases](https://github.com/yjeanrenaud/yj_nearbyglasses/releases)를 참조하거나 Google Play Store를 사용하세요. F-Droid 및/또는 Accrescent가 뒤따를 수 있습니다.
<img width="135" height="300" align ="right" alt="Screenshot Nearby Glasses: Settings" src="https://assets.kitploit.com/production/public/readmes/12083/71a0271ff9172cad52e8d83ed9a29ba43b509c7b250be2a0254a5a4371ee3401.png" />

<a href="https://play.google.com/store/apps/details?id=ch.pocketpc.nearbyglasses" target="_blank"><img width="239" height="71" alt="Get It On Google Play" src="https://assets.kitploit.com/production/public/readmes/12083/a7dbeba4623dd255798dd1159e543cdbeeb9e43faa6db7f859b0f9ed3699932c.png" /></a> <a href="https://apps.apple.com/us/app/nearby-glasses-original/id6761056896"><img width="213" height="71" alt="Download on the App Store" src="https://assets.kitploit.com/production/public/readmes/12083/a6fa504b048d52b4e9f5108021dce33af0d96b8b78c34095072971f4a34471fa.png" /></a>
1. 앱을 설치하고([Releases](https://github.com/yjeanrenaud/yj_nearbyglasses/releases) 또는 현재로서는 [Google Play](https://play.google.com/store/apps/details?id=ch.pocketpc.nearbyglasses)에서) 또는 [Apple App Store](https://apps.apple.com/us/app/nearby-glasses-original/id6761056896)에서 설치한 후 엽니다
2. *Start Scanning* 버튼을 누릅니다
3. Bluetooth를 활성화하고(아직 활성화되지 않은 경우) 근처 기기에 접근할 수 있는 권한을 부여합니다. 일부 Android 버전에서는 위치 접근 권한도 부여해야 합니다(주로 버전 13 이전). *Nearby Glasses*는 위치 정보로 아무것도 하지 않습니다. 믿기지 않는다면 [코드](https://github.com/yjeanrenaud/yj_nearbyglasses/tree/main/app)를 확인하세요
4. 스캔이 시작되지 않으면 특정 휴대폰의 *Settings* 메뉴에서 *Foreground Service*를 활성화해야 할 수 있습니다(아래 참조)
5. 준비 완료! 근처에서 스마트 안경이 감지되면 알림이 나타납니다. *Stop Scanning*을 누르거나 앱을 완전히 종료할 때까지 계속됩니다
7. 메뉴(오른쪽 상단, 톱니바퀴)에서 몇 가지 *Settings*를 지정할 수 있습니다:
   1. *Enable Foreground Service*: 이를 통해 Android가 앱을 일시 중지하여 알림을 방해하는 것을 방지합니다. 활성화된 상태로 두는 것을 권장합니다
   2. *RSSI threshold*: 이 음수는 *Nearby Glasses*가 경고를 발생시킬 기기가 얼마나 멀리 있을 수 있는지를 지정합니다. 기술적으로는 신호가 얼마나 강하게 수신되는지를 나타냅니다. 0에 가까울수록 신호가 더 좋으므로 휴대폰과 스마트 안경 사이의 거리가 더 가깝습니다. [설명과 지침은 위의 RSSI를 참조하세요](#how). -75로 두는 것을 권장합니다
   3. *Enable Notifications*: 이것을 비활성화하고 싶지는 않을 것입니다 
   4. Canary Mode. 이것이 새로운 기본값입니다. 이를 사용하면 근처에 스마트 안경이 있다는 시스템 알림을 받지 않고, 대신 주변에 스마트 안경이 없음을 나타내는 카나리아를 보게 됩니다. iOS 앱은 기술적 제약으로 인해 카나리아 모드만 있습니다. <img src="https://raw.githubusercontent.com/yjeanrenaud/yj_nearbyglasses/HEAD/img/canary.svg" alt="Drawing of a canary" width="100" height="100" alignt="left"> 
   5. *Notification/Canary Cooldown*: 여기에서 근처에서 발견된 스마트 안경에 대해 얼마나 많은 알림을 받을지 또는 카나리아가 얼마나 오래 숨을지 지정합니다. 기본값으로 10초(10000 ms)를 선택했습니다. 이렇게 하면 알림을 놓치지 않으면서도 너무 많이 방해받거나 배터리를 너무 빨리 소모하지 않습니다
   6. *Enable Log Display*: 이를 비활성화하면 배터리를 절약할 수 있습니다. 카나리아 모드에서는 비활성화됩니다.
   7. *Debug*: 로그 표시 프레임에서 일치하는 BLE 프레임 이상을 보려면 필요합니다. 작동 여부를 확인하는 데 유용합니다. 카나리아 모드에서는 비활성화됩니다.
   8. *Max log lines*: 로그가 얼마나 길어질 수 있는지. 200은 배터리 수명과 로그의 유용성(저 같은 너드를 위한) 사이의 좋은 균형으로 보입니다. 카나리아 모드에서는 비활성화됩니다.
   9. *BLE ADV only*: 가독성을 위해 로그에서 다른 Bluetooth LE 프레임을 제외합니다. 카나리아 모드에서는 비활성화됩니다.
   10. *Override Company IDs*: 원한다면 *Nearby Glasses*가 위에 지정된 것 이외의 다른 기기에 대해 알리도록 할 수 있습니다. 적어도 저에게는 디버깅에 유용합니다. 필요하지 않거나 어떻게 사용할지 모르겠다면 비워 두세요
   11. 모든 설정은 저장되며 즉시 적용됩니다. 돌아가려면 뒤로 버튼이나 제스처를 사용하세요
8. 내보내기 기능을 사용하면 앱 로그의 텍스트 파일을 공유할 수 있습니다. 저 같은 너드를 위해
9. 로그 표시 프레임을 탭하여 로그를 복사&붙여넣기할 수도 있습니다

## ToDos
- **이제 실제 환경에서 작동합니다!** 검증된 스마트 안경을 주변에 두고 몇몇 사람들이 테스트하도록 했습니다. Lena에게 특별히 감사드립니다!
- 다운로드할 APK는 [Releases](https://github.com/yjeanrenaud/yj_nearbyglasses/releases)를 참조하세요. 
- [*Nearby Glasses*를 Google Play에도](https://play.google.com/store/apps/details?id=ch.pocketpc.nearbyglasses) 푸시했습니다. 하지만 Google Play를 피하는 사람들을 위해 항상 [GitHub의 releases](https://github.com/yjeanrenaud/yj_nearbyglasses/releases)와 [다른 곳](https://yves.app/nearbyglasses/latest.apk)에도 게시할 것입니다.

---

- 오탐을 무시 목록에 추가하는 옵션을 추가합니다. 아마도 알림에서?
- 저는 BT나 Android 전문가가 전혀 아닙니다. 제가 배운 바로는 BLE 트래픽을 스니핑하여 스마트 안경의 통신을 더 깊이 파고들 수도 있습니다. 그렇게 하면 기기가 BT 사양에 따라 작동하는지에 의존할 필요 없이 암호화된 트래픽 전송에 대한 휴리스틱을 사용할 수 있으며 오탐도 많지 않을 것입니다. 하지만 저는 10년 넘게 BT 트래픽 패킷을 들여다보지 않았습니다. ADV 프레임을 기억해낸 것이 다행입니다... 이 부분에 도움을 주실 수 있다면 대단히 감사하겠습니다!
---
- 스마트 안경의 **더 많은 제조사 ID**를 추가합니다. 현재는 Meta, Oakley, Snap입니다. 카메라가 있는 스마트 안경 목록도 도움이 될 것입니다. 이를 위한 [ISSUE를 열었으니](https://github.com/yjeanrenaud/yj_nearbyglasses/issues/56), 다른 녹화 스마트 안경을 마주쳤을 때 로그(제 생각에는 완전히 안전합니다)를 보내 **도움**을 줄 수 있습니다
- 2026년 3월 24일 기준으로 iOS 버전도 제공됩니다.
- **Google Pixel 기기**의 **레이아웃 문제**는 버전 1.0.3부터 수정된 것으로 보입니다. 상태 표시줄과 어떻게든 섞여서 여전히 메뉴에 접근할 수 없다면. 가능한 한 빨리 살펴보겠습니다. 그동안 화면을 가로 모드로 전환하고 *시계 방향(오른쪽)으로* 회전해 보세요. 

## Tech-Solutionism?
이런 이야기를 하기에 이상한 장소라는 것을 압니다. 하지만 잠시 들어주세요. 이것이 기술에 의해 증폭된 사회적 문제에 대한 기술적 해결책이라는 것을 인식하고 있습니다.
저는 기술만능주의를 조장하고 싶지도 않고 사람들이 거짓된 안전감을 느끼게 하고 싶지도 않습니다. 이것은 여전히 불완전한 접근 방식이며 아마도 항상 그럴 것입니다. 이 앱이 존재한다고 해서 모든 것이 좋아지는 것은 아닙니다. 감시 기술과 프라이버시 침해를 억제하기 위한 더 나은 해결책이 필요합니다.

## Build from Source
*Nearby Glasses*는 오픈 소스이므로 소스 코드에서 앱을 직접 빌드할 수도 있습니다. 이렇게 하면 APK에 다른 라이브러리가 포함되지 않고 원하는 것을 얻을 수 있습니다.

이 앱이 기반으로 하는 것을 참고하세요:
- Gradle Wrapper: 9.3.1
- Android Gradle Plugin: 8.13.2
- Kotlin: 1.9.22
- compileSdk: 36
- targetSdk: 36
- minSdk: 26
- 제품 플레이버 없음
- 저장소: google() 및 mavenCentral()만
- Google Services 또는 Firebase 플러그인 없음

### Requirements

- **JDK 17** (필수 — 프로젝트는 Java 17을 대상으로 함)
- **Android SDK Platform 35** 설치됨  
  - compileSdk = 35  
  - targetSdk = 35  
- Git
### Building APK step-by-step```bash
#Verify Java version:

 $java -version
#It must report Java 17.

#Get the source code
 $git clone https://github.com/yjeanrenaud/yj_nearbyglasses
 $cd yj_nearbyglasses

#Build Debug
 $./gradlew clean assembleDebug

#Build Release (with your own signature cert)
 $./gradlew clean assembleRelease

#Build unsigned Release for IzzyOnDroid / F-Droid
 $./gradlew clean izziFdroid 

#Run and Test
 $./gradlew test lint

감사의 글

  • @[email protected] 경고 관련 도움을 주셔서 감사합니다
  • @[email protected] 카나리 모드 아이디어를 제안해 주셔서 감사합니다
  • @pojntfx 라이선스에 대한 제 오해를 지적해 주셔서 감사합니다
  • Sarah-Jane B. UX 디자인 팁을 주셔서 감사합니다
  • Lena Radau 스페인어 번역을 해 주셔서 감사합니다
  • Marcel L. 피드백과 iOS 앱 테스트를 해 주셔서 감사합니다
  • Lena Hansen 현장 테스트를 해 주셔서 감사합니다
  • 그 외 앱에 이미 피드백을 제공해 주신 모든 분들께 감사드립니다!

라이선스 및 크레딧

앱 아이콘: 아이콘은 Glasses SVG Vector by sensa, licensed under CC0 1.0 Universal을 기반으로 합니다.


라이선스: 이 앱 Nearby Glasses는 AGPL-3.0 license에 따라 라이선스가 부여됩니다.
카나리: 카나리 그림은 제가 직접 제작했으며 CC BY-SA 4.0에 따라 라이선스가 부여됩니다. 원본 svg 파일(InkScape로 제작)로 제공했으며, 앱 리소스를 위해 당연히 xml로 변환했습니다

카테고리