Domain/Android 11

[Android] 액티비티의 생명주기 (Activity Lifecycle) Activity 클래스는 활동이 상태 변화(시스템이 활동을 생성, 중단 또는 다시 시작하거나, 활동이 있는 프로세스를 종료하는 등)를 알아차릴 수 있는 여러 콜백을 제공합니다. 개발자는 이러한 생명 주기 콜백 메서드를 통해 Activity의 작동을 제어 할 수 있습니다. 예를 들어 스트리밍 동영상 플레이어를 빌드하는 경우, 사용자가 다른 앱으로 전환할 때 동영상을 일시중지하고 네트워크 연결을 종료하는 행동을 제어할 수 있습니다. 각 콜백은 Activity 상태 변화에 적합한 특정 작업을 실행할 수 있도록 합니다. 적시에 알맞은 작업을 하고 적절하게 전환을 처리하면 앱이 더욱 안정적으로 기능할 수 있습니다. 예를 들어 수명 주기 콜백을 잘 구현하면 앱에서 다음과 같은 문제가 발생하지 않도록 예방하는 데 도.. Domain/Android 2021. 9. 28.
[Android] Hash Key (카카오 Api / 네이버 Api / 구글 Api) 2021-08-13 수정 Android에서 카카오, 네이버, 구글 Api를 연동할때, HashKey를 입력해 달라는 경우를 많이 볼 수 있습니다. 이런 경우 필요한 키의 종류는 Debug Key와 Release key가 있습니다. Debug Key와 Release Key를 구분하는 것은 Build Variants가 Debug(개발용)이냐 Release(배포용)이냐라고 생각하시면 됩니다. Debug Key는 개발할 때만 사용하는 것으로 안드로이드 개발환경에 기본적으로 저장되어 있는 인증서 바이너리에 대한 해시값이고, Release Key는 실제 앱을 배포할 때 사용하는 인증서 바이너리에 대한 해시값입니다. Hash Key를 구하는 방법은 두가지가 있습니다. 1. 터미널을 이용하여 구하는 방법(추천) 2. .. Domain/Android 2021. 8. 14.
[Android] Keystore 생성하기 ( Android KeyStore / Release / Debug / APK / Bundle ) 1. Build -> Generate Signed Bundle / APK 2. Android App Bundle 또는 APK 선택 3. Create New 4. Key store path 설정 -> Password와 Password Confirm 입력 #Alias는 기억하기 쉽게 경로 설정에서 작성한 File Name과 맞춰주시는게 편할 수 있습니다.# #Alias는 ReleaseKey를 찾을 때, 사용 될 수 있기때문에 기억하기 쉽게 작성하는게 좋습니다.# #keystore와 비밀번호는 절대 분실하면 안됩니다# 5. 공백 기입 ( 전부 기록할 필요는 없습니다. ) -> OK 6. Next 7. Finish Domain/Android 2021. 8. 13.
[Android] LiveData Live Data란? 식별 가능한 데이터 홀더 클래스입니다. 식별 가능한 일반 클래스와 달리 LiveData는 생명 주기를 인식합니다. 즉 Activity, Fragment, Service 같은 다른 앱 구성요소의 생명 주기를 고려합니다. 이러한 생명 주기 인식을 통해 LiveData는 활성 생명 주기 상태에 있는 Observer만 업데이트합니다. Observer는 생명 주기가 STARTED 또는 RESUMED 상태이면 LiveData는 관찰자를 활성 상태로 간주합니다. LiveData는 활성 상태인 Observer에게만 업데이트 정보를 알립니다. LiveData 객체를 보기 위해 등록된 비활성 관찰자는 변경사항에 관한 알림을 받지 않습니다 생명 주기에 관한 LifeCyclerOwner와 관찰에 대한 객.. Domain/Android 2021. 4. 23.
[Android] BLE와 Location Permission 애플리케이션에서 블루투스 기능을 사용하려면 두 개의 권한을 선언해야 합니다. 그중 첫 번째는 Bluetooth 입니다. 이 권한은 연결 요청, 연결 수락 및 데이터 전송과 같은 블루투스 통신을 수행하는 데 필요합니다. 두 번째로 선언해야 하는 권한은 ACCESS_FINE_LOCATION입니다. 앱에 이 권한이 필요한 이유는 블루투스 스캔을 사용하여 사용자 위치에 대한 정보를 수집할 수 있기 때문입니다. 이 정보는 사용자 본인의 기기에서 가져올 수도 있고, 상점 및 교통 시설과 같은 위치에서 사용 중인 블루투스 비콘에서 가져올 수도 있습니다. 앱이 Android 9(API 레벨 28) 이하를 대상으로 하는 경우 ACCESS_FINE_LOCATION 권한 대신 ACCESS_COARSE_LOCATION 권한을.. Domain/Android 2021. 4. 23.
[Android] MediaStore ( Android 11 / Android 버전 대응 / Storage 정책 ) Android MediaStore는 Android Q에서 Scoped Storage를 적용하게 되면서 필수적으로 적용해야 할 부분입니다. Android R 정책에 API Level 30을 타겟으로 하는 앱은 Scoped Storage 정책만 사용해야 한다는 내용이 있습니다. Android Q 이전엔 내부 저장소는 시스템 및 개별 앱이 사용하는 공간으로 샌드박스 형식으로 잘 보호되는 영역이며, 각 앱은 개별 저장공간을 할당 받았습니다. 반면 외부 저장소는 하나의 공용 저장소로 동작했습니다. 외부 저장소를 읽고 쓸 수 있는 권한이 있으면 모든 파일에 접근이 가능했습니다. 외부 저장소에 접근 권한만 있다면 Private한 파일 조차 읽고 쓸 수 있었습니다. 때문에 개별 앱들이 간접적인 방법으로 다른 앱의 정보.. Domain/Android 2021. 4. 23.
[Android] 위치정보 권한 ( Android10 Location / Location Permission / COARSE_LOCATION / FINE_LOCATION / BACKGROUND_LOCATION ) 사용자 개인 정보를 보호하려면 위치 서비스를 사용하는 앱에서 위치 정보 액세스 권한을 요청해야 합니다. 안드로이드에서는 Location Permission은 ACCESS_COARSE_LOCATION, ACCESS_FINE_LOCATION, ACCESS_BACKGROUND_LOCATION을 제공합니다. 기존 ACCESS_COARSE_LOCATION, ACCESS_FINE_LOCATION퍼미션에서 Android 10부터 추가적으로 ACCESS_BACKGROUND_LOCATION가 추가 되었습니다. ACCESS_COARSE_LOCATION 도시 블록 내에 위치 정확성을 제공합니다. ACCESS_FINE_LOCATION COARSE_LOCATION 보다 정확한 위치를 제공합니다. 이 권한은 BLE와 기기의 연결.. Domain/Android 2021. 4. 23.
[Android] MVC vs. MVP vs. MVVM MVC (Model,View,Controller) MVC 패턴은 Controller가 사용자로부터 Action을 받아, Model에게 전달하고 모델이 해당 Action에 대한 처리를 마친 뒤에 View적용하는 방식입니다. Model과 View 사이의 의존성이 높고, Controller가 안드로이드 API에 깊게 종속되므로 유닛 테스트가 어렵다는 단점이 있습니다. 모델(Model) 앱의 두뇌 역할을 합니다. 데이터, 상태, 비즈니스 로직을 처리합니다. 뷰나 컨트롤러에 묶이지 않습니다. 뷰(View) 모델의 표현 입니다. UI를 그리고 사용자가 앱과 상호작용할 때 컨트롤러와 통신하는 책임을 맡습니다. 뷰는 하위 모델에 대한 지식이나 상태에 대한 이해가 없고, 사용자가 버튼을 클릭하거나 값을 입력하는 등의 행.. Domain/Android 2020. 9. 21.
[Android] DataBinding 레이아웃의 UI 구성요소를 앱의 데이터 소스와 결합할 수 있는 지원 라이브러리입니다. 레이아웃 파일에서 구성요소를 결합하면 활동에서 많은 UI 프레임워크 호출을 삭제할 수 있어 파일이 더욱 단순화되고 유지관리 또한 쉬워집니다. 앱 성능이 향상되며 메모리 누수 및 null 포인터 예외를 방지할 수 있습니다. 데이터 변경을 쉽게 식별하기 위한 클래스 및 메서드를 제공합니다. 기본 데이터 소스가 변경될 때 UI 새로고침에 관해 신경쓰지 않아도 됩니다. 변수 또는 속성을 식별 가능하게 만들 수 있습니다. 라이브러리를 통해 객체, 필드 또는 컬렉션을 식별 가능하게 만들 수 있습니다. 레이아웃의 변수 및 뷰에 액세스하는 데 사용되는 결합 클래스를 생성합니다. 이 페이지는 생성된 결합 클래스를 사용하고 맞춤설정하는 .. Domain/Android 2020. 9. 21.
[Android] Context란? Interface to global information about an application environment. This is an abstract class whose implementation is provided by the Android system. It allows access to application-specific resources and classes, as well as up-calls for application-level operations such as launching activities, broadcasting and receiving intents, etc. 애플리케이션 환경에 대한 글로벌 정보에 대한 인터페이스입니다. 이것은 Android 시스템에서 구현하는 추상 클.. Domain/Android 2020. 9. 8.