삼성 스마트글라스 개발 준비: Android XR와 Kotlin으로 만드는 첫 안경 앱

삼성 스마트글라스 개발 준비: Android XR와 Kotlin으로 만드는 첫 안경 앱

삼성 스마트글라스가 나오면 직접 앱을 만들어볼 수 있을까요? 준비의 중심은 Android Studio와 Kotlin입니다. 구글이 공개한 Android XR 개발 도구를 이용하면, 휴대폰 앱의 기능을 안경의 소리와 화면으로 확장하는 경험을 설계할 수 있어요.

이 글은 2026년 10월 26일 확인한 공식 개발 문서를 바탕으로 쓴 개발 준비 가이드입니다. 특정 삼성 모델의 출시일·가격·디스플레이 사양을 예측하는 글은 아니에요. 제품별 지원 범위와 개발자 프리뷰 API는 실제 개발 시점에 다시 확인해야 합니다. 본문의 삽화는 이해를 돕기 위한 AI 개념 이미지이며 실제 제품 사진이나 공식 설계도가 아닙니다.

청록빛 렌즈를 가진 검은 안경을 표현한 개발 준비 개념 이미지, 실제 삼성 제품 사진 아님

삼성 스마트글라스를 기다리는 개발자의 첫 질문

안경용 앱이라고 하면 눈앞에 떠 있는 거대한 3D 화면부터 생각하기 쉬워요. 하지만 처음 준비할 일은 원하는 기능이 소리만으로 충분한지, 짧은 화면 표시도 필요한지 정하는 것입니다. 같은 안경 모양이어도 사용자 경험과 필요한 도구가 달라지기 때문이에요.

예를 들어 요청한 글자를 읽어주는 앱은 음성 출력이 핵심이고, 번역한 문장을 눈앞에 표시하려면 디스플레이가 필요해요. 만들고 싶은 순간을 먼저 정하면 준비해야 할 기술도 구체적으로 좁혀집니다.

개발의 기준점은 Android XR

삼성은 스마트글라스에 Android XR 플랫폼을 사용한다고 발표했어요. 개발 준비의 기준도 구글의 Android XR 공식 문서에 두는 것이 자연스럽습니다. 일상용 안경을 대상으로 한 도구와 가이드가 이미 공개되어 있어요. 삼성 공식 발표

다만 플랫폼에 어떤 API가 있다는 사실과 특정 제품이 그 기능을 제공한다는 사실은 구분해야 해요. 삼성 모델의 최종 기능과 지원 휴대폰은 제품 안내와 호환성 문서에서 별도로 확인할 항목입니다.

이 글에서 말하는 구글 안경 개발은 Android XR의 오디오·디스플레이 안경 경로를 뜻해요. 과거 Google Glass 제품용 자료를 그대로 적용한다는 의미는 아닙니다.

서로 맞물린 검은 정육면체와 청록빛 이음새로 표현한 Android XR 개발 도구의 구성

헤드셋과 일상용 안경은 개발 경로가 다르다

구글은 XR 헤드셋·유선 XR 안경의 몰입형 경험과, 오디오·디스플레이 안경의 가벼운 일상 경험을 나눠 안내해요. 가상 공간에 큰 패널을 배치하는 앱과 이동 중에 한 문장을 듣는 앱은 설계 목적부터 달라요. Android XR 기기별 개발 안내

일상용 스마트글라스를 목표로 한다면 오디오 안경과 디스플레이 안경 문서에서 출발하면 됩니다. 헤드셋에서 기존 Android 앱이 패널로 실행된다는 설명을 모든 스마트글라스에 그대로 적용하면 개발 범위를 잘못 잡을 수 있어요.

윈도우에서 시작하는 Android Studio

윈도우 PC에서도 Android Studio로 안경용 개발을 준비할 수 있어요. 현재 구글 문서는 XR 도구를 이용할 때 최신 Canary 빌드를 권장하고, 기존 Android Studio와 나란히 설치할 수 있다고 안내합니다. 실험용 개발 환경을 별도로 두기 좋은 방식이에요. 설치·설정 안내

SDK 도구와 에뮬레이터도 문서에 맞춰 준비해야 해요. 특정 버전 번호를 오래된 글에서 복사하기보다, 설치 시점의 호환성 안내를 기준으로 맞추는 편이 좋습니다. 안경과 휴대폰 가상 기기를 함께 쓰므로 저장 공간도 고려할 부분이에요.

밝은 청록빛 아랫면을 가진 검은 직육면체로 표현한 개발 환경과 앱 실행

Kotlin으로 먼저 익힐 Android 기본기

첫 언어로는 Kotlin이 잘 맞아요. 구글의 안경용 개발 안내는 Android Activity, 생명주기, 상태 변경, Compose 함수에 대한 이해를 전제로 설명합니다. 새로운 장치이지만 Android 앱을 구성하는 기본 개념이 그대로 연결되는 셈이에요. 안경용 앱 시작 안내

처음에는 버튼으로 작업을 시작하고, 처리 중 상태를 보여주고, 결과를 받은 뒤 자원을 정리하는 작은 휴대폰 앱이 좋은 연습이 됩니다. 이 흐름을 익히면 나중에 입력과 출력 장치를 안경으로 바꾸는 작업을 이해하기 쉬워져요.

Jetpack XR SDK를 구성하는 도구들

Jetpack XR SDK는 여러 라이브러리의 묶음이에요. 일상용 안경에서는 휴대폰과 안경 경험을 연결하는 Jetpack Projected, 디스플레이 안경의 화면을 만드는 Jetpack Compose Glimmer가 특히 관련이 큽니다. 공간 인식이 필요한 기능은 ARCore for Jetpack XR의 기기별 지원 범위를 함께 살펴보게 돼요. SDK 구성 안내

처음부터 모든 라이브러리를 넣을 필요는 없어요. 음성 안내 앱과 공간에 물체를 배치하는 앱은 필요한 구성요소가 다릅니다. 이 글에서 제안하는 첫 시제품도 카메라 입력과 읽어주기라는 좁은 흐름에서 시작합니다.

검은 안경 다리의 청록빛 접점으로 표현한 휴대폰 앱과 안경의 연동

휴대폰 앱에서 실행되는 안경용 Activity

구글 문서의 핵심은 안경용 projected Activity가 휴대폰 앱 안에서 실행되고 안경으로 제공된다는 점이에요. 안경에 독립 APK 전체를 실행하는 헤드셋 경로와 구별됩니다. 휴대폰 화면과 안경 경험이 같은 앱의 처리 로직을 공유할 수 있어요. 첫 Activity 만들기

설정과 긴 기록은 휴대폰에 두고, 안경에는 현재 필요한 안내만 전달하는 구조가 가능합니다. 사용자가 안경을 벗은 뒤에도 휴대폰에서 결과를 확인할 수 있도록 설계하면 두 기기의 역할이 자연스럽게 이어져요.

Jetpack Projected가 연결하는 두 기기

Jetpack Projected는 휴대폰 앱의 경험을 오디오·디스플레이 안경으로 확장하기 위한 API를 제공합니다. 개발자는 안경 연결 상태를 살피고 적절한 실행 문맥에서 기능을 시작하는 흐름을 다루게 돼요. 단순히 휴대폰 화면을 복제하는 것보다 앱의 입출력을 안경에 맞게 구성한다고 이해하면 좋습니다. 연결 확인과 실행 방법

설계상으로는 작업의 처리 로직과 기기 입출력을 분리하는 편이 좋아요. 같은 글자 인식 결과를 휴대폰에는 전체 문장으로, 안경에는 짧은 소리 안내로 제공할 수 있기 때문입니다. 이는 이 글이 제안하는 앱 구조예요.

금속 구체를 둘러싼 세 겹의 청록빛 고리로 표현한 음성 중심의 안경 경험

화면 없는 안경의 음성 중심 경험

오디오 안경에서는 사용자가 화면 없이도 현재 상태를 이해해야 해요. 작업 시작, 처리 중, 결과, 취소를 짧은 소리 안내로 구분하는 구성이 필요합니다. 구글도 오디오 안경과 디스플레이 안경을 함께 지원할 때 기기 기능에 따라 동작을 조정하도록 안내해요. 기기 유형별 지원 설계

예를 들어 글자 읽기 앱은 시작할 때 한 번 응답하고 결과를 읽은 뒤 멈추는 흐름으로 만들 수 있어요. 사용자가 요청하지 않은 긴 설명을 계속 들려주면 주변 소리를 듣는 데 방해가 될 수 있으므로, 정보량과 중단 방법도 함께 설계할 부분입니다.

화면 있는 안경의 Compose Glimmer

렌즈에 정보를 표시할 수 있는 기기에서는 Jetpack Compose Glimmer를 사용합니다. 구글은 이를 디스플레이 안경에 맞춘 Compose UI 도구로 설명하며 카드·텍스트·목록 등의 구성요소와 안경 입력에 맞는 동작을 제공해요. Glimmer 공식 안내

짧은 번역 문장, 현재 단계, 핵심 결과처럼 한눈에 파악할 정보를 우선하는 설계를 제안해요. 휴대폰의 복잡한 화면을 축소하기보다 사용자가 지금 보고 있는 현실 위에 꼭 필요한 정보만 더하는 접근이 어울립니다.

투명한 곡면 렌즈 뒤의 작은 발광 사각형으로 표현한 디스플레이 안경의 최소 정보 표시

기능 지원 여부를 실행 중에 확인하는 이유

같은 앱이 여러 안경에서 실행된다면 화면 유무를 제품 이름만으로 가정하기 어려워요. 공식 문서는 실행 중 시각 UI 지원 여부를 확인하고, 디스플레이가 켜지거나 꺼지는 변화에도 반응하는 방법을 안내합니다. 기능 확인 안내

이 원칙을 따르면 화면을 끈 상태에서도 필요한 음성 안내를 이어갈 수 있어요. 표시 기능이 없으면 음성으로 전환하고, 카메라 기능을 이용할 수 없으면 휴대폰 입력으로 돌아가는 식의 대체 흐름을 설계할 수 있습니다. 실제 대체 기능은 앱이 별도로 구현해야 해요.

카메라와 마이크는 권한부터 설계한다

안경에 카메라와 마이크가 있어도 앱이 자동으로 사용할 수 있는 것은 아니에요. 구글은 하드웨어 접근을 위한 권한 요청과 projected context 사용을 별도 단계로 안내합니다. 기기의 존재, API 지원, 사용자 권한은 각각 확인해야 해요. 안경 하드웨어 접근 안내

첫 시제품에서는 사용자가 요청했을 때 한 번 촬영하고 결과를 전달하는 구조를 제안합니다. 촬영 목적과 전송 여부를 설명하고, 권한이 거부되면 실패 이유와 가능한 대안을 짧게 알리면 좋아요. 이미지나 음성을 어디에 얼마나 남길지도 이 단계에서 정할 부분입니다.

검은 삼각 쐐기에 들어간 작은 카메라 렌즈로 표현한 안경 센서와 하드웨어 권한

음성 인식과 읽어주기를 하나의 흐름으로

Android의 SpeechRecognizer와 TextToSpeech를 활용한 안경용 안내가 공개되어 있어요. 말한 내용을 명령으로 바꾸고, 작업 결과를 음성으로 전달하는 기본 흐름을 익히기에 좋은 출발점입니다. 오프라인 동작 범위는 실제 기기의 인식 서비스·언어 모델·음성 데이터 준비 상태를 확인해야 해요. 음성 입력 · 음성 출력

설계 예시로는 명령을 듣는 동안 읽어주기를 멈추고, 결과를 말하는 동안 중복 요청을 막는 방식이 있어요. 듣기와 말하기의 전환이 명확해야 사용자가 앱이 어느 단계에 있는지 소리만으로 이해하기 쉽습니다.

기본 Gemini와 내 앱의 AI 기능을 구분한다

제품에 Gemini가 탑재된다는 발표와 내 앱이 AI 모델을 호출하는 구현은 구별할 필요가 있어요. 기본 도우미의 기능을 모두 앱에서 자유롭게 쓸 수 있다고 가정하면 안 됩니다. 구글은 안경용 앱에 Gemini Live API를 통합하는 개발 안내도 별도로 제공해요. Gemini Live API 통합 안내

앱에서 AI를 쓴다면 어떤 입력을 보내고 어떤 결과를 받을지부터 정하면 됩니다. 글자 인식만 필요한 기능에 항상 대화형 모델이 필요한 것은 아니에요. 이 글에서는 모델 선택보다 사용자가 원하는 작업과 실패 시 동작을 먼저 정하는 방향을 제안합니다.

떨어진 두 검은 구조물을 연결하는 청록빛 빔으로 표현한 기기와 AI 처리의 연결

서버와 로컬 처리는 응답 시간을 기준으로 나눈다

구현 제안으로는 단순한 상태 관리와 가능한 처리는 휴대폰에 두고, 더 큰 모델이 필요한 분석만 서버로 보내는 구성이 있어요. 다만 어느 처리가 로컬에서 가능한지는 선택한 모델과 휴대폰 성능에 따라 달라집니다. 안경이 직접 모든 AI 연산을 수행한다고 전제할 필요는 없어요.

촬영부터 답변까지 걸리는 시간, 전송량, 배터리, 통신이 끊겼을 때의 동작을 함께 측정하면 판단 기준이 생깁니다. 첫 시제품에서는 복잡한 자동 분배보다 처리 위치를 단순하게 정하고 실제 지연 시간을 기록하는 편이 원인을 파악하기 쉬워요.

스마트폰과 안경 에뮬레이터를 연결한다

실제 안경이 없어도 에뮬레이터로 개발을 시작할 수 있어요. 공식 절차는 안경용 가상 기기와 호스트 역할의 휴대폰 가상 기기를 각각 만들고 연결하는 방식입니다. 윈도우·리눅스용 휴대폰 시스템 이미지 선택도 안내되어 있어요. 가상 기기 설정

가상 기기 하나만 실행하는 일반 휴대폰 앱 개발과 달리 두 기기의 연결 상태도 함께 다룹니다. 오디오 안경과 디스플레이 안경을 각각 대상으로 삼아 같은 기능이 어떻게 달라져야 하는지 확인하기 좋은 환경이에요.

각도가 다른 두 투명 사각 틀로 표현한 휴대폰과 안경 가상 기기의 연결 테스트

가상 기기로 확인할 것과 실물이 필요한 것

가상 기기에서는 Activity 실행, UI 분기, 상태 전환처럼 개발 중 반복 확인할 흐름을 우선 점검하면 좋아요. 안경용 UI를 그렸다는 사실만으로 실제 야외 환경의 가독성이나 착용 중 조작성이 검증되는 것은 아닙니다. 에뮬레이터의 목적과 실물 검증의 목적을 나눠두면 일정도 현실적으로 잡혀요.

실물에서는 촬영 각도와 흔들림, 주변 소음에서의 명령 인식, 소리의 명료도, 연결 안정성, 응답 지연을 따로 측정할 계획을 제안합니다. 제품이 출시되면 이미 만든 작은 기능을 기준으로 비교할 수 있어요.

Flutter 경험을 가져오는 현실적인 방법

Flutter에 익숙하다면 휴대폰의 설정·기록 화면을 유지하고 안경 연동 부분을 Kotlin으로 구현하는 구조를 검토할 수 있어요. 이는 공식 Flutter 안경 지원을 확인했다는 뜻이 아니라, 휴대폰 앱과 네이티브 Android 기능을 연결하는 설계 제안입니다. 안경 표시까지 Flutter 화면이 그대로 지원된다고 가정하지 않는 편이 좋아요.

새 프로젝트의 첫 실험은 Kotlin으로 작게 만드는 방향을 권합니다. 공식 Android XR 예제와 직접 비교하며 문제를 찾기 쉬워서예요. 핵심 연동이 확인된 뒤 Flutter와 연결하면 장치 문제와 프레임워크 연결 문제를 구별하기도 수월합니다.

작은 사면체와 큰 청록빛 고리로 표현한 앱 구성요소와 다양한 개발 도구의 선택

Unity와 OpenXR이 필요한 프로젝트

가상 공간의 3D 콘텐츠나 몰입형 경험이 목표라면 Unity와 OpenXR도 검토할 도구입니다. 구글의 Android XR 안내는 이런 경로를 제공하면서, 일상용 안경에 휴대폰 앱을 확장하는 경로에는 Jetpack XR SDK를 제시해요. 기기 유형과 목표 경험을 함께 보고 선택할 부분이에요. 개발 도구 선택 안내

소리 안내와 짧은 텍스트가 중심인 첫 앱이라면 3D 엔진을 먼저 배울 필요는 크지 않아요. 특히 Android XR 에뮬레이터의 안경용 안내는 Unity·OpenXR 앱을 지원하는 테스트 환경으로 설명하지 않으므로, 지원 범위를 혼동하지 않는 것이 좋습니다.

첫 시제품은 요청할 때 글자 읽어주기

이 글이 제안하는 첫 시제품은 사용자가 요청한 순간의 글자를 읽어주는 앱이에요. 요청, 이미지 획득, 글자 인식, 읽어주기, 종료라는 한 번의 흐름으로 범위를 정할 수 있습니다. 실제 삼성 제품에서 이 흐름을 구현할 수 있는지는 하드웨어 API와 권한 지원을 확인해야 해요.

안경이 없을 때는 휴대폰 사진으로 인식과 읽어주기를 검증하고, 가상 안경에서는 실행과 출력 흐름을 확인하는 식으로 나눌 수 있어요. 여기서의 완료 기준은 한 장을 입력했을 때 결과 또는 명확한 실패 안내가 나오고, 취소하면 작업이 멈추는 것입니다. 시제품 아이디어이며 이미 구현·실측한 결과는 아닙니다.

작은 검은 사각형과 투명 프리즘을 지나는 청록빛 빛줄기로 표현한 정보 인식과 전달

접근성은 소리와 화면의 대안을 함께 만든다

접근성 설계 제안은 화면 정보의 양을 줄이고 필요한 내용을 소리로도 제공하는 데서 시작합니다. 표시가 있는 안경도 항상 화면을 켜고 쓰는 것은 아니므로, 화면 상태에 따라 안내량을 조절할 수 있어야 해요. 공식 문서도 디스플레이 변화에 따른 동작 조정을 설명합니다. 디스플레이 상태 확인

휴대폰 동반 화면에서는 고대비 텍스트, 충분한 여백, 상태를 설명하는 문장을 기본으로 두면 좋아요. 안경의 투명 표시에서는 배경 환경과 광학 특성도 영향을 주므로, 휴대폰의 픽셀 크기나 다크 테마 규칙만으로 가독성을 보장할 수 없습니다. 실제 착용 조건에서 별도 검증할 부분이에요.

연결 해제와 실패 상황도 사용자 경험이다

안경을 벗거나 휴대폰과의 연결이 끊기고, 카메라 권한이 거부되는 순간에도 앱은 이해할 수 있는 상태를 남겨야 해요. 공식 문서에는 연결 상태 관찰과 안경 착용·벗기 상황을 포함한 Activity 생명주기 설명이 있습니다. 생명주기 안내

설계 예시로는 연결이 끊기면 촬영 요청을 중단하고 이미 얻은 결과만 휴대폰에서 확인하게 하는 방식이 있어요. 글자를 인식하지 못했을 때도 성공한 것처럼 내용을 만들어 읽기보다, 인식 실패를 짧게 알리는 편이 신뢰를 지키는 데 도움이 됩니다.

검은 안경을 받치는 세 단계의 받침으로 표현한 시제품 개발과 실물 검증

출시 전 준비와 출시 후 검증의 순서

출시 전에는 Android Studio 환경, Kotlin 기본기, 휴대폰의 핵심 기능, 안경 에뮬레이터 연결 순서로 준비할 수 있어요. 프로젝트에서 확인한 도구와 의존성 버전을 기록해두면 나중에 API가 바뀌었을 때 비교하기 쉽습니다. 현재 Jetpack XR SDK에는 개발자 프리뷰 API가 포함되어 있어요. SDK 개발 상태

출시 후에는 모델의 화면 유무, 지원 휴대폰, 사용 가능한 센서·입력·출력, 배포 안내를 확인한 뒤 실물 테스트를 진행하면 됩니다. 플랫폼 전체의 가능성을 제품별 기능 보장으로 바꾸지 않는 것이 준비 과정에서 놓치기 쉬운 지점이에요.

핵심 정리: Kotlin으로 작게 시작하고 실제 안경으로 다듬는다

삼성 스마트글라스 개발을 준비하는 현실적인 출발점은 Android Studio, Kotlin, Jetpack XR SDK입니다. 휴대폰과 안경을 연결하는 Projected를 익히고, 화면이 있는 기기에는 Compose Glimmer를 더하는 흐름으로 이해하면 좋아요. 안경 구입 전에도 가상 기기와 휴대폰 핵심 기능부터 준비할 수 있습니다.

첫 목표는 요청한 글자 한 번 읽어주기처럼 끝이 분명한 경험이면 충분해요. 실제 제품의 권한과 성능을 확인한 뒤 기능을 넓히는 방향을 제안합니다. 더 자세한 구현 범위와 변경 사항은 아래 공식 문서에서 이어서 확인할 수 있어요.

이 글은 Codex와 SVIL Ghost MCP를 활용해 작성·검증했습니다.

출처


협업문의 : kuroicode@gmail.com
블로그 : https://blog.svil.dev/
홈페이지 : https://svil.dev/