분류 전체보기 9

09

코루틴 기반의 비동기 태스크들로부터 순차적으로 여러 값 반환하도록 설계 구성 : 생산자 : 데이터 제공 및 플로로 방출 소비자 : 생산자가 방출한 데이터 수집 중재자 : 생산자와 소비자 사이에서 데이터 추가적 처리 수행 플로는 한 가지 타입의 데이터만 방출 가능flowOf() & asFlow() -> 소비자 수집 시작과 동시에 자동으로 데이터 방출flow 빌더 -> 각 값이 사용 가능해졌을 때 방출 코드 직접 작성, emit() 호출 및 스트리밍 현재 값 인자 전달 collectAsState() 사용하여 Composable 함수 안에서 상태로 변환 LaunchedEffect 사용하여 직접 collect() 호출 가능. 생산자와 소비자 사이 데이터 변경map() : 값 변환f..

Android 2025.05.31

08

전통적인 Android 앱은 여러 Activity를 전환 → 코드 복잡Jetpack Navigation Architecture Component는 이를 구성요소로 단순화NavHostController : 내비게이션 상태 및 스택 관리NavHost : 목적지들을 정의하는 컨테이너 목적지는 composable()로 정의startDestination은 초기 화면 지정val navController = rememberNavController()NavHost(navController = navController, startDestination = "home") { composable("home") { HomeScreen() } composable("customers") { CustomersScreen(..

Android 2025.05.26

07

구식Activity에 UI와 로직 혼합수명 주기 문제 및 유지보수 어려움Activity 중심현대단일 Activity 구조 권장책임 분리 구조ViewModel이 중심적 역할 UI 관련 로직과 데이터를 분리하여 Activity/Fragment를 가볍게 유지구성 변경 시에도 데이터 유지상태 기반 구현 : mutableStateOf 사용compose 연동 : viewModel() 이용해 Compose에서 ViewModel 인스턴스를 획득 ViewModel 상태와 함수를 Composable 함수에 전달 LiveData : Compose 이전부터 사용되던 데이터 관찰 도구 ViewModel 내부에서 MutableLiveData 사용 Compose에서 observeAsState()로 관찰 가능 테이블 : 행(R..

Android 2025.05.21

06

다양한 애니메이션 효과 적용 가능호출 시 부울 상태 변수 파라미터 전달enter, exit 파라미터 : 컴포저블 자식이 나타나고 사라질 때fadeIn() / fadeOut() : 투명도 기반 전환slideInVertically() / slideOutVertically() : 수직 슬라이드expandHorizontally() / expandVertically() / expandIn() : 확장 애니메이션shrinkHorizontally() / shrinkVertically() / shrinkOut() : 축소 애니메이션slideInHorizontally() / slideOutHorizontally() : 수평 슬라이드효과 조합 e.g. fadeIn() + expandHorizontally()애니메이션 동작..

Android 2025.05.14

05

자신이 실행된 스레드를 정지시키지 않으면서 비동기적으로 실행다중 스레딩 옵션 이용보다 효율적순차적 코드 작성으로 이해 및 유지보수 쉬움모든 코루틴은 명시적 스코프 안에서만 실행됨으로 그룹으로 관리GlobalScope : 앱 전체 생명주기와 동일viewModelScope : viewModel 함께 관리lifecycleScope : Activity/Fragment 생명주기에 맞춰 자동 취소rememberCoroutineScope : 컴포저블 내에서 사용cancel() : 호출 시 해당 스코프에 포함된 코루틴 취소일시 정지 및 재시작 가능 함수suspend fun mySlowTask()적절한 스레드 할당, 중지, 재시작 책임Dispatcher.Main : 메인 스레드 실행Dispatcher.IO : 네트워크,..

Android 2025.05.06

03

CH.12 코틀린 데이터 타입, 변수, 널 허용뮤터블 : 값 변경 가능var userCount = 10//초깃값 없이 변수 선언 시, 타입을 함께 선언var userCount: IntuserCount = 42이뮤터블 : 상수, 값 변경 불가능val maxUserCount = 20//변수 초기화 없이 선언할 시val maxUserCount: IntmaxUserCount = 20데이터 타입은 객체이며 다양한 작업 수행에 이용가능한 함수와 프로퍼티 제공점 표기법 이용해 접근val myString = "The quick brown fox"val uppercase = myString.toUpperCase()val userCount: Int = 10 // 타입 애너테이션val signalStrength = 2.23..

Android 2025.04.16

01

1. AndroidAndroid는 구글에서 개발한 리눅스 기반 모바일 OS (운영체제) 특징오픈소스 리눅스 기반 운영체제Java, 코틀린 언어 이용다양한 하드웨어 플랫폼 지원 구글 서비스 통합으로 다양한 서비스 접근커스터마이징 및 사용자 맞춤화etc 2. Jetpack ComposeCompose는 안드로이드 네이티브 UI를 개발하기 위한 새로운 선언형 UI 도구 키트 XML vs ComposeXML 구현은 특정 상태에 따라 UI가 어떻게 (How) 보여지는지,Jetpack Compose 구현은 특정 상태에 따라 UI가 무엇을 (What) 보여주면 되는지 Compose의 장점코틀린 기반으로 간결한 코드 작성이 가능하다.비교적 적은 양의 코드로 더 많은 작업이 가능하고 전체 버그 클래스 방지도 가능하여..

Android 2025.04.02