개발/Android(48)
-
DiffUtil로 RecyclerView효율화하기
최근에 recyclerview를 만지다보니.. diffutil을 조금 더 찾아보는 계기가 되었다. 사실 크게 관심은 없고 다들 그렇게 사용하니 사용하다가 .. ㅎㅎ DiffUtil이란? 리스트를 업데이트하는 유틸리티 클래스. RecyclerView 어댑터의 업데이트를 계산하는 데 사용된다 리스트에 변경된 부분만을 감지하여 갱신시켜주는 것! 예상 시간은 O(N + D^2) class StudentAdapter : ListAdapter(StudentCallback()) { inner class ViewHolder(private val itemView: View) : RecyclerView.ViewHolder(itemView){ ........ ........ } class StudentCallback : I..
2023.05.03 -
onBackPressed() deprecated issuede
이제 쓸 수...없다......onBackpressed................................................... 이렇게 된김에 deprecated 된 onBackPressed()를 핸들링해보자 아래와 같이 할 수 있다 Activity 내부에서 fun AppCompatActivity.onBackPressed(isEnabled: Boolean, callback: () -> Unit) { onBackPressedDispatcher.addCallback(this, object : OnBackPressedCallback(isEnabled) { override fun handleOnBackPressed() { callback() } }) } // How To Use it : cla..
2023.03.10 -
android sdk 31 타겟팅
이제 11월부로.....sdk31을 타겟팅하지 않은 앱은 업데이트가 거절되었다. 암튼 그래서...sdk 31 타겟팅을 하면서 수정한 것들을 기록해보기로한다. 1. uses permission 설정(알람기능 정상 동작 위해) 안드로이드 31 이후로, 정확한 알림기능을 사용하기 위해서는 다음과같은 권한이 필요하다. 알림 안 쓴다면 안 써도 됨. 하지만 난 있으니까 썼다. 2. android export 설정(intent filter가 들어가는 부분에 모두 명시해야함) android:exported="true" 앱 외부와 관련 있으면 true, 아니면 false로 설정한다. intent filter가 있는 곳만 추가해주면 된다. 3. pending intent 설정 val pendingIntent = if (..
2022.11.17 -
라디오 다이얼로그 컴포넌트 제작기
좋은 코드는...추상화가 잘 된것. 당연함. 어디서든 갖다 쓸 수 있고. 다형성이 적절히 보장된 것... 최적은 아니지만 어쨌든 내 노력을 갈아서 했으니 기록하고자 오랜만에 글을 쓴다. 만든건 다이얼로그! 대부분의 다이얼로그가 존재하지만 라디오 버튼 + 텍스트 필드가 있는 기본 다이얼로그가 추가로 필요해서 만들었다. 1. 일단 공통 테마부터 만들어준다 다이얼로그는 뭐..다 비슷하게 생겨먹었으니까 공통 테마를 하나 만들어준다. 2. 사용하고자 하는데서 상속해준다 class TwoBtnWithRadioDialog( context: Context, private val title: String, private val sub_text: String, private val radioButtonList: Array..
2022.11.07 -
Material UI 로 간단하게 깔끔한 UI 구현하기 - (1)
까먹기 전에 기록한다. 이건 여러 컴포넌트를 세세하게 다룰거니까...시리즈로 쓴다. 사이드를 하다보면 규모가 작다보니ㅠ 프론트 개발자가 간단한 디자인을 그리게 되는 경우가 많다. 학부생때는 시간도 많았고,,열정도 넘쳤고,,,포폴로도 쓰고싶었으니 포토샵이니 일러스트니 써가면서 모든 컴포넌트를 세세하게 디자인했지만 이제 시간 없음. 그럴 여유와 이유가 삭제됨... 그냥 주는 테마를 쓰게 된다. 난 이거 썼다. Material 2 Design Kit | Figma Community Figma Community file - Customize and Create Material Design's Baseline Design Kit provides all you need to create beautiful apps,..
2022.08.29 -
RxJava vs Coroutines
시작 Flowable CoroutineScope(dispatchers) 0..10 range(0, 10)(RxJava에서 제공) (0..9)(코틀린 문법) 시작 스케줄러 subscribeOn(Schedulers.io()) Dispatchers.Default 중간 스케줄러 변경 observeOn(Schedulers.io()) launch(Dispatchers.Main) index + 1 map {} map {} (코틀린 stream 문법) index > 4 filter {} filter {} (코틀린 stream 문법) 출력 subscribe의 onNext에서 출력 (구독을 통한 실행) launch를 통한 MainThread로 변경 후 출력 왼쪽이 rxjava, coroutine이다.
2022.06.20