Developing Myself Everyday
article thumbnail
클린 아키텍처와 안드로이드 권장 멀티 모듈 적용하기 (2)
Android 2023. 10. 5. 20:03

이 게시글은 아래의 게시글에서 이어지는 내용입니다. 클린 아키텍처와 안드로이드 권장 멀티 모듈 적용하기 (1) 도대체 이놈의 클린 아키텍처가 뭐길래 이렇게 저를 괴롭히는지 모르겠습니다. 클린 아키텍처를 처음 접하고, 이것이 뭔지 이해하기 까지도 시간이 많이 걸렸습니다. 그럼에도 아직 잘 모르는 everyday-develop-myself.tistory.com Core 이제부터는 Core 폴더에 들어갈 모듈 5개를 만들어볼 예정입니다. 3개의 게시글을 전체 다 따라오시면 아래와 같은 멀티 모듈 프로젝트를 만들 수 있습니다. 다만 이 게시글에서는 안드로이드에 멀티 모듈을 적용하는데 중점이 맞춰져 있습니다. 그렇기에 각각의 모듈의 기능에 대한 설명은 조금 부족할 수 있습니다. 그렇기에 아직 익숙하지지 않은 부분..

article thumbnail
Compose에서의 State(상태)
Android/Compose 2023. 10. 5. 13:45

사진: Unsplash의Braden Collum 이전에 아래의 게시글에서 상태에 대해 알아본적이 있습니다. State와 StatedFlow, SharedFlow에 대해 알아보기 State란? State는 객체 지향 관점에서 자주 사용되는 단어로 객체가 특정 시점에서 어떤 데이터 값을 가지고 있는지 나타내는 것으로, 객체의 특성이나 속성을 나타냅니다. 안드로이드의 UI 레이어 everyday-develop-myself.tistory.com 앱의 상태는 시간이 지남에 따라 변할 수 있는 값을 의미합니다. 이번 게시글에서는 Compose에서 앱의 상태를 어떻게 저장하고 사용하는지 알아보고자 합니다. Compose와 상태 Compose는 선언형 UI 프레임워크로 Composition을 통해 UI를 기술합니다. ..

article thumbnail
클린 아키텍처와 안드로이드 권장 멀티 모듈 적용하기 (1)
Android 2023. 10. 4. 18:49

도대체 이놈의 클린 아키텍처가 뭐길래 이렇게 저를 괴롭히는지 모르겠습니다. 클린 아키텍처를 처음 접하고, 이것이 뭔지 이해하기 까지도 시간이 많이 걸렸습니다. 그럼에도 아직 잘 모르는 것이 너무나도 많습니다. 그래서 클린 아키텍처를 다시 한번 정리하고 안드로이드가 권장하는 아키텍처를 실제로 도입한 간단한 로그인 앱을 만들어보려고 합니다. 주의!!!! 이 모든 것은 공부하는 학생의 입장에서 작성한 내용입니다. 틀린 내용이 있을 수 있으므로 혹시 발견하신다면 댓글로 알려주세요 클린 아키텍처란? 그럼 도대체 클린 아키텍처란 뭘까요? 검색으로 가장 먼저 알 수 있는 것은 다음과 같습니다. 클린 아키텍처는 『클린 코드(Clean Code)』를 저술한 로버트 마틴(Robert C. Martin)이 제안한 시스템 아..

article thumbnail
JetPack Compose에 대한 이해
Android/Compose 2023. 10. 4. 10:21

안드로이드 개발을 하면서 Compose를 사용하지 않는 것은 이제는 많이 뒤져치는 것 같습니다. 그렇기에 Compose를 제대로 공부해보고 있습니다. 다만 누가 "Compose에 대해서 이해하고 있느냐?" 라고 묻는다면 "그건 선언적 UI야" 라고밖에 말할 수 없을것 같습니다. 그렇기에 아래의 게시글을 보면서 Compose에 대해 정리해보는 시간을 가지려 합니다. Understanding Jetpack Compose — Part 1 of 2 Better UI building with Compose medium.com Under the hood of Jetpack Compose — part 2 of 2 Under the hood of Compose medium.com Jetpack Compose는 무엇인가..

article thumbnail
StateFlow, SharedFlow에 대해 알아보기
Android/Kotlin 2023. 10. 1. 19:14

State란? State는 객체 지향 관점에서 자주 사용되는 단어로 객체가 특정 시점에서 어떤 데이터 값을 가지고 있는지 나타내는 것으로, 객체의 특성이나 속성을 나타냅니다. 안드로이드의 UI 레이어 가이드에서는 UI 레이어의 UI State를 생성하고 관리하는 수단으로 단방향 데이터 흐름(UDF)을 설명합니다. 이러한 State는 UI와 관련된 데이터를 저장하고 관리하는데 사용되는 상태 홀더인 ViewModel을 통해 관리됩니다. 상태 홀더인 ViewModel은 앱이 상태를 읽을 수 있도록 상태를 저장합니다. 로직이 필요한 경우 필요한 로직을 호스팅하는 데이터 소스에 대한 액세스 권한을 제공합니다. LiveData 이러한 State 데이터를 다루기 위해 안드로이드에서는 LiveData를 사용했습니다. ..

article thumbnail
Kotlin Flow와 Sequence
Android/Kotlin 2023. 10. 1. 19:14

사진: Unsplash의Solen Feyissa 시퀀스(Sequences)와 Flow 시퀀스는 Iterable과 동일한 기능을 제공하지만 다른 접근 방식을 구현합니다. 바로 가능한 한 지연 실행(Lazy Evaluation) 한다는 것입니다. 시퀀스를 사용하면 실제 계산은 전체 처리 체인의 결과가 요청될 때만 발생합니다. 시퀀스는 각 요소에 대해 모든 처리 단계를 하나씩 순차적으로 수행합니다. 따라서 시퀀스를 사용하면 중간 단계의 결과를 만들지 않고 전체 컬렉션 처리 체인의 성능을 향상시킬 수 있습니다. 시퀀스와 중단 함수 아래와 같은 예시를 보겠습니다. fun simple(): Sequence = sequence { // sequence builder for (i in 1..3) { Thread.sle..

article thumbnail
Gradle의 동작원리 이해하기
Android 2023. 9. 27. 12:09

안드로이드 개발을 한다면 이 코끼리를 지겹게 보게 됩니다. 다만 이 코끼리에 대해서 자세히 공부해보고 알아본적이 없어서 이번 게시글을 통해 Gradle의 원리를 이해해보고자 합니다. Gradle이란? Gradle은 Groovy 언어를 기반으로 한 오픈소스 빌드 도구입니다. 빌드 도구란 애플리케이션 생성을 자동화 하기 위한 프로그램으로 안드로이드에서는 .apk 파일을 만드는 과정을 자동화합니다. Gradle이 나오기 전에는 Ant나 Maven 같은 빌드 도구를 사용했습니다. 다만 xml 형식을 이용해 정적인 설정정보를 구성했기에 구조적인 단점이 존재했습니다. Gradle은 Groovy 언어를 이용해 코드로서 설정 정보를 구성하기 때문에 이러한 단점을 해결했습니다. 안드로이드에서 Gradle은 Gradle ..

article thumbnail
[Deep Dives into Coroutines on JVM] (2) - 코루틴의 Context
Android/Kotlin 2023. 9. 26. 14:53

이 게시글의 내용은 아래의 유튜브를 보고 작성한 내용입니다. 유튜브의 22분부터 마지막까지의 내용을 다루고 있습니다. 코루틴의 Context? 코루틴의 Context에 말해보기에 앞서 Context에 대해 다시한번 말해보자면 안드로이드 애플리케이션의 실행 환경에 대한 전역 정보를 제공하는 클래스라고 할 수 있습니다. 그럼 코루틴의 Context은 바로 코루틴 환경에 대한 전역 정보를 제공하고 있다는 것을 우리는 알 수 있습니다. 코루틴에 Context가 생긴 이유 사실 초기의 코루틴에서는 Context가 없었습니다. 그런데 문제가 생겼습니다. 바로 코루틴이 실행될 Thread에 관련된 사항입니다. 작가 starline 출처 Freepik ❓ 질문을 하나 해보겠습니다. 아래와 같은 Continuation이..