CameraX를 사용하여 개발자 생산성을 높이는 Microsoft 렌즈

Microsoft Lens는 문서와 화이트보드의 이미지를 더 쉽게 읽을 수 있게 해주는 제품입니다. Microsoft 렌즈팀은 카메라 및 카메라 기능 지원이 포함된 Android 프레임워크 API인 Camera1 API가 최신 Android 기기에서 일관되지 않은 성능을 보이는 것을 우려했습니다. 새로운 것을 빌드하는 범위를 살펴봤으며, 가장 빠른 개발 경로는 CameraX를 사용하여 카메라폰의 최신 기능을 이용하는 것이라고 판단했습니다.

진행한 작업

Microsoft는 Microsoft Lens를 사용하는 생산성 앱 제품군에 CameraX를 사용하기로 결정했습니다. CameraX는 개발자가 Android 앱에서 카메라 기능을 더 간단하게 빌드할 수 있는 오픈소스 Android Jetpack 지원 라이브러리입니다. CameraX는 모든 Microsoft 렌즈 도구와 통합되어 일부 앱에서 고화질 이미지를 사용할 수 있습니다. 또한 CameraX는 더 간단한 API를 제공하여 개발자 환경을 개선하며 Android 기기의 94%에서 작동합니다. Microsoft Lens에서는 CameraX로 전환한 덕분에 성능 문제를 해결하고 개발자의 생산성을 높이고 출시 기간을 단축할 수 있었습니다.

결과

Microsoft Lens팀은 CameraX 라이브러리를 구현하면 테스트 및 최적화 주기가 줄어 개발자 시간이 크게 줄어든다는 사실을 발견했습니다. CameraX는 엔지니어링팀의 통합에 약 4개월이 걸렸다고 추정합니다. Camera2에서는 약 6개월이 걸렸을 것입니다.

“Camera1 API에 비해 CameraX를 사용하면 해상도, 가로세로 비율, 이미지 회전, 캡처 품질 등의 속성을 더 쉽게 구성할 수 있어 통합에 드는 노력과 시간이 도움이 되었습니다. 사용자가 애플리케이션 간에 전환하는 동안 CameraX 내부적으로 카메라 열기/닫기 상태를 처리하면서 통합해야 하는 코드 줄이 줄었고 개발자의 생산성이 앱 재설정 대신 비즈니스 로직에 집중할 수 있었습니다."라고 Microsoft의 수석 소프트웨어 엔지니어인 비샬 바트나가르는 말했습니다.

Microsoft는 CameraX를 사용하여 Camera1보다 출시 및 캡처 성능을 개선할 수 있었습니다. 최신 Android 기기에서의 성능은 출시 및 캡처 과정에서 2배 증가했으며, 일부 기기에서는 성능이 3배 향상되기도 했습니다 (기기에 따라 다를 수 있음). 또한 핵심 스캔 기능을 사용 설정하는 것이 Camera2의 추정치에 비해 더 쉬웠습니다. 기기 단편화 측면에서 CameraX는 많은 OEM 기기에서 구현할 때 여러 기기의 Camera2 변형을 효과적으로 숨깁니다.

Microsoft팀은 현재 Office, Teams, OneDrive, Word, Excel, PowerPoint, Microsoft Lens, My Hub와 같은 다른 일부 Android 앱에 CameraX를 통합하고 있습니다. 이러한 앱은 모두 문서 스캔 및 이미지에서 항목 추출 (예: 이미지-테이블, 이미지-텍스트)과 같은 시나리오에서 이미지 캡처 기능에 CameraX를 사용합니다. 또한 Microsoft팀은 곧 Outlook에 CameraX를 구현할 계획이며 Kaizala와 같은 다른 앱에서도 사용할 수 있는지 살펴보고 있습니다.

시작하기

앱에서 CameraX를 구현하는 방법에 관한 자세한 내용은 문서를 참조하세요.