분류 전체보기
-
Jetpack Compose 이해하기 (3장) - Compose의 상태 관리와 remember, mutableStateOf안드로이드 2025. 4. 7. 21:17
Jetpack Compose 시리즈의 이전 장에서는 Composable 함수와 Recomposition의 기본 개념에 대해 알아보았습니다.이번 장에서는 Compose에서의 상태(State) 관리와 핵심이 되는 remember, mutableStateOf 에 대해 중점적으로 다뤄보겠습니다. 📌 Compose에서 상태란?Compose에서 상태(State)는 UI가 표시하는 데이터를 의미하며, 상태가 변경되면 Compose는 이를 감지하여 해당 UI를 자동으로 재구성(Recomposition)합니다.이를 통해 최신 상태가 UI에 반영됩니다.🎯 상태 선언 방법Compose에서 상태를 선언하는 일반적인 방법은 remember와 mutableStateOf를 함께 사용하는 것입니다. 이를 통해 상태를 기억하고 ..
-
Jetpack Compose 이해하기 (2장) - Jetpack Compose의 기본 개념과 Composable 함수안드로이드 2025. 4. 4. 20:40
첫 장에서는 선언형 UI와 명령형 UI의 차이점에 대해 알아보았습니다. 이번 포스팅에서는 Jetpack Compose의 기본 개념과 핵심이 되는 Composable 함수에 대해 깊이 알아보겠습니다. 📌 Jetpack Compose란?Jetpack Compose는 안드로이드에서 사용하는 선언형 UI 툴킷으로, 간결하고 직관적인 코드로 UI를 구축할 수 있게 합니다. Compose를 이용하면 UI가 상태 변화에 따라 자동으로 갱신되어 유지보수가 쉽고 생산성이 높아집니다. Compose는 다음과 같은 특징이 있습니다코드로 UI를 작성하는 방식상태(state) 기반의 자동 UI 갱신간결하고 직관적인 코드 작성 가능함수형 프로그래밍 패러다임 사용 📌 Composable 함수란?Compose에서는 UI 요소..
-
Jetpack Compose 이해하기 (1장) - 선언형 UI vs 명령형 UI안드로이드 2025. 4. 3. 00:11
안드로이드 앱 개발에서 Jetpack Compose가 등장하면서 기존의 명령형(Imperative) UI 방식에서 선언형(Declarative) UI 방식으로 패러다임이 전환되었습니다. 이번 글에서는 이 두 가지 접근법의 개념과 차이점을 비교해 보겠습니다. 📌 명령형(Imperative) UI 방식이란?명령형 UI는 화면을 구성할 때 어떻게(how) 만들어야 하는지를 단계별로 명확하게 지정하는 방식입니다. 전통적인 안드로이드 개발에서는 XML과 Kotlin 또는 Java 기반의 View 시스템이 이에 해당합니다. 예를 들어, 특정 버튼 클릭 시 텍스트의 색상을 바꾸려면 다음과 같이 구현합니다.val button = findViewById(R.id.myButton)button.setOnClickList..
-
iOS 개발자가 없는 상황에서 Android 개발자가 iOS 앱을 유지보수한 경험iOS 2025. 3. 31. 22:54
1. 배경2024년 말, 회사에서 갑작스럽게 iOS 개발자가 퇴사하는 일이 발생했다. 기존 iOS 앱의 유지보수는 물론, 신규 기능 추가까지 필요한 상황이었지만, 팀 내에 iOS 경험이 있는 개발자가 없었다. 결국, Android 개발자인 내가 긴급 투입되어 iOS 앱을 유지보수하게 되었다. 처음에는 막막했지만, 다양한 시행착오를 겪으며 iOS 개발을 경험할 수 있었다. 2. iOS 개발 환경 적응하기Xcode와 Swift 익히기Android 개발자는 주로 Android Studio와 Kotlin을 사용하지만, iOS는 Xcode와 Swift를 기본으로 한다. 처음에는 UI 배치 방식부터 프로젝트 구조까지 모든 것이 낯설었다.Xcode: IDE의 단축키부터 빌드 및 디버깅 방식까지 적응하는 데 시간이 필..
-
Kotlin Flow에서의 Debounce와 Throttle 기법안드로이드 2025. 3. 25. 22:25
Kotlin에서는 Flow를 활용하여 비동기적으로 이벤트를 처리할 수 있으며, 이벤트가 지나치게 자주 발생하는 경우 이를 제어하는 다양한 기법이 필요합니다. Debounce와 Throttle은 이러한 상황에서 유용하게 사용되는 기법으로, 불필요한 작업을 줄이고 성능을 최적화하는 데 큰 도움이 됩니다. 본 글에서는 이 두 기법의 개념과 이를 Kotlin Flow에서 어떻게 적용할 수 있는지에 대해 살펴보겠습니다. 1. Debounce와 Throttle 기법이란?DebounceDebounce는 연속된 이벤트 중 마지막 이벤트만 실행되도록 처리하는 기법입니다.일정 시간 동안 추가적인 이벤트가 발생하지 않으면, 그때서야 마지막 이벤트를 처리하게 됩니다.즉, 빠르게 발생하는 여러 이벤트 중에서 마지막 이벤트를 처..
-
[Kotlin] invoke 함수Kotlin 2025. 1. 15. 22:15
Kotlin의 invoke()는 무엇인가?코틀린(Kotlin)에는 이름 없이 호출할 수 있는 특별한 함수, 정확히는 연산자인 invoke()가 존재합니다. 이 함수는 객체를 마치 함수처럼 사용할 수 있도록 만들어 주는 강력한 기능을 제공합니다. 아래의 예제를 통해 invoke()의 동작을 살펴보겠습니다.class Example { operator fun invoke(str: String): String { return str.toUpperCase() }}위 코드는 Example 클래스에 invoke() 연산자를 정의한 예제입니다. 이 invoke()는 일반 메서드처럼 호출할 수 있습니다:val example = Example()println(example.invoke("hello"..
-
Maverick - MVI Framework 톺아보기안드로이드 2025. 1. 14. 21:59
Mavericks - MVI Framework개별적인 상태 속성을 노출하는 대신, 하나의 불변 데이터 클래스를 사용해 뷰모델을 업데이트하고 UI를 렌더링 합니다.Airbnb 오픈소스로 만든 MVI 프레임워크로 상태관리를 쉽게 처리하기 위한 솔루션을 제공합니다.Mavericks 1.0은 RxJava 기반으로 되어 있었는데, 2.0에서 Coroutines으로 새롭게 작성되었습니다.Mavericks 2.0에서 추가된 기능1. Coroutines 사용RxJava에서 Coroutines로 전환되면서 더 간결하고 직관적인 비동기 코드 작성 가능.2. execute 개선비동기 작업의 상태를 쉽게 관리할 수 있는 기능3. Flow 지원Mavericks StateFlow와 함께 작동하며 상태 기반 데이터 스트림을 쉽게 ..
-
[패스트캠퍼스 온라인 강의 후기] 15개 프로젝트로 실무까지 끝내는 Dart & Flutter 앱 개발강의 후기 2024. 12. 2. 21:13
FastCampus의 "15개 프로젝트로 실무까지 끝내는 Dart & Flutter 앱 개발 완강" 온라인 강의를 수강하고 나의 경험을 공유하려 합니다. 먼저 이 강의를 선택하게 된 이유는 Flutter를 공부하고자 강의를 찾어보던중, Flutter 개발자인 지인의 추천을 받아 해당 강의를 결제하게 되었습니다. 강의 커리큘럼 중 각 Native와 통신할 수 있는 부분에 대해서 하나의 챕터를 통해 깊이 배울 수 있어 보여 가장 눈에 띄었습니다.수강 중 현재까지 느낀 점아직까지 완강은 못했지만 강의가 없이 인터넷 검색만으로는 얻기 힘든 내용을 전문적인 커리큘럼을 통해 순차적으로 배울 수 있어 믿고 따라갈 수 있었고, 안심이 되었습니다.또한 디지털 필기 기능과 여러 강의 자료(개발자 필수 영단어 Notion,..