본문 바로가기

전체 글

(25)
PendingIntent pending intent에 대해 학습한다. PendingInetnet  1. PendingIntent 란 ?OS 시스템에서 유지하는 참조이다. 별도의 애플리케이션이 메모리에 살아있는지 아닌지 관계 없이 실행된다. 애플리케이션 A가 살아 있지 않아도 애플리케이션 B가 애플리케이션 A를 대신해 사전에 적의된 작업을 실행 할 수 있도록 애플리케이션 B가 PendingIntent를 전달할 수 있다.Intent를 가지고 있는 클래스로 원하는 특정 시점에 Intent를 수행할 수 있도록 하는 특징을 가지고 있다. 또, 다른 프로세스에 Pending Intent를 전달하게 된다면 전달 받은 앱은 그 Intent를 본인의 소유처럼 수행 가능한 권한을 가지게 된다. 이런 이유로 다른 앱이 프로세스를 점유하고 있을 경우..
[Compose] 상태관리 컴포저블 상태 관리에 대해 공부한다. Composables 상태  1. Composables 상태란?컴포즈에서 State(상태)는 UI가 가지고 있는 현재 데이터를 의미한다. 버튼이 눌렸을 경우 카운터가 증가하는 UI가 있다고 가정하면 카운터값이 상태가 된다. 상태는 변할 수 있는 데이터이고, UI는 이 상태를 기반으로 리컴포지션해 최신 데이터를 반영하게 된다.2. 상태의 종류호이스팅되지 않은 상태 (Local State)컴포즈 내부에서 직접 상태를 관리하는 경우로 remeber, mutableStateOf를 활용해 간단하게 저장해 사용이 가능하다.@Composablefun Counter(){ var count by remember { mutableStateOf(0) } Column(hori..
Room + ALL WAL(Write-Ahead Logging) 스마트폰 내장 DB에 데이터를 저장하는 라이브러리인 Room에 대해 학습한다. Room  1. Room 탄생 배경기존에 안드로이드는 SQLite를 이용해 DB 작업을 했지만 여러 문제가 있었다.SQL 쿼리 관리의 어려움쿼리가 문자열로 작성되기 때문에 컴파일 시 문법 오류를 잡기 어려워 런타임 오류로 이어질 가능성이 크다.데이터베이스 접근 코드의 반복성보일러 플레이트 코드가 많아져 생산성이 떨어진다.스레드 이슈별도의 쓰레드를 생성해 작업이 필수였다.코드의 복잡성DB 생성, 쿼리 작성, 데이터 읽기, 쓰기 등 모든 작업을 SQLiteOpneHelper를 통해 직접 처리해야했다.이런 문제를 해결하고자 Google은 Room을 만들고 사용을 권장하고 있다.2. Room이란 ?Room은 SQLite를 추상화해 코..
State in Jetpack Compose Jetpack Compose의 상태  |  Android Developers이 Codelab에서는 상태를 관리하여 다양한 기능의 대화형 Compose 애플리케이션을 빌드하는 방법을 알아봅니다.developer.android.com 안드로이드 Compose 상태에 관련된 코드랩을 작성하고 분석한다. 1. 실행 화면2. 코드@Composablefun WaterCounter(modifier: Modifier = Modifier) { Column(modifier = modifier.padding(16.dp)) { var count by remember { mutableStateOf(0) } if (count > 0) { var showTask by remembe..
함수 정의와 호출 (컬렉션, 함수, 확장 함수, 로컬 함수와 확장) Collection  1. 컬렉션이란?컬렉션은 자바에서 제공하는 자료구조를 코틀린에서도 편리하게 사용하기 위해 제공되는 라이브러리를 의미한다. 크게 List, Map, Set이 Collection이며 2가지 타입을 제공한다.가변으로 읽기, 쓰기가 모두 가능한 Mutable 타입불변으로 읽기만 가능한 Immutable 타입컬렉션도 타입을 추론해주기 때문에 빈 컬렉션을 생성하는 경우가 아닌경우 타입을 명시적으로 알려주지 않아도 괜찮다. 2. List데이터를 저장하거나 삭제할 때 순서를 지키는 컬렉션이며 인덱스를 이용해 직접 접근이 가능하다.중복된 값을 가질 수 있고 추가, 삭제, 교체가 쉽다.// 읽기만 가능하다.val list = listOf(1,2,3)// 읽고 쓰기가 가능하다.val mutableLis..
network_study project 이슈 정리 24.09.30😮‍💨  이슈 발생 처음으로 혼자 Clean Architecture + Repository Pattern + MVVM 프로젝트를 처음부터 만들려고 하니깐 이슈가 빵빵 터졌다..🤔  문제 원인 추측기존에는 다른 환경에서 동작될 일이 없다고 생각해 domain에 안드로이드 종속성이 조금은 들어가있었다. 하지만 이번 프로젝트는 정말 클린아키텍처의 원칙을 지키면서 구조를 만들고 싶었다.🧐  문제 해결 과정gralde에 관련되어 스터디를 진행했다😎  느낀점domain에서 android는 과감하게 날려버리자 ..!  24.10.22😮‍💨  이슈 발생 좋아요 데이터 저장을 ProtoDataStore를 사용하기로 했다. 처음 세팅 과정부터 오류가 복터졌다..🤔  문제 원인 추측Gradle에..
Compose 안드로이드 Compose 공식 문서를 공부한다.  Jetpack Compose 시작하기  |  Android Developers이 페이지는 Cloud Translation API를 통해 번역되었습니다. Jetpack Compose 시작하기 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. Jetpack Compose는 네이티브 Android UIdeveloper.android.com  Compose  1. Compose란 ?컴포즈는 Jetpack에 포함된 도구로 네이티브 UI를 빌드하기 위한 최신 툴 키트이다. Kotlin API로 UI를 개발해 간단하고 빠르게 개발을 도와준다. 2. Compose의 장점간단한 코드Android View(.xml 파일)을 사용할때 보다 더 적..
메모리 구조 자바 메모리 구조에 대해 학습힌다. Memory Structure 1. 메모리 구조란?프로그램이 실행되게 되면 운영체제는 프로그램 정보를 메인 메모리에 공간을 할당해주게 된다. 때문에 프로그램이 실행 되기 위해선 메모리에 로드되어야한다. 메모리에 올라간 데이터를 읽고 쓰면서 코드가 동작되게 된다. 1. 코드 영역 (Text Segment)컴파일된 코드가 저장된다. CPU가 참조해 프로그램을 수행하는 영역이다. 읽기 전용이기 때문에 메모리에 올라간 순간 부터 수정이 불가능하며 모든 함수와 메소드가 저장된다.2. 데이터 영역 (Data Segment)프로그램이 시작될때 데이터가 저장되고 종료 될때까지 메모리를 유지한다. 전연 변수 프로그램 전체에서 접근이 가능하다. 정적 변수 한번 초기화 되면 프로그램이 종..