
만들고자 하는 서비스 우선 앱에 관한 구체적인 것들은 모두 밝힐 수 없는 상황이다. 이는 추후에 여유가 된다면, 구체적인 앱 서비스와 UI 및 프로젝트 회고를 올려보는 걸로,, 만들고자 하는 앱의 주 서비스는 '채팅'이다. 정확히는 AI 채팅 + 챗봇 형태. 챗봇

사실 굳이 바꾸지 않아도 되지만, 배경색을 맞추지 않으면 어색하거나 디자인이 답답해보여서 나는 매번 맞춰주는 편이다.방법은 생각보다 굉장히 쉽다.values -> themes.xml 들어가기style 태그 안에 순서대로 상태바와 네비게이션바 색상을 지정해준다.참고로 투

Dagger 기반의 Android용 의존성 주입 라이브러리\-> 앱에서 의존성을 쉽게 주입 & 관리B의 기능이 추가or변경되거나 형식이 바뀌면 그게 A에 영향을 미침 => 이렇게 클래스를 필요로 하는 것이 의존성!특정 클래스가 자신이 의존하고 있는 객체를 얻는 방법 3

객체 간의 의존성을 자동으로 관리하고 주입해주는 도구new로 객체를 직접 생성하는 대신, DI 라이브러리가 알아서 의존성을 제공해줌=> like "자동 배달 서비스"볼륨이 큰 프로젝트 -> 불필요한 코드 생성 (관리가 어려움)종속성 생성 불가능한 경우, lazy ini

어떤 객체(Subject)의 상태가 변하면, 그 변화를 감지한 다른 객체들(Observer)이 자동으로 반응하도록 하는 구조.대표적인 예로 LiveData를 사용할 때 다음과 같이 구현한다:liveData가 변화하면 Observer로 등록된 UI가 반응한다.이 방식은

둘 다 상태 관리용 데이터 홀더이다.값이 변경되면 이를 구독 중인 UI에 변경을 전달한다.Android 앱에서 ViewModel → UI 간 데이터 전달에 사용된다.Compose + MVI → StateFlow 추천XML + MVVM → LiveData 추천

WebSocket은 양방향 통신이 가능한 실시간 네트워크 프로토콜입니다.기존 HTTP는 클라이언트가 요청을 보내야 서버가 응답하는 단방향 구조지만,WebSocket은 서버와 클라이언트가 항상 연결된 상태로 데이터를 주고받을 수 있는 구조입니다.즉, "요청 → 응답"이

→ UI가 멈추면 사용자 경험이 안 좋아짐. 그래서 비동기 처리 필수"앱 내에서 동시에 여러 일을 하게 해주는 실행 단위"화면을 그리는 스레드여기서 시간이 오래 걸리는 작업을 하면 앱이 멈춘 것처럼 보임 (ANR 발생)시간이 오래 걸리는 작업(API 호출, 파일 I/O

앱이 실행 중이 아니거나, UI와 직접 관계없는 작업을 처리하는 방식네트워크 통신, DB 접근, 예약 알림, 장시간 작업 등

컴포저블이 recomposition 될 때까지 값을 기억 앱이 백그라운드로 갔다 돌아오거나 화면이 recreate 되면 값이 사라짐내부적으로는 ViewTree에 상태를 저장하지 않고, 메모리 내에서만 유지됨❗ recomposition에는 유지되지만, 화면 회전/프로세

루틴 저장 기능을 설계하면서 가장 핵심이 되었던 구조 중 하나는 CommandDevice를 활용한 직렬화(Serialization) 과정이다. 객체(Object) 형태의 데이터를 → 문자열(String) 형태로 변환하는 작업.주로 JSON이나 XML 같은 포맷으로 변

루틴 생성 기능 만들면서 제일 고민됐던 게 화면 이동할 때 상태를 어떻게 유지하느냐였다.예를 들면, 제스처 고르고, 기기 상태 설정하고, 아이콘 고르고... 이게 다 다른 화면에서 이뤄지는데,이걸 다 ViewModel이 기억하고 있어야 한다는 얘기.그래서 사용한 게 바

LUMOS 프로젝트에서 가장 까다로웠던 부분 중 하나는 SmartThings의 기기 제어 명령 구조였음.같은 기기 타입이라도 어떤 건 switchLevel, 어떤 건 fanSpeed, 또 어떤 건 아예 구조가 다름.그래서 기기 상태를 SmartThings 명령(JSON

루틴 자동화를 구성할 때, SmartThings API로 보내야 할 데이터는 대부분 JSON 형태로 구성된다.하지만 앱 내부에서 상태는 Kotlin 객체로 관리하게 되니까,이걸 JSON으로 바꾸는 직렬화 과정이 꼭 필요하다.그럴 때 자주 쓰는 게 바로 Gson.Gson