컴포넌트 = 앱의 구성 단위이며, 컴포넌트 여러 개를 조합하여 하나의 앱을 만듦각 컴포넌트들은 하나의 독립적인 형태로 존재함각 컴포넌트들은 고유의 기능을 수행각 컴포넌트들은 인텐트를 통해 서로 상호작용함.UI 화면 담당 컴포넌트(전면) - 사용자와 상호작용activit
단순 기록용
애플리케이션 현재 상태의 맥락(Context)를 의미애플리케이션과 액티비티에 대한 정보를 얻기 위해 사용하는 것앱에 관해 시스템이 관리하고 있는 정보에 접근 (resource, class, 애플리케이션 환경 정보)안드로이드 시스템 서비스에서 제공하는 API 호출 (st
Activity, fragment가 시작되어서 종료되는 순간까지의 주기 Activity를 생성할 때 실행되는 콜 백으로 필수적으로 구현해야한다전체 수명 주기 동안 한 번만 발생하는 기본 애플리케이션 시작 로직onCreate()가 실행되면, Activity는 $crea
클래스 간에 앱 책임을 할당하는 데 도움이 되는 가이드 라인을 제공하는 것일반 적 아키텍쳐 원칙 2가지관심사 분리 각각 별개의 책임이 있는 여러 함수 클래스로 앱을 나눠야 한다. 모델에서 UI 구동하기 모델 (가능한 영구 모델) 에서 UI를 만들어야 한다 → 모
UI 요소의 수정을 위한 키 개념Composable 함수에 스타일, 레이아웃, 클릭 처리 등 다양한 동작 적용 가능padding, fillMaxSize(), align …여러 Modifier을 체인 형식으로 연결해 한 Composable에 적용할 수 있다기본 매개변수
Bundle은 클래스로, 키-값 쌍(key-value pairs)을 저장할 수 있는 구조로, 액티비티의 상태를 저장하고 복원하는 데 사용됨사용자가 회전(rotation)이나 다른 구성 변경(configuration change)을 할 때, 액티비티는 파괴되었다가 재생성
Composable 함수 호출 간에 데이터를 기억하는데 사용된다.Composable 함수가 다시 실행하더라도, rember 을 사용해 저장된 값은 재생성되지 않고 이전에 저장된 상태를 유지한다 ( 성능 최적화 )주로 UI 상태 저장에 사용되고, 사용자의 상호작용이나 외
데이터 클래스를 사용하면, 메모리 내 데이터로 쉽게 작업이 가능하지만 데이터 유지와 관련해서는 이 데이터를 데이터 베이스저장소와 호환되는 형식으로 변환해야 한다. → 데이터 엑세스 및 저장을 위한 쿼리 필요Room은 앱 데이터 베이스의 테이블로, 이를 사용해 테이블의
컴포저블의 크기, 레이아웃, 동작 및 모양 변경접근성 라벨 등 정보 추가사용자 입력 처리요소 클릭 가능, 스크롤, 드래그, 확대/축소 가능size : 자신의 크기 지정 이때, 상위 요소에서 수신된 제약조건을 충족하지 않는 경우 적용되지 않음 → 해결하기 위해서는 \*
날짜 선택기능 설명 : 사용자가 일기를 입력할 날짜를 선택할 수 있도록 한다기술 및 라이브러리 : DatePicker ( Calendar View)앱에 선택 도구 추가 | Views | Android Developershttps://develop-oj.
모듈 수준 gradle 파일에 Room 라이브러리의 종속 항목 추가App 수준 gradle 파일에 추가KSP, Room 버전 관리 관련 문서Compose와 Kotlin 버전 관리ID : 각각의 일기를 구분할 수 있는 PK가 필요createdDate : 일기를 쓰는 날짜
전체 코드ViewModel 내에서 비동기 작업을 수행할 때 사용ViewModel이 파괴될 때 자동으로 취소되므로 메모리 누수를 방지하는 데 도움launch는 코루틴을 시작하는 코루틴 빌더로 새 코루틴을 시작하면, 그 코루틴 내에서 비동기 작업을 실행할 수 있다.laun
단일 활동 아키텍처(Single Activity architecture) 지원: 모던 안드로이드 개발에서 권장되는 방식으로, 하나의 Activity가 여러 Fragment를 호스트하는 구조를 쉽게 구현할 수 있게 해준다.안전한 인자 전달: 타입 안전성을 보장하는 방식으
전체 코드Single-Activity Architecture를 구현하기 위해 사용된다.NavHost가 복잡해질 수 있기 때문에 따로 빼서 사용한다.함수를 인자로 전달할 수 있고 navHostController 를 인자로 전달받을 수 있는데 각각의 장 단점이 확실하고,
다국어 지원: strings.xml 파일을 사용할 때, 앱의 다국어 지원을 위해 각 지원하는 언어별로 별도의 strings.xml 파일을 관리할 수 있다. 여러개의 UI를 만들지 않아도 string.xml 파일만 바꾸면 사용이 가능하다. 이렇게 되면 여러 나라의 사용자
Intro 다이어리 앱 만들기를 하면서 가장 어려웠던게 뭐에요? 라고 물어보면 진짜 무조건 "UI 상태 관리요;;" 라고 할 것이다. 스프링만 했던 나에게 상태관리란 참 낯선 존재.. 그리고 뭐 어케 작동하는지 알 수 있어야지 모든 글은 노션에 개인적으로 공부한 글을
아니 컴포즈는 레이아웃 관련해서 왜이렇게 많은것인가..!! 공식문서에 너무나 이쁘게 잘 정리되어 있지만, 공식문서만 보면 머리가 삥글삥글.. 이거 나만이래? 암튼.. 자주 쓰고 한번쯤 읽어보면 좋은 레이아웃 관련 정보들을 직접 사용해보고 필요한 것들 위주로 정리해보았다
Intro. Compose의 기본 테마 변경이 계속 되지 않아서 버튼, TextField 하나 하나 색을 지정해서 변경했는데 참고 참고 참다가 귀찮음이 폭발 일보 직전인 이제야 테마 변경 문제를 해결했다🤣🤣 이 문제로 엄청 오랜 시간을 고생했는데 엄청 쉽게 해결