목록Android/Kotlin (14)
easy-1
앱 개발을 진행할때 계정 연동 로그인 시 키 해시 값을 등록해 주어야지만 API 연결이 가능함. 개발할때는 디버그 키 해시로 로그인이 가능하지만 스토어에 출시하거나 release 모드로 빌드할때에는 릴리즈 모드 전용 키 해시가 필요함 1. 안드로이드 프로젝트에서 앱 설치(Android App Bundle, APK) 파일을 해당 프로젝트 app/release/ 경로에 생성함. 2. 터미널창에서 아래의 명령어를 이용하여 릴리즈 키 해시 값을 구함. keytool -exportcert -alias "alias" -keystore "/Users/LJW/AndroidStudioProjects/SampleProject/app/release/sample | openssl sha1 -binary | openssl ba..
Retrofit을 사용하여 서버통신 호출 시 네트워크 연결이 끊어진 경우 IOException 이 발생하며 앱 크래쉬가 일어나는 현상을 겪음 네트워크 연결이 끊어진 경우 간단한 Toast 메세지로 네트워크 연결 안내를 띄우고자함 1. IOException() 클래스를 상속받아 리턴해줄 메세지 생성 object NotConnectException : IOException() { override val message: String get() = "네트워크 연결이 원활하지 않습니다." } 2. Interceptor 를 상속받아 IOException intercept 진행 object NetworkConnectionInterceptor : Interceptor { override fun intercept(cha..
Activity 간 이벤트 전달을 위해 사용됨. 다른 Activity 에서 데이터 변경이 일어날 경우 메인이 되는 Activity 에서 구독을 통하여 이벤트 변경을 수신함. 1. EventBus 클래스 생성 object EventBus { private val events = MutableSharedFlow() val mutableEvents = events.asSharedFlow() suspend fun produceEvent(event: EnumEventBus) { events.emit(event) } inline fun subscribe(): Flow { return mutableEvents.filter { it is T }.map { it as T } } } // 이벤트 종류 구분 enum cla..
앱 개발 시 클릭리스너를 적용할때 리스너 호출을 빠르게 누르면 중복으로 호출 되는 경우가 발생함 리스너 호출 시 일정시간 이내에 재호출을 하지 못하게 변경하여 처리함 1. OnSingleClickListener 생성하여 인터벌 발생 시킴 class OnSingleClickListener( private var interval: Int = 600, private var onSingleClick: (View) -> Unit ) : View.OnClickListener { private var lastClickTime: Long = 0 override fun onClick(v: View) { val elapsedRealtime = SystemClock.elapsedRealtime() if ((elapsedRe..