단순하게 리스트안에서 랜덤으로 뽑는다고 가정한다면 아래와 같은 함수를 만들어서 뽑는다. fun List.getRandomItem(): T { val index = if (this.size > 1) { val max = size - 1 val min = 0 Random().nextInt(max - min + 1) + min } else 0 return get(index) } 이렇게 되면 각 리스트 안에 요소들은 가중치가 1로 평등하게 랜덤으로 뽑힐 것이다. 그러나 이 리스트들 중에 가중치를 더해 뽑힐 확률을 더 높이도록 처리 하려면 fun MutableMap.getWeightedRandom(): T? { var result: T? = null var bestValue = Double.MAX_VALUE va..
복잡한 애니메이션 처리를 하다가 콜백지옥(?) 이거나 아니면 Listener 를 중첩으로 쓰다보니 코드가 잘 읽혀지지 않는 문제가 생겨 코드 리펙토링을 하다보니 좋은 방법이 있어서 기록한다. as -is 간단한(?) 애니메이션 코드 ValueAnimator.ofInt(100, 0).apply { addUpdateListener { progress_public_cheer.progress = it.animatedValue as Int //tv_public_cheer_count.text = (it.animatedValue as Int).toString() } addListener(object : AnimatorListenerAdapter() { override fun onAnimationEnd(animatio..
두 리스트를 비교해서 업데이트 하는 방법을 지속적으로 업데이트 하고자 한다. val current = listOf(1, 2, 3, 4, 5) val new = listOf(4, 5, 6, 7, 8) println("******* [[ Result ]] *******") println("제거되야할 값들 >> ${current.filterNot { it in new }.toString()}") println("추가해야할 값들 >> ${new.filterNot { it in current }.toString()}") println("****************************")
- Total
- Today
- Yesterday
- 쏘렌토 하이브리드 시그니처
- firebase distribution
- widget glide
- local.properties
- 테스트 앱 배포
- github secrets
- 안드로이드 플립 대응
- 맥 전용
- widget onreceive
- 기름잡아주는
- 테스트 배포
- api key 관리
- 오브제썬스틱
- widget 만들기
- 폴더블 이벤트 받기
- android widget 만들기
- 웨어러블
- 갤럭시 워치
- wear os
- 쏘렌토 하이브리드
- aos img url bitmap
- widget onupdate
- Android
- 풀배열 키보드
- 안드로이드 폴드 대응
- github
- 폴더블 상태 유지
- flutter web
- github actions
- widget 이미지 로딩
| 일 | 월 | 화 | 수 | 목 | 금 | 토 |
|---|---|---|---|---|---|---|
| 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 |