Developing Myself Everyday
article thumbnail
Xml, Compose 그리고 명령형과 선언형
Android 2024. 3. 8. 17:18

사진: Unsplash의hannah joshua Xml과 Compose의 가장 큰 차이는 명령형과 선언형에 있다고 사람들은 말합니다. 하지만, 저는 이를 이해하기가 상당히 어려웠습니다. 그래서 이번 게시글에서는 명령형과 선언형, 그리고 xml과 Compose의 패러다임에 대해 공부하고자 합니다. 명령형 vs 선언형 명령형 프로그래밍은 안드로이드의 전통적인 UI 개발 방법입니다. 명령형은 말 그대로, 컴파일러에게 원하는 작업을 단계별로 알려주는 방식입니다. C#을 사용해서 간단한 예를 들어보겠습니다. 아래에는 숫자 5개가 있습니다. List collection = new List { 1, 2, 3, 4, 5 }; 명령형 프로그래밍 방식으로 이러한 숫자들에서 홀수를 찾기 위해서는 아래와 같이 코드를 작성할 ..

article thumbnail
Compose의 Remember, RememberSaverable 정복하기
Android/Compose 2024. 3. 6. 19:13

사진: Unsplash의David Libeert 이번 게시글에서는 Compose에서 빼놓을 수 없는, 모든 곳에 사용되는 Remember에 대하여 정복하고자 합니다. Remember가 필요한 이유 Remember에 대해 자세히 알아보기 전에, 먼저 Remember가 왜 필요한지 알아보려고 합니다. 아래의 Composable 함수를 한번 보겠습니다. @Composable fun Counter() { var counter by mutableStateOf(0) Column( modifier = Modifier.fillMaxSize() ) { Text( text = "Counter: $counter", ) Button( onClick = { counter++ }) { Text( text = "더하기", ) } ..

article thumbnail
Immutable 그리고 Persistent Collections에 대해서
Android/Kotlin 2024. 2. 26. 19:13

사진: Unsplash의Tahlia Doyle  List에 대해서 배울 때, 우리는 일반적으로 MutableList와 비교하며 List는 변경될 수 없는 Immutable한 컬렉션이라고 배웠습니다. 다만, 이는 큰 관점에서는 틀린 정보입니다. 그래서 이번 게시글에서는 List가 왜 Immutable하지 않는지, 그리고 Immutable한 컬렉션은 뭐가 있는지 알아보고자 합니다.   List는 Immutable하지 않다!List는 Read-only라고 말합니다. 변경할 수 없고, 오직 읽을 수만 있는 컬렉션이라고 우리는 배워왔습니다. 다만, 이는 넓은 관점에서는 틀린 말입니다. 아래의 코드를 보겠습니다. 변수 `number`는 val로 선언되어 있기 때문에 변경될 수 없습니다.class Example { ..

article thumbnail
Compose의 버전 관리: BOM!!
Android/Compose 2024. 2. 19. 19:59

사진: Unsplash의Tim Wildsmith 안드로이드의 최신 버전(저의 경우에는 Hedgehog)을 사용하고 계신다면, 프로젝트를 시작할 때의 기본 설정이 Compose에 최적화된 설정이라는 것을 알고 계실 겁니다. 기본 템플릿에는 Compose와 관련된 기본적인 Gradle 설정이 아래와 같이 되어 있습니다. ... android { ... buildFeatures { compose = true } composeOptions { kotlinCompilerExtensionVersion = "1.4.3" } ... } dependencies { implementation("androidx.core:core-ktx:1.12.0") implementation("androidx.lifecycle:lifec..

article thumbnail
그냥 지나쳤던 안드로이드의 크기 단위
Android 2024. 2. 2. 18:25

사진: Unsplash의Siora Photography 안드로이드 개발을 하면서 의미도 모르고 사용했던 것이 있습니다. 바로 dp와 sp입니다. 최근에 xml을 작성해 보신 분들이라면, 분명 아래의 멘트를 보셨을 겁니다. 또한 Compose 라이브러리에 있는 TextField는 오직 sp만을 지원합니다. 그렇기에 저는 이번 게시글에서 지금까지 그냥 지나쳤던 안드로이드의 크기 단위에 대하여 공부하고자 합니다. 여러 가지 단위 리소스 유형 더보기 | Android 개발자 | Android Developers 이 페이지에서는 부울, 색상, 크기, ID, 정수, 정수 배열, 유형이 지정된 배열 리소스를 비롯하여 외부화할 수 있는 더 많은 리소스 유형을 정의합니다. developer.android.com px 안..

[이펙티브 코틀린] 2장 - 가독성

2장을 시작하며 코틀린은 간결성을 목표로 설계된 프로그래밍 언어가 아니라 가독성(readablitiy)을 좋게 하는 데 목표를 두고 설계된 프로그래밍 언어입니다. 코틀린을 사용하면 깨끗하고 의미 있는 코드와 API를 쉽게 작성할 수 있으며, 우리가 원하는 것을 숨기거나 강조할 수 있게 하는 기능을 제공합니다. 이번 장에서는 이러한 기능을 사용하는 방법을 다룹니다. 아이템 11 - "가독성을 목표로 설계하라" 프로그래밍은 쓰기보다 읽기가 더 중요합니다. 그렇기 때문에 항상 가독성을 생각하면서 코드를 작성해야 합니다. 인식 부하 감소 코드를 작성할 때에는 기본적으로 `인지 부하`를 줄이는 방식으로 작성해야 합니다. 우리의 뇌는 기본적으로 짧은 코드를 빠르게 읽을 수 있지만, 익숙한 코드는 더 빠르게 읽을 수..

article thumbnail
내가 Compose로 만든 앱의 화면이 버벅거린다면?
Android/Compose 2024. 1. 14. 18:24

사진: Unsplash의Emily Morter 저는 요즘 Compose를 배우고 사용하면서 Compose에 매력에 깊게 빠져 있습니다. 그래서 기존의 프로젝트를 Compose로 다시 만들어보기도 하고, 새로운 프로젝트도 거의 Compose로 진행하고 있습니다. 다만, Compose로 만든 앱을 실행해 보면, 이상하게 버벅거리는 것들이 있었습니다. 리스트를 스크롤할 때나 애니메이션을 구성했을 때가 특히 그랬습니다. 이번 게시글에서는 코드와는 상관없이 버벅거림에 대한 해결방안과 이유에 대해 알아보고자 합니다. 해결방안 가장 간단하게 Compose로 구성한 화면의 버벅거림을 해결하는 방법은 Release mode와 R8을 사용하여 빌드하는 것입니다. 이를 이야기 하기 위해서는 먼저 안드로이드의 2가지 빌드 방..

article thumbnail
안드로이드에서 사용자의 위치를 가져오는 방법
Android 2024. 1. 7. 15:36

사진: Unsplash의henry perks 개인 프로젝트를 진행하면서 사용자에 위치에 근처에 있는 관광지를 추천해 주는 기능을 추가하면 어떨까? 하고 생각했습니다. 이번 게시글에서는 안드로이드에서 사용자의 위치를 가져올 수 있는 방법을 다뤄보고자 합니다. 다만 해당 게시글에서는 방법을 알려주는 것에 그치기에 생략된 부분이 많습니다. 그렇기 때문에 어느 정도 구조와 사용되는 라이브러리에 대해 이해하지 않으면 어려우실 수 있습니다. Set up 가장 최근에 알려진 사용자의 위치 정보를 가져오기 위해서는 `Google Play services location APIs` 를 사용합니다. 이와 관련된 내용은 아래의 공식문서에 있습니다. 마지막으로 알려진 위치 가져오기 | Sensors and location |..