본문 바로가기

안드로이드65

[Compose] Side Effect와 Effect API(LaunchedEffect, rememberCoroutineScope 등) Side Effect (부수 효과)Composable 함수를 벗어난 곳에서 앱의 state(상태) 변경이 일어나는 것Composable 은 Side Effect 가 없는 것이 좋으나, 앱 상태를 변경해야 하는 경우 Side Effect 를 예측 가능한 방식으로 실행되도록 Effect API 를 사용해야 한다.한 번만 일어나는 UI 이벤트로 변경 사항이 state 로 관리될 필요가 없는 경우 (SnackBar, ToastMessage 등)다른 Screen 으로 이동하는 Navigation (사용자 인터랙션(예시: 버튼 클릭)에 의해 발생하는 경우 필요 없음)system services 들과 상호작용 하는 것Coroutine 을 이용한 네트워킹이나 디스크 IO 1. LaunchedEffect@Composab.. 2024. 11. 23.
[Compose] TextField에서 엔터키 사용하기 https://velog.io/@dddiri/TextField%EC%97%90%EC%84%9C-%EC%97%94%ED%84%B0-%ED%82%A4-%EC%82%AC%EC%9A%A9%ED%95%98%EA%B8%B0 Jetpack Compose TextField에서 엔터키 사용하기TextField의 keyboardActions, keyboardOptions 속성을 이용하여 엔터키를 자유롭게 커스텀할 수 있습니다. 물론 엔터키 외의 다른 키도 커스텀 할 수 있지만, 이번 글에서는 엔터키를 커스텀 하는 방법만 다velog.io@Composablefun InputText( ... submit: () -> Unit = {}) { val keyboardController = LocalSoftwareK.. 2024. 11. 21.
[Kotlin] 에러(Error)와 예외(Exception) https://inpa.tistory.com/entry/JAVA-%E2%98%95-%EC%97%90%EB%9F%ACError-%EC%99%80-%EC%98%88%EC%99%B8-%ED%81%B4%EB%9E%98%EC%8A%A4Exception-%F0%9F%92%AF-%EC%B4%9D%EC%A0%95%EB%A6%AC ☕ 자바 에러(Error) 와 예외 클래스(Exception) 💯 이해하기프로그래밍의 오류 종류 프로그램에서 오류가 발생하면 시스템 레벨에서 프로그램에 문제를 야기하여 원치 않는 버그를 일으키거나, 심각하면 실행 중인 프로그램을 강제로 종료시키도 한다.inpa.tistory.com에러(error) : 프로그램 코드에 의해서 수습될 수 없는 심각한 오류예외(exception) : 프로그램 코드.. 2024. 11. 20.
[Data Structure][Kotlin] 해시(Hash) 해시(Hash)단방향 암호화 기법평문을 암호문으로 바꾸는 암호화는 가능하지만, 암호문을 평문으로 바꾸는 복호화는 불가능하다.입력된 값을 산술 연산을 통해 출력 데이터가 있는 위치를 식별할 수 있는 값으로 변환하는 것*해시 함수를 통해 입력 값이 데이터가 있는 곳을 알 수 있는 출력 값으로 연결될 수 있으므로, 해시 함수는 입력 값을 출력 값으로 mapping(매핑)해주는 함수라고도 한다.해시 함수 : 임의의 길이를 가진 데이터를 입력받아 고정된 길이의 값, 즉 해시값을 출력하는 함수 해시 맵(HashMap), 해시 테이블(Hash Table)해시 기법을 사용하여 데이터를 보관하는 자료구조데이터에 접근하거나 검색할 때 데이터들을 순회하면서 일일이 비교하는 일반적인 자료구조와 다르게 key 값을 통해 한 번.. 2024. 11. 19.
[Compose] 목록 및 그리드 목록 및 그리드  |  Jetpack Compose  |  Android Developers이 페이지는 Cloud Translation API를 통해 번역되었습니다. 목록 및 그리드 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. 많은 앱에서 항목의 컬렉션을 표시해developer.android.com@Composablefun MessageList(messages: List) { Column { messages.forEach { message -> MessageRow(message) } }}스크롤이 필요하지 않은 경우 (방향에 따라) 간단한 Column 또는 Row 를 사용하여 다음과 같이 목록을 반복하여 각 항목의 콘.. 2024. 11. 17.
[Android] 이미지 최적화(로드 개선) 해상도화면 또는 인쇄 등에서 이미지의 정밀도를 나타내는 지표이미지를 표현하는 데 몇 개의 픽셀 또는 도트로 나타냈는지 그 정도를 나타내는 말이다.즉, 해상도가 높다는 말은 1인치 당 찍게 되는 점의 수가 많기 때문에 선명하다는 것이다.점의 개수가 많아진다는 것은 메모리가 더 필요하고 처리 과정이 느려질 수 있다는 것이기 때문에, 적절한 해상도를 사용해야 한다. 문제점이미지는 일반적인 애플리케이션 UI 에 비해 크기가 크다.더 높은 해상도의 이미지는 특별한 이점 없이 메모리를 더 많이 차지하며 즉시 추가로 확장해야 하는 부가적인 성능 오버헤드가 발생한다.예시) 시스템 갤러리 애플리케이션은 Android 기기의 카메라를 사용하여 촬영한 사진을 표시하는데 일반적으로 이러한 사진은 기기의 화면 밀도보다 해상도가.. 2024. 11. 12.
[Android] Image Loader Library Android Memory안드로이드는 앱 내에서 사용할 수 있는 힙 메모리가 정해져 있기 때문에 이미지 로더 라이브러리를 사용하지 않은 상태에서 많은 이미지를 사용하거나 고해상도 이미지를 이미지뷰에 로드해야 하는 경우 메모리 부족으로 OOM(Out Of Memory)이 발생하게 된다.즉, 안드로이드 애플리케이션은 프로세스당 메모리 사용량에 제한이 있다. Honeycomb 미만Dalvik heap 영역 : Java 객체를 저장하는 메모리External 영역 : Native heap 의 일종으로 네이티브의 비트맵 객체를 저장하는 메모리Dalvik heap 영역과 External 영역은 각각 프로세스당 메모리 한계까지 확장될 수 있다.Dalvik heap 영역과 External 영역의 Dalvik heap f.. 2024. 11. 11.