목록분류 전체보기 (140)
시배's Android
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/kSs1g/btsueN46iOT/3nHfSYS5DKuKH35f6CqCa0/img.png)
Compose의 맞춤 디자인 시스템 | Jetpack Compose | Android Developers Compose의 맞춤 디자인 시스템 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. Material은 권장되는 디자인 시스템이며 Jetpack Compose는 Material 구현을 제공하지만, developer.android.com 머티리얼은 권장 디자인 시스템이고 젯팩 컴포즈에는 머티리얼 구현이 포함되어 있지만, 반드시 머티리얼을 사용해야 하는 것은 아닙니다. 머티리얼은 전적으로 공개 API를 기반으로 구축되었으므로 동일한 방식으로 자신만의 디자인 시스템을 만들 수 있습니다. 몇 가지 접근 방식을 사용할 수 있습니다: 추가 테마 값으로 MaterialTheme 확장하..
16918번: 봄버맨 첫째 줄에 R, C, N (1 ≤ R, C, N ≤ 200)이 주어진다. 둘째 줄부터 R개의 줄에 격자판의 초기 상태가 주어진다. 빈 칸은 '.'로, 폭탄은 'O'로 주어진다. www.acmicpc.net private fun main() { val (r, c, n) = readLine()!!.split(" ").map { it.toInt() } val x = intArrayOf(-1, 0, 0, 1) val y = intArrayOf(0, -1, 1, 0) val a = Array(r) { readLine()!!.toCharArray() } val b = Array(r) { i -> IntArray(c) { if (a[i][it] == 'O') 3 else 0 } } val s =..
1059번: 좋은 구간 [9, 10], [9, 11], [9, 12], [10, 11], [10, 12] www.acmicpc.net private fun main() { readLine() val A = readLine()!!.split(" ").map { it.toInt() }.toSet() val N = readLine()!!.toInt() var ans = 0 for (l in 1..N) { for (r in maxOf(N, l + 1)..1000) { if (A.all { it !in l..r }) ans += 1 } } println(ans) }
Android 개발을 하다 보면 이미지나 콘텐츠를 확대/축소하거나 드래그하여 이동시키는 기능이 필요한 경우가 있습니다. 이러한 기능을 구현하려면 ZoomState 클래스와 같은 커스텀 상태 클래스를 사용할 수 있습니다. 이 클래스는 Android Jetpack Compose를 사용하여 화면에 구현된 이미지나 콘텐츠를 제어하고 상호작용하는 데 도움을 주는 클래스입니다. ZoomState 클래스 소개 @Stable class ZoomState( @FloatRange(from = 1.0) private val maxScale: Float = 5f, private var contentSize: Size = Size.Zero, private val velocityDecay: DecayAnimationSpec = ..
Jetpack Compose Side Effects in Details Optimizing UI Performance in Jetpack Compose with SideEffect, LaunchedEffect, and DisposableEffect. Learn how to manage UI effects. medium.com Whey Side-effects? Jetpack Compose에서 사이드 이펙트의 목적은 컴포저블 함수 외부에서 앱의 상태를 변경하는 UI와 관련이 없는 작업을 제어되고 예측 가능한 방식으로 실행할 수 있도록 하는 것입니다. 데이터베이스 업데이트 또는 네트워크 호출과 같은 부수 효과는 코드의 성능과 유지 관리성을 개선하기 위해 UI 렌더링 로직과 별도로 유지해야 합니다. Jetpac..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/bS3teJ/btsth8P7dr0/O00qkYVs8XYPlOWLwK6X2K/img.png)
Compose의 ConstraintLayout | Jetpack Compose | Android Developers Compose의 ConstraintLayout 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. ConstraintLayout은 화면에 다른 컴포저블을 기준으로 컴포저블을 배치할 수 있는 레이아웃 developer.android.com ConstraintLayout은 화면의 다른 컴포저블을 기준으로 컴포저블을 배치할 수 있는 레이아웃입니다. 여러 개의 중첩된 Row, Column, Box 및 기타 사용자 정의 레이아웃 요소를 사용하는 대신 사용할 수 있습니다. ConstraintLayout은 더 복잡한 정렬 요구 사항이 있는 더 큰 레이아웃을 구현할 때 유용합니..
![](http://i1.daumcdn.net/thumb/C150x150/?fname=https://blog.kakaocdn.net/dn/oNNPg/btssUNfaR20/yOd9s86l6cunSEWuR56KIK/img.png)
Compose 레이아웃의 내장 기능 측정 | Jetpack Compose | Android Developers Compose 레이아웃의 내장 기능 측정 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. Compose 규칙 중 하나는 하위 요소를 한 번만 측정해야 한다는 것입니다. 하 developer.android.com Compose의 규칙 중 하나는 자녀를 한 번만 측정해야 하며, 자녀를 두 번 측정하면 런타임 예외가 발생한다는 것입니다. 그러나 자녀를 측정하기 전에 자녀에 대한 정보가 필요한 경우가 있습니다. Intrinsics를 사용하면 실제로 측정하기 전에 자식에 대해 쿼리할 수 있습니다. 컴포저블에 대해, 그 컴포저블의 intrinsicWidth 또는 intrins..
17144번: 미세먼지 안녕! 미세먼지를 제거하기 위해 구사과는 공기청정기를 설치하려고 한다. 공기청정기의 성능을 테스트하기 위해 구사과는 집을 크기가 R×C인 격자판으로 나타냈고, 1×1 크기의 칸으로 나눴다. 구사 www.acmicpc.net fun spread(room: List, r: Int, c: Int) { val tmp = List(r) { MutableList(c) { 0 } } for (i in 0 until r) { for (j in 0 until c) { val amount = room[i][j] / 5 val calc = { I: Int, J: Int -> if (room[I][J] != -1) { tmp[I][J] += amount room[i][j] -= amount } } if..