분류 전체보기
-
안드로이드 Coroutine Flow - 3 (StateFlow)안드로이드 학습/Android 기술면접 대비 2024. 11. 28. 13:54
안드로이드 앱 아키텍처 예제를 보면 Coroutine과 Flow 뿐만 아니라 ViewModel에서 StateFlow나 SharedFlow를 사용하는 것을 보았다. MVVM 패턴에서 ViewModel 내부에서 자주 사용했던 것은 LiveData였기 때문에 StateFlow는 무엇이 다른지 학습해볼 필요성이 있어 추가적으로 학습을 해봤다. Flow와 비교해보기 위해 우선 LiveData에 대해 간략하게 알고 넘어가 보자LiveData :LiveData 같은 경우 안드로이드의(Activity나 Fragment의 LifeCycler을 인식하는 데이터 Holder 클래스다. 그래서 LiveData는 생명주기 관리가 따로 필요하지 않은 편리함 때문에 MVVM 아키텍처를 사용하면서 ViewModel 내에서 자주 사..
-
안드로이드 Coroutine Flow - 2 (Flow 사용)안드로이드 학습/Android 기술면접 대비 2024. 11. 28. 10:48
1편에서 flow 사용법을 app architecture 예제와 같이 보긴 했지만 좀더 쉽게 이것 저것 활용해 보기 위해 예제를 새로 다시 하나 만들었다. 1. Producer(생산자)private fun coroutineFlowProducer(): Flow { val flowBuilder: Flow = flow { for (num in 1..10) { emit(num) } } return flowBuilder} 먼저 1 부터 10까지 방출하는 flow builder를 만들었다. 2. Intermediaryprivate fun coroutineFlowIntermediary(flowBuilder: Flow): Flow { val newFl..
-
안드로이드 Coroutine Flow - 1 (Flow란?)안드로이드 학습/Android 기술면접 대비 2024. 11. 27. 13:48
안드로이드 App Architecture를 학습하면서 여러 프로젝트를 살펴봤을때 Data Layer(Repository) 부분에서 Coroutine과 함께 flow를 사용하는 하여 데이터를 처리해주는 것을 보았다. 그래서 이번에 flow가 무엇인지 학습해보고 개인 프로젝트에 적용해보려고 한다. 1. Flow란?Flow는 Coroutine 라이브러리 내에서 제공하는 비동기 데이터 스트림입니다. Flow는 데이터 스트림을 비동기적으로 처리하게 해주고 또한 연속적인 데이터 흐름을 처리하기에 적합한 도구이다. Flow는 Coroutine을 기반으로 빌드되며 여러 값을 제공할 수 있다. Flow는 비동기 적으로 계산되는 데이터 스트림 개념이다. 내보낼 값과 동일한 유형이어야 한다. ( Flow는 intege..
-
Compose 학습 - 2 (Composable 함수)카테고리 없음 2024. 11. 23. 21:42
chapter 19 : 컴포저블 함수 개요컴포저블 함수는 Jetpack Compose를 이용해 안드로이드 앱용 User Interface를 구성하는 빌딩 블록이다.이번장에서는 상태 함수, 비상태 함수, 함수 구문, 파운데이션 컴포저블과 머티리얼 컴포저블의 차이 등을 다룬다. Composable 함수 :Composable 함수는 Compose로 사용자 인터페이스를 만들기 위해 이용하는 특수한 코틀린 함수다. @Composable annotation을 사용해서 선언하고 코틀린의 일반 함수와 구별된다. Composable 함수에서는 코틀린 표준 함수를 호출하지만, 표준 함수에서는 Composable 함수를 호출할 수 없다. 전형적인 Compose 기반 UI는 내장 Composable과 Custom Compos..
-
Compose 학습 - 1 (TextView & Slider)책 내용 정리/핵심만 골라 배우는 젯팩컴포즈 2024. 11. 23. 21:18
Chapter 3class MainActivity : ComponentActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContent { ComposeStudyTheme { // A surface container using the 'background' color from the theme Surface( modifier = Modifier.fillMaxSize(), color = MaterialT..
-
[Android_MVVM_CleanArchitecture] 2. Domain Layer오픈소스 공부/Android_MVVM_CleanArchitecture 2024. 11. 21. 15:18
https://github.com/Gun-HelloWorld/Android_MVVM_CleanArchitecture GitHub - Gun-HelloWorld/Android_MVVM_CleanArchitecture: Android MVVM Clean ArchitectureAndroid MVVM Clean Architecture. Contribute to Gun-HelloWorld/Android_MVVM_CleanArchitecture development by creating an account on GitHub.github.com DataLayer 구성 :더보기 Repository에서 RemoteDataSource와 LocalDataSource에서 가져온 데이터를 Mapper를 통해 앱에 알맞게 변..
-
[Android_MVVM_CleanArchitecture] 1. Data Layer오픈소스 공부/Android_MVVM_CleanArchitecture 2024. 11. 21. 11:29
클린 아키텍처를 학습하면서 MVVM에 대한 학습을 했지만 실제로 어떻게 적용해야 할지 모르겠어서 Github 여행을 하려고 한다. 첫 시작은 Android_MVVM_CleanArchitecture 이름의 프로젝트이다.https://github.com/Gun-HelloWorld/Android_MVVM_CleanArchitecture GitHub - Gun-HelloWorld/Android_MVVM_CleanArchitecture: Android MVVM Clean ArchitectureAndroid MVVM Clean Architecture. Contribute to Gun-HelloWorld/Android_MVVM_CleanArchitecture development by creating an acco..
-
QUERY_ALL_PACKAGES 권한회사 생활/기타 지식들 2024. 11. 19. 10:58
회사에서 다른 회사 솔루션인 백신 SDK를 설치하는 업무를 할당 받았다. 백신 SDK는 다른 앱들의 정보를 얻어서 문제가 있는지 아닌지를 확인하기 때문에 다른 앱의 정보가 필요하다. 다른 앱의 정보를 얻는 방법은 2가지 정도인 것 같다. In App 방식 (QUERY_ALL_PACKAGES 권한 추가) App to App 방식 (Manifest.xml에 queries 태그 추가)In App 방식은 구글에서 제시하는 이유에 포함되어야 하고 그 이유를 출시하면서 설명하고 통과해야 사용가능하다. 대신 설치된 모든 앱의 정보를 획득할 수 있다. App to App 방식은 그냥 사용가능 하지만 앱의 정보를 얻는데 제한이 있다. 플레이 스토어의 허가 범위를 통과한다면 In App 방식이 좋다고 생각하지만 통과..
-
안드로이드 코루틴 (Coroutine Builder) 코드안드로이드 학습/Android 기술면접 대비 2024. 11. 18. 13:16
Coroutine Builder에는 주로 4가지가 있다. 1. launch 사용 목적: 결과를 반환하지 않고 코루틴을 실행.특징:반환값이 없는 Job 객체를 반환함.주로 fire-and-forget 작업(결과보다는 실행 자체가 중요한 작업)에 적합.예외가 발생해도 기본적으로 상위 코루틴에 전달됨.private fun coroutineLaunch() { val sb = StringBuilder() runBlocking { setStringWithStringBuilder(sb, "1. Thread Name : ${Thread.currentThread().name}", resultTextView) val result = launch { setStringW..
-
(DI - 1편) 의존성 주입이란안드로이드 학습/Android 기술면접 대비 2024. 11. 16. 12:58
의존성 학습 시리즈 3편 : (DI - 1편) 의존성 주입이란(DI - 2편) 안드로이드 의존성 수동 주입(DI - 3편) DI 라이브러리 Hilt https://developer.android.com/training/dependency-injection?hl=ko Android의 종속 항목 삽입 | Android Developers이 페이지는 Cloud Translation API를 통해 번역되었습니다. Android의 종속 항목 삽입 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. 종속 항목 삽입(DI)은 프로그래developer.android.com 안드로이드에서 아키텍처를 학습을 하다 보니 자주 보는 것이 DI(Dependency Injection)였다.Depen..