Java (23) 썸네일형 리스트형 [Android] JetPack Compose Compose 단계/앱개발자가 화면이 그려지는 과정을 알아야 하는 이유 Compose 단계컴포지션(Composition) 단계@Composable 함수들이 실행되어 UI 트리(구조)를 구성함이 단계에서 상태를 읽으면 해당 상태가 변경될 때마다 리컴포지션이 발생함레이아웃(Layout) 단계컴포저블의 크기 측정 및 배치를 계산하는 단계Modifier.offset { ... }, Modifier.layout { ... } 등은 이 단계에서 실행됨이 안에서 상태를 읽으면, 컴포지션을 다시 하지 않고 레이아웃만 다시 함드로잉(Drawing) 단계실제로 화면에 그려지는 픽셀을 렌더링하는 단계이 단계에서는 Compose 상태를 거의 읽지 않음(상태 기반 애니메이션, Modifier.drawBehind 등은 간접적으로 관여) 단계별로 실행해야 하는 이유위와 같이 3가지 단계는 순차적으로.. [Android] JetPack Compose ViewModel이 필수적인 이유/UI에 상태 관리하면 생기는 문제 Composable은 'UI만 그린다' 부작용은 ViewModel이나 외부에서 처리한다Composable 안에서 직접 SharedPreferences나 DB를 만지지 말라 이게 안드로이드의 권장 방식이다.권장 방식은 따르는 게 맞다. 부작용이란?= UI를 그리는 것 외에, 다른 것을 변경하는 작업예) SharedPreferences 쓰기, ViewModel 데이터 수정 등. 로컬 변수의 값 변경예) Compose함수 안에서 items++ 후 이 값을 UI에 표시 부작용을 왜 Composable에서 하면 안되는가?한 파일에 하면 편하지 않나 의문이 들 수 있다.하지만, Composable이 디자이너,ViewModel이 개발자라고 생각하면 편하다. 화면 디자인 업무를 맡은 사람에게 데이터 저장, .. [Android] JetpackCompose을 사용하는 이유/Composable란 Jetpack Compose의 장점요즘 트렌드에 맞는 선언형 UI동적 콘텐츠로 높은 성능과 유연성위젯에 기본 언어 활용 가능(if문, 루프 등)지능적 재구성데이터, 이벤트의 변화가 있는 위젯만 재구성 → 높은 효율컴퓨팅 성능 및 배터리 수명 문제 해결 Composable 함수란?데이터를 전달받고 이를 사용하여 화면에 텍스트 위젯을 렌더링하는 간단한 구성 가능한 함수간단히 위젯을 그리기 위한 함수라고 보면 된다! Composable 함수는 순서와 관계없이 실행= 모두 독립적이어야 함. 첫 번째로 쓴 함수의 변경 사항이 두 번째 함수에 반영되지 않을 수 있는 문제를 조심해야 한다. UI를 내보내는 Compose 함수는 UI 위젯을 구성하는 대신 원하는 화면 상태를 설명하므로 아무것도 반환할 필요가 없다.컴.. [백준] 11047번 동전 0 - 그리디 알고리즘 / 탐욕 알고리즘 문제 My Code import java.io.*; public class Main { static int resultNum; public static void main(String[] args) throws IOException{ BufferedReader bf = new BufferedReader(new InputStreamReader(System.in)); // N, K 입력 받기 String str = bf.readLine(); int n = Integer.parseInt(str.split(" ")[0]); int k = Integer.parseInt(str.split(" ")[1]); int count = 0; // 동전 개수 변수 선언 및 초기화 int[] arr = new int[n]; //.. [백준] 1920번 수 찾기 - 이진 탐색 알고리즘/ 함수 이용(재귀X) 문제 My Code import java.io.*; import java.util.Arrays; import java.util.StringTokenizer; public class Main { static int[] A; static int resultNum; public static void main(String[] args) throws IOException{ BufferedReader bf = new BufferedReader(new InputStreamReader(System.in)); int n = Integer.parseInt(bf.readLine()); A = new int[n]; StringTokenizer st = new StringTokenizer(bf.readLine()); for (.. [백준] 2178번 미로 탐색 - BFS / 너비 탐색 알고리즘 / 클래스 문제 My Code import java.io.*; import java.util.LinkedList; import java.util.Queue; class ArrGraph{ private int[][] arrGrapgh; //인접 행렬 선언 boolean[][] visit; // 방문 배열 선언 private int n, m; //행과 열 선언 //상하좌우 탐색 배열 선언 및 초기화 private int[] dx = {0, 1, 0, -1}; private int[] dy = {1, 0, -1, 0}; //생성자 public ArrGraph(int n, int m) { this.arrGrapgh = new int[n][m]; this.visit = new boolean[n][m]; this.n = n;.. [Java] BFS 구현하기 - 재귀 함수&Queue이용 / 인접 리스트 ex) Code import java.io.*; import java.util.LinkedList; import java.util.Queue; public class Main { static LinkedList[] adj; static boolean[] visit; static Queue queue; public static void main(String[] args) throws IOException{ BufferedReader bf = new BufferedReader(new InputStreamReader(System.in)); //정점과 간선 선언 및 저장 String str = bf.readLine(); int n = Integer.parseInt(str.split(" ")[0]); int m .. [백준] 11724번 연결 요소의 개수 - DFS방식 / 재귀 함수 이용/ 무방향 그래프 문제 My Code import java.io.*; import java.util.LinkedList; import java.util.Stack; public class Main { static LinkedList[] linkedList; static Stack stack; static int[] result; static int index = 0; static boolean[] tf; public static void main(String[] args) throws IOException{ BufferedReader bf = new BufferedReader(new InputStreamReader(System.in)); int[] input = new int[2]; stack = new Stack(); .. 이전 1 2 3 다음