본문 바로가기

728x90
반응형

Android

(20)
[Jetpack Compose] LazyRow, LazyColumn에 대해서 View System에서 Jetpack Compose로 넘어오면서 눈에 띄는 것들 중 하나가 LazyRow와 LazyColumn이다. 필자는 LazyRow와 LazyColumn가 뭔지 알기 전에 두 단어가 무슨 뜻을 내포하고 있는지를 먼저 알아두는게 순서라고 생각한다.  Lazy의 의미와 특징Jetpack Compose에서 LazyRow와 LazyColumn의 "Lazy"는 데이터 항목(UI로 표현되는 데이터 단위)를 지연 생성(lazy loading)하는 방식과 관련이 있다. 이는 성능 최적화를 위해 불필요한 항목을 미리 생성하지 않고, 화면에 보여야 할 항목 만 생성하는 것을 의미한다. 즉, "항목의 지연 생성"이라고 생각하면 된다. 좀 더 자세히 살펴보면,화면에 보이는 항목만 생성되고, 스크롤 시 ..
[Android] 한글 종성에 따라 조사 구분하기 Toast 메시지를 띄울 때 단어에 따라 뒤에 붙는 조사가 달라져야 하는데그렇지 않은 것을 보고 어색하다는 생각이 들었고 무엇보다 사용자들이 보기에는 좋지 않을 것으로 생각했다. 그래서 필자는 직접 확장함수를 구현해보기로 했다. 한글의 조사에는 "은", "는", "이", "가",  "을", "를"이 있고,앞에 오는 단어의 마지막 글자에 종성의 유무에 따라 뒤에 붙는 조사가 달라진다.  초성, 중성, 종성 테이블실제 코드에서 한글은 유니코드로 구성되어 있고,19개의 초성, 21개의 중성, 28개의 중성의 조합으로 한글이 만들어진다. 1개의 한글자는 초성 + 중성 + 종성의 조합으로 유니코드 값이 만들어진다. 이를 수식으로 표현하면 다음과 같다.한글 = 0xAC00(처음 한글 시작값) + (초성 Index ..
[Jetpack Compose] Text Visibility 만들기 View System과 달리 Jetpack Compose에서는 컴포넌트의 visibility 속성을 제공하지 않는다.그래서 직접 구현해야 했다. 필자는 Gone 값이 필요한데, 잘 생각해보면 이는 Modifier의 size로 해보면 된다.이 아이디어를 바탕으로 Modifier의 확장함수를 다음과 같이 구현해봤다. fun Modifier.visibility(isVisible: Boolean): Modifier = if (isVisible) this else this.then(Modifier.size(0.dp)) 생각보다 요긴하게 잘 쓰고 있다. 구독과 공감(♡)은 블로그 운영에 큰 힘이 됩니다!긍정적인 댓글 남겨주시면 감사드리며,보완해야 할 점이 있으면 댓글로 남겨주셔도 좋습니다!
[Android] org.jetbrains.kotlin.gradle.tasks.CompilationErrorException 앱을 실행시켰더니 다음과 같은 오류가 발생했다.  에러가 있다고 표시되었고 어디에서 에러가 발생했는지 알 수 없었을 뿐더러빌드 오류라서 Logcat을 확인할 수도 없었다...  해결책 ./gradlew assembeDebug --stacktrace  안드로이드 스튜디오 터미널에서 위 명령어를 실행했더니필자의 경우 아래와 같은 에러 메시지가 나타났고어디에서 에러가 발생했는지 알 수 있었다. 이 오류가 발생한다면 대부분 코드에 오류가 빨간 밑줄로 표시되는 경우이므로 코드를 잘 확인하면 된다.  구독과 공감(♡)은 블로그 운영에 큰 힘이 됩니다!긍정적인 댓글 남겨주시면 감사드리며,보완해야 할 점이 있으면 댓글로 남겨주셔도 좋습니다!

728x90
반응형