일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- 안드로이드 라이선스
- ar vr 차이
- rxjava disposable
- 안드로이드 유닛테스트란
- android ar 개발
- 플러터 설치 2022
- 자바 다형성
- jvm 작동 원리
- 안드로이드 라이선스 종류
- Rxjava Observable
- 클래스
- 서비스 쓰레드 차이
- 큐 자바 코드
- 멤버변수
- 스택 자바 코드
- rxjava hot observable
- 안드로이드 유닛 테스트 예시
- 안드로이드 os 구조
- jvm이란
- 서비스 vs 쓰레드
- 안드로이드 레트로핏 crud
- ANR이란
- 안드로이드 레트로핏 사용법
- 2022 플러터 설치
- android retrofit login
- 스택 큐 차이
- 2022 플러터 안드로이드 스튜디오
- 객체
- rxjava cold observable
- 안드로이드 유닛 테스트
- Today
- Total
목록분류 전체보기 (872)
나만을 위한 블로그
https://developer.android.com/topic/architecture/ui-layer/events?continue=https%3A%2F%2Fdeveloper.android.com%2Fcourses%2Fpathways%2Fandroid-architecture&hl=ko#article-https://developer.android.com/topic/architecture/ui-layer/events&hl=ko UI 이벤트 | Android 개발자 | Android Developers이 페이지는 Cloud Translation API를 통해 번역되었습니다. UI 이벤트 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. UI 이벤트는 UI 레이어에서 UI 또..
https://developer.android.com/topic/architecture/data-layer?hl=ko 데이터 레이어 | Android 개발자 | Android Developers이 페이지는 Cloud Translation API를 통해 번역되었습니다. 데이터 레이어 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. UI 레이어에는 UI 관련 상태 및 UI 로직이developer.android.com UI 레이어에는 UI 관련 상태, UI 로직이 포함되지만 데이터 레이어에는 앱 데이터, 비즈니스 로직이 포함된다.비즈니스 로직은 앱에 가치를 부여하는 요소로 앱 데이터 생성, 저장, 변경 방식을 결정하는 실제 비즈니스 규칙으로 구성된다.이렇게 관심사를 분리하..
https://developer.android.com/topic/architecture/domain-layer?hl=ko 도메인 레이어 | Android 개발자 | Android Developers이 페이지는 Cloud Translation API를 통해 번역되었습니다. 도메인 레이어 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. 도메인 레이어는 UI 레이어와 데이터 레developer.android.com 도메인 레이어는 UI 레이어, 데이터 레이어 사이의 선택적 레이어다. 이 레이어는 복잡한 비즈니스 로직, 여러 뷰모델에서 재사용되는 간단한 비즈니스 로직의 캡슐화를 담당한다.모든 앱에 이런 요구사항이 있는 건 아니라서 이 레이어는 선택사항이다. 따라서 복잡성을..
https://developer.android.com/topic/architecture/ui-layer?hl=ko UI 레이어 | Android 개발자 | Android Developers이 페이지는 Cloud Translation API를 통해 번역되었습니다. UI 레이어 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. UI의 역할은 화면에 애플리케이션 데이터를developer.android.com UI(User Interface)의 역할은 앱 데이터를 표시하고 사용자 상호작용(버튼 클릭 등)의 기본 지점으로도 기능하는 것이다.사용자 상호작용 또는 외부 입력(네트워크 응답 등)으로 데이터가 바뀔 때마다 이를 반영하도록 UI가 업데이트돼야 한다. 그러나 데이터 레이..
안드로이드 디벨로퍼에선 앱 아키텍처 가이드 문서들을 통해 안드로이드 개발자들에게 권장하는 아키텍처를 설명하고 있다. https://developer.android.com/topic/architecture?hl=ko 앱 아키텍처 가이드 | Android 개발자 | Android Developers이 페이지는 Cloud Translation API를 통해 번역되었습니다. 앱 아키텍처 가이드 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. 이 가이드에는 고품질의 강력한developer.android.comhttps://developer.android.com/topic/architecture/recommendations?hl=ko Android 아키텍처 권장사항 | An..
대부분 앱은 3계층으로 구분할 수 있다. 데이터 / 어댑터 계층도메인 계층표현 / api / UI 계층 각 계층에서 코루틴을 쓰는 일반적인 방법을 확인한다. 데이터 / 어댑터 계층 레포지토리, 프로바이더, 어댑터, 데이터 소스를 구현하는 계층이다.이 계층을 다루는 건 상대적으로 쉬운 편인데 인기 있는 여러 JVM 라이브러리가 기본적으로 or 몇 가지 의존성을 추가하는 걸로 코루틴을 지원하기 때문이다.레트로핏으로 요청을 정의한 함수를 블로킹 함수 대신 중단 함수로 만들려면 suspend를 추가한다. interface GithubApi { @GET("orgs/{organization}/repos?per_page=100") suspend fun getOrganizationRepos( @..
일반적으로 Flow는 콜드 데이터라 요청 시마다 값이 계산된다. 하지만 여러 수신자가 하나의 데이터가 바뀌는지 감지하는 경우도 있다. 이 때 메일링 리스트와 비슷한 SharedFlow를 쓴다. StateFlow는 감지 가능한 값과 비슷하다. SharedFlow SharedFlow로 메시지를 내보내면 대기 중인 모든 코루틴이 수신한다. import kotlinx.coroutines.coroutineScopeimport kotlinx.coroutines.delayimport kotlinx.coroutines.flow.MutableSharedFlowimport kotlinx.coroutines.launchsuspend fun main(): Unit = coroutineScope { val mutableS..
map Flow의 각 원소를 변환 함수에 따라 변환한다. 숫자들을 Flow로 갖고 있고 각 수의 제곱을 계산하는 연산이라면 생성된 Flow는 이 수들의 제곱을 값으로 갖는다. import kotlinx.coroutines.flow.flowOf import kotlinx.coroutines.flow.map suspend fun main() { flowOf(1, 2, 3) // [1, 2, 3] .map { it * it } // [1, 4, 9] .collect { print(it) }// 149 } map을 구현하려면 flow 빌더를 써서 새 Flow를 만들면 된다. 그리고 만들어진 Flow에서 원소들을 모으고 변형된 원소들을 하나씩 내보내면 된다. map은 값을 꺼내거나 다른 형태로 바꾸는 등으로 사용..
정수 리스트 num_list, 정수 n이 주어질 때, num_list의 첫 번째 원소부터 마지막 원소까지 n개 간격으로 저장된 원소들을 차례로 담은 리스트를 리턴하는 함수를 완성하라 주먹구구식으로 풀면 아래와 같다. class Solution { fun solution(numList: IntArray, n: Int): IntArray { val list = mutableListOf() for (i in numList.indices step n) { list.add(numList[i]) } return list.toIntArray() } } 위 코드는 filterIndexed를 쓰면 더 간결해진다. class Solution { fun solution(numList: IntArray, n: Int): In..
정수 리스트 num_list와 정수 n이 주어질 때, num_list의 첫 번째 원소부터 n번째 원소까지의 모든 원소를 담은 리스트를 리턴하는 함수를 완성하라 n번째 원소부터 문제에서 사용했던 copyOfRange를 다시 사용하면 된다. 물론 문제에 맞춰서 사용방법을 바꿔야 한다. class Solution { fun solution(numList: IntArray, n: Int): IntArray = numList.copyOfRange(0, n) }