반응형
반응형
안녕하세요 날씨가 많이 더워지고 있네요.. 덥다보니 축 처지게 되는데.. 학습을 게을리 하지말고 하루하루 배우는 시간이 되게 해야겠습니다 오늘은 Android에서 사용되는 StateFlow에 대해 포스팅하려 합니다. StateFlow에 대해 학습하려면, Flow에 대해 먼저 하시면 이해에 도움이 되실 것 같습니다. StateFlow란? StateFlow란 특정 State를 유지, 관찰 Collector에 현재와 새로운 State를 업데이트 현재 State 값은 StateFlow.value로 읽을 수 있습니다. class LatestNewsViewModel( private val newsRepository: NewsRepository ) : ViewModel() { // 다른 클래스의 상태 업데이트를 방지..
안녕하세요 오늘은 이전 글 이어서 Flow에 대해 정리해보려고 합니다. 1. Exception 처리 class LatestNewsViewModel( private val newsRepository: NewsRepository ) : ViewModel() { init { viewModelScope.launch { newsRepository.favoriteLatestNews // 중간 연산자 catch // Exception이 발생하면, catch 처리하고 UI를 업데이트 합니다. .catch { exception -> notifyError(exception) } .collect { favoriteNews -> // 최신 인기 뉴스로 업데이트 } } } } 위의 코드에서 collect, Exception이 ..
안녕하세요 6월 말이 되면서 계속 더워지고 있고, 지쳐서 공부에 소홀해지기 쉬운데, 하루에 단 30분이라도 꾸준히 작성하자는 마인드가 필요해보입니다 오늘은 Android Flow에 관해서, 포스팅을 작성해보려 합니다. (아래는 Flow와 관련은 없지만 이미지를 넣고싶어서 넣어봤습니다) Flow란? 비동기적으로 실행될 수 있는 데이터 스트림 Flow의 주요한 개념은 순차적으로 여러 값을 출력, 단일 값만을 출력하는 suspend function과 비교할 수 있습니다. 예를들어, Flow를 사용하여 DB로부터 실시간 업데이트를 받을 수 있습니다. Flow에 선언된 타입은 출력된 값과 같은 타입입니다. (ex) Flow는 integer 값을 출력하는 Flow 입니다) 순차적인 값을 출력하는 Iterator와 ..
안녕하세요 오늘은 Kotlin의 Coroutine에 대해서 간략하게 포스팅 해보겠습니다. Coroutine 이란? 비동기로 실행되는 코드를 단순화하기 위해 Android에서 사용할 수 있는 동시성 디자인 패턴 메인 스레드를 차단하고 앱이 응답하지 않게 만들 수 있는 작업을 관리하는데 도움이 됩니다 특징 Lightweight : 실행 중인 스레드를 차단하지 않는 Suspend 로 인해 단일 스레드에서 많은 Coroutine 실행 가능 메모리 누수 감소 : 구조화된 동시성 (Structured concurrency)을 사용하여 범위 내에서 작업을 실행 * 구조화된 동시성 새로운 Coroutine은 Coroutine의 수명을 구분하는 특정 CoroutineScope에서만 시작이 가능합니다. 손실되지 않고 누출..
안녕하세요 역시나 처음 그 기세(?)는 어디가고 작성일의 텀이 길어지고 있네요 하루에 한번이 안되면 이틀에 한번, 한줄이라도 작성해서 무언가 남기는 하루가 되어야 겠습니다. 오늘 작성해 볼 내용은 Retrofit 입니다. Retrofit이란? Retrofit 은 서버 안드로이드 간 REST API 수행을 돕는 라이브러리입니다. 간단하게 장점을 설명하자면, 1. 구현이 간단하다 코드량이 비교적 적어 빠르게 구현이 가능하다 이 부분은 또다른 Library인 Volley와 비교를 해야하는데, 실제 사용해보진 않아서 확실하진 않다. 2. 가독성 Annotation을 활용하여 HTTP Method 코드 작성으로 코드가 읽기 쉽다. 3. 성능 AsyncTask는 Deprecated 되었음 위와 같이, Volley와..
안녕하세요 TIL이라고해서 하루하루 작성하려고는 하는데, 개발 공부하는데 집중하다보니, 글쓰는 시간 내기가 애매해지네요. 꾸준히라도 작성해야 겠습니다 ^^ 오늘은 Jetpack Compose로 List 형태의 데이터 출력을 구현해보려고 합니다. IistItem 구성 List 구성 전 List의 각각 데이터가 어떻게 출력될지 구성합니다. Column(modifier.weight(2.0f)) { Text( text = shopData.shopName, fontSize = 18.sp, fontWeight = FontWeight.Bold ) Text( text = shopData.address, fontSize = 14.sp ) } 임시로 생성해놓은 Shop 데이터를 출력하고, 상단에 이름, 하단에 주소를 나오..