[안드로이드 / Kotlin] RecyclerView Drag&Drop / Swipe 구현
·
Android
오늘은 안드로이드에서 RecyclerVIew를 사용할때 외부 라이브러리 없이 Drag&Drop으로 아이템의 위치를 변경하거나, Swipe로 아이템을 삭제하는 방법에 대해 알아보도록 하겠습니다. 먼저 해당 기능을 사용하기 위해 ItemTouchHelper.Callback을 상속받은 콜백 클래스 ItemTouchHelperCallback 정의합니다. 이벤트가 발생하여 콜백이 오면 필요한 정보를 전달할 인터페이스 OnItemMoveListener를 정의합니다. 해당 리스너를 편의를 위해 ItemTouchHelperCallback의 파라미터로 놓고, 아이템 움직임에 따른 onItemMoved()와 스와이프에 따른 onItemSwipe() 메소드를 각각 구현해서 사용하시면 됩니다. /** * RecyclerVie..
[안드로이드 / Kotlin] 저전력 블루투스 BLE(3), 기기 연결
·
Android
지난 2편에서는 BLE 기기를 스캔하는 방법에 대해 알아보았습니다. 이어서 오늘은 스캔한 BLE 기기를 연결하는 방법에 대해 간단하게 알아보도록 하겠습니다. BLE 2편 : https://sjunh812.tistory.com/27 [안드로이드 / Kotlin] 저전력 블루투스 BLE(2), 스캔 지난 1편에서는 BLE의 기본개념 및 사용에 있어 준비해야할 몇 가지에 대해 알아보았습니다. 오늘은 안드로이드 내 블루투스 사용에 있어 저전력 블루투스(BLE)를 이용하여 다른 BLE기기를 찾는 sjunh812.tistory.com GATT서버 연결 BLE 기기와의 연결은 곧 GATT 서버에 연결한다는 의미와 같습니다. GATT란? 1편에서 소개한 개념으로, 속성이라고 알려진 적은양의 데이터를 주고 받기위한 일반..
[안드로이드 / Kotlin] 화면 전환 시 작업 처리, 구성 변경 처리(onConfigurationChanged)
·
Android
앱의 화면을 회전하게 되면 해당 액티비티내 onCreate()가 재호출되어 이미 저장했던 데이터들이 날아가는 이슈가 발생해 대개 화면모드를 세로 고정으로 하는 경우가 많습니다. 하지만 최근 태블릿을 이용하는 사람들이 많아지고 있기 때문에 화면회전을 허용 가능하게 개발 하려는분들도 많을 것입니다. 그래서 오늘은 '구성 변경 처리' 라는 간단한 개념을 통해 화면 회전 및 기타 구성 변경 이후 발생하는 이슈를 최소화 하기 위한 방법을 알아보도록 하겠습니다. 화면 회전이 발생 즉, 구성 변경이 발생하게 된다면 해당 액티비티에서는 onDestroy(), onCreate()를 호출함으로서 새로운 기기 구성에 앱이 적응할 수 있도록 시스템이 설계되어 있습니다. 여기서 재시작 이후에도 이전 상태를 복원하는 것이 핵심이..
[안드로이드 / Kotlin] 저전력 블루투스 BLE(2), 스캔
·
Android
지난 1편에서는 BLE의 기본개념 및 사용에 있어 준비해야할 몇 가지에 대해 알아보았습니다. 오늘은 안드로이드 내 블루투스 사용에 있어 저전력 블루투스(BLE)를 이용하여 다른 BLE기기를 찾는 스캔방법에 대해 정리해보았습니다. BLE 1편 : https://sjunh812.tistory.com/26 [안드로이드 / Kotlin] 저전력 블루투스 BLE(1), BLE란? 오늘은 안드로이드 내 블루투스 사용에 있어 저전력 블루투스(BLE)의 기본 개념 및 주요 용어, 사용에 있어 준비해야할 것들에 대해 정리해보았습니다. 저전력 블루투스(BLE)는 기존 블루투스와 sjunh812.tistory.com 블루투스 설정 1편에서 저전력 블루투스가 기기에 지원되는지 여부를 파악했다면 다음으로는 사용기기에 블루투스가..
[안드로이드 / Kotlin] 저전력 블루투스 BLE(1), BLE란?
·
Android
오늘은 안드로이드 내 블루투스 사용에 있어 저전력 블루투스(BLE)의 기본 개념 및 주요 용어, 사용에 있어 준비해야할 것들에 대해 정리해보았습니다. 저전력 블루투스(BLE)는 기존 블루투스와 달리 상당히 전력을 적게 소모하도록 설계되어있습니다. 사용예시로 2가지를 살펴보면 아래와 같습니다. 근처 기기 사이에서 소량의 데이터를 전송할때 근접센서와 상호작용하여 사용자에게 현재 위치에 기반한 맞춤 설정된 환경을 제공할때 BLE 주요 용어 및 개념 포괄적 특성 프로필(GATT) - GATT는 BLE 링크를 통해 "속성"이라고 알려진 짧은 데이터를 주고받기 위한 일반적인 사양입니다. 현재 모든 저전력 애플리케이션 프로필은 GATT에 기초합니다. 속성 프로토콜(ATT) - GATT는 속성 프로토콜(ATT) 위에 ..
[안드로이드 / Kotlin] 진동
·
Android
앱을 개발하다보면 진동기능을 사용하는 경우가 종종 발생하곤 합니다. 오늘은 간단한 함수 한개를 통해 진동기능을 구현하는법에 대해 알아보도록 하겠습니다! /** * 진동 * * @param context * @param time // 진동주기 * @param amplitude // 진동세기 * @param useAmp // 진동세기 사용여부(오레오 이상) */ fun startVibration(context: Context, time: Long, amplitude: Int = 50, useAmp: Boolean = true) { val vibrator = if(Build.VERSION.SDK_INT >= Build.VERSION_CODES.S) { val vm = context.getSystemServic..
[안드로이드 / Kotlin] RecyclerView에 대한 고찰
·
Android
안드로이드 개발에 있어 RecyclerView는 빼놓을 수 없는 요소가 되었습니다. 그 이유는 기존에 사용됐던 ListView에 비해RecyclerView 성능 및 효율이 좋기 때문입니다. RecyclerView를 정의하면 아래와 같습니다. RecyclerView란? 사용자가 관리하는 많은 수의 데이터 집합(Data Set)을 개별 아이템 단위로 구성하여 화면에 출력하는 뷰그룹(ViewGroup)이며, 한 화면에 표시되기 힘든 많은 수의 데이터를 스크롤 가능한 리스트로 표시해주는 위젯입니다. 이제부터 기본적인 RecyclerView의 사용법 및 여러가지 기능에 대해 알아보도록 하겠습니다. class MyAdapter: RecyclerView.Adapter() { var items: ArrayList = ..
[안드로이드 / Kotlin] Retrofit2
·
Android
안드로이드 앱 제작에 있어 네트워크 통신은 필수적인 사항이 되었습니다. 그래서 많은 통신 라이브러리가 존재하는데, 그 중 가장 많이 사용되는 라이브러리인 'Retrofit' 에 대해 알아보도록 하겠습니다. Retrofit 은 동일 Squareup사의 Okhttp 라이브러리의 상위 구현체입니다. Okhttp와 다르게 (1) AsyncTask를 사용하지 않아 빠른 성능을 가지고 있습니다. 또한 (2) 동기/비동기의 구현이 간단하다는 특징이 있습니다. 간단한 사용방법으로는 아래와 같습니다. 1. Gradle 추가하기 implementation 'com.squareup.retrofit2:retrofit:2.9.0' implementation 'com.squareup.retrofit2:converter-gson:..
[안드로이드 / Kotlin] 생체 인식 인증 사용하기
·
Android
앱에 민감한 정보나 고급 콘텐츠를 보호하기 위해 생체 인식 인증을 사용합니다. 안드로이드의 경우 지문을 이용한 생체 인식 인증을 사용하는데 해당 사용방법에 대해 알아보도록 하겠습니다. 1) 앱 지원 인증 유형 선택 기본적으로 앱에서 지원하는 인증 유형을 선택해야합니다. 구현하고자하는 지문인식의 경우 BiometricManager.Authenticators.BIOMETRIC_STRONG // BiometricManager.Authenticators.BIOMETRIC_WEAK // BiometricManager.Authenticators.DEVICE_CREDENTIAL 을 사용합니다. (DEVICE_CREDENTIAL의 경우 화면 잠금 사용자 인증 정보를 사용하는 인증 유형입니다.) 2) 생체 인식 인증 사..
[안드로이드 / Kotlin] 카카오 로그인 SDK v2 사용하기
·
Android
요즘 많은 앱에서 sns 로그인 기능을 사용하고 있습니다. 그 중 카카오 로그인은 거의 필수적으로 들어가는 요소 중 하나입니다. 저도 기존 카카오에서 제공하는 SDK v1을 사용하다가 최근 안드로이드 12 업데이트가 진행됨에 따라 문제가 발생하여 카카오 로그인 SDK v2로 대체했습니다. 오늘은 간단하게 카카오 로그인 SDK v2 사용하는법을 알아보도록 하겠습니다. * SDK 설치방법은 카카오 개발자 문서에 상세하게 설명되어있으므로 참고하시면 되겠습니다. https://developers.kakao.com/docs/latest/ko/getting-started/sdk-android Kakao Developers 카카오 API를 활용하여 다양한 어플리케이션을 개발해보세요. 카카오 로그인, 메시지 보내기, ..