| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 1 | ||||||
| 2 | 3 | 4 | 5 | 6 | 7 | 8 |
| 9 | 10 | 11 | 12 | 13 | 14 | 15 |
| 16 | 17 | 18 | 19 | 20 | 21 | 22 |
| 23 | 24 | 25 | 26 | 27 | 28 | 29 |
| 30 | 31 |
- maplayer
- maptype
- classes.jar
- MVVM
- ROOM
- SDK
- android12 빌드
- 네이버맵
- room 마이그리에션
- hilt
- navermap
- framework 빌드
- Android
- AOSP
- Migration
- compose
- naver-map-compose
- CameraX
- Camera
- Today
- Total
목록전체 글 (6)
웜뱃 블로그
Compose 기반 UI 개발이 주류로 자리 잡으면서, 기존의 View 클래스 기반으로 설계된 API는 AndroidView를 사용해 Compose 환경에서 활용할 수 있었습니다. 하지만 이 접근법은 제약이 많아 완전한 Compose 개발의 장점을 누리기 어렵다는 한계가 있었습니다. Compose에 대한 지원이 확대되면서 네이버 지도 SDK에서도 naver-map-compose를 제공하여 Compose 환경에 적합한 지도 구현이 가능해졌습니다. 이번 포스팅에서는 naver-map-compose를 활용하여 Android Compose 프로젝트에서 지도를 표시하고, 맵 타입과 레이어를 동적으로 변경하는 방법을 다뤄보겠습니다. 환경 설정안드로이드 스튜디오에서 프로젝트를 생성할 때, Compose 기반의 Em..
CameraX는 Jetpack 라이브러리 중 하나로, 카메라 앱을 더욱 쉽게 개발할 수 있도록 설계되었습니다. 새로운 앱에 카메라 기능을 추가할 계획이시라면 CameraX를 활용하는 것이 좋습니다. CameraX는 대부분의 Android 기기에서 잘 작동하며, Android 5.0(API 레벨 21)까지도 호환되어 호환성 문제를 줄여줍니다. 또한, 일관성 있고 사용이 쉬운 API를 제공해 개발 효율성을 높입니다.이번 포스팅에서는 CameraX 아키텍처와 Compose로 구현된 앱에서 어떤 식으로 활용할 수 있는지 알아보겠습니다. Camera 아키텍처 CameraX를 사용하면 추상화 UseCase를 통해 장치의 카메라와 연결할 수 있습니다. 대표적으로 아래 4가지 Usecase를 활용할 수 있습니다.Pr..
앱을 개발하다 보면 백그라운드 상태에서 포어그라운드 서비스를 실행하는 상황이 생길 수 있습니다. Android OS가 점점 업그레이드되면서 사용자가 의도치 않은 상황에서 서비스가 실행되거나 또는 배터리가 소모되는 문제들을 예방하고자 특수한 예외 케이스를 제외하고는 Android 12 이상을 타겟팅하는 앱은 백그라운드 상태에서 포어그라운드 서비스를 실행이 제한됩니다. 앱이 백그라운드 상태에서 포어그라운드 서비스를 실행 할 수 있는 예외 케이스:더보기Activity와 같은 사용자에게 표시되는 상태에서 전환 Firebase Cloud를 사용하여 높은 우선순위의 메시지를 수신하는 경우 기기가 재부팅되고 broadcast receiver에서 ACTION_BOOT_COMPLETED나 ACTION_LOCKED_BOO..
오늘은 Room database Migration 방법에 대해 알아보겠습니다.Room에서 Migration은 테이블의 구조가 변경되었을 때 기존 저장된 데이터를 유지하면서변경된 테이블 구조를 적용할 수 있는 방법입니다. 아래와 같은 User Entity에서 email colmn을 추가한다고 예를 들어보겠습니다.@Entity(tableName = "user")data class UserInfoEntity( @PrimaryKey val id: Long = 0, val name: String, val password: String, val email: String //추가) room은 이미 생성된 Entity의 구조가 변경되면 Database의 버전을 높여 주어야 합니다.Entity의 정..
Android 11 업데이트는 사용자 개인정보 보호, 보안, 접근성 등 다양한 영역에서 중요한 변화를 가져왔습니다. 이번 글에서는 targetSdkVersion 30을 타기팅하는 앱들에 대한 영향과 targetSdkVersion과 관계없이 안드로이드 11 OS 기기에서 실행되는 앱들에 대한 영향을 나누어서 글을 써보려 합니다. targetSdkVersion을 30으로 설정하는 앱의 동작 변경 사항1. 개인정보 보호범위 지정 저장소(Scope Storage) 적용앱은 외부 저장소에 접근할 때 앱별 디렉터리와 앱에서 생성한 특정 미디어 파일로 접근이 제한됩니다.만약 targetSdkVersion이 30 미만이라면 requestLegacyExternalStorage 플래그를 사용해 일시적으로 이 변경 사항을 ..
AOSP란?AOSP(Android Open Source Project)는 구글이 주도하는 오픈소스 프로젝트로, 순정 안드로이드 버전을 의미하기도 합니다. AOSP는 Ubuntu 환경에서 빌드할 수 있도록 공식 지원하고 있으며, 자세한 내용은 AOSP 공식 문서를 참고하시면 됩니다. AOSP 빌드를 위한 환경 운영체제(OS): Ubuntu 18.04 이하저장장치(HDD): 300GB 이상메모리(RAM): 16GB 이상 (최소 12GB)일반적으로 AOSP를 빌드할 일이 많지는 않지만, SDK의 API를 커스터마이징 하거나 숨겨진 API(hidden API)를 사용해야 할 때는 빌드가 필요할 수 있습니다. Mac이나 Windows 사용자라면 가상 머신을 활용할 수 있지만, 제약사항이 있기 때문에 Ubuntu..