일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 한달어스
- 아비투스
- 리얼하다
- 면접
- 한달독서
- 브런치작가되기
- 소프시스
- 지지않는다는말
- 함수형 프로그래밍
- 목적중심리더십
- 한달브런치북만들기
- 목적 중심 리더십
- 베드트레이
- 커스텀린트
- 자취필수템
- 끝말잇기
- 소프시스 밤부 좌식 엑슬 테이블
- 1일1커밋
- 어떻게 나답게 살 것인가
- 재택근무
- 베드테이블
- 프래그먼트
- 슬기로운 온라인 게임
- 테트리스
- T자형인재
- 안드로이드
- 캐치마인드
- 좌식테이블
- 북한살둘레길
- 한단어의힘
- Today
- Total
목록안드로이드 (164)
정상에서 IT를 외치다
안녕하세요. 블랙진입니다. 넌 무엇이더냐? 세번째 시리즈로 이번에는 Context에 대해 알아보겠습니다. 지난 시리즈 Thread 넌 무엇이더냐?Handler 넌 무엇이더냐? Context? Interface to global information about an application environment. This is an abstract class whose implementation is provided by the Android system. It allows access to application-specific resources and classes, as well as up-calls for application-level operations such as launching activiti..
안녕하세요. 블랙진입니다.리엑티브 연습 포스팅입니다. conact 여러 옵저버블의 데이터를 이터러밍 없이 발행해 줍니다. 즉 순서를 보장해 주는 오퍼레이터 입니다. 언제 사용할까요? 여러 API를 통신했을 때 순차적으로 처리가 필요한 경우에 사용합니다. 한 예로 사용자 정보를 가져오고 가져온 정보를 사용해 두번 째 api를 통신해야 되는 상황에서 사용하면 좋습니다.(다시 생각해보니 이 상황에서는 concatMap이 더 어울릴 것 같네요 ㅎㅎ) 예제val temp1 = true val temp2 = "BlackJin" val temp3 = arrayOf(1,2,3,4,5) val api1 = Single.just(temp1).delay(300, TimeUnit.MILLISECONDS) // 300ms 후 ..
안녕하세요. 블랙진입니다.리엑티브 연습 포스팅입니다. 이터러밍 상황에서 flatMap, concatMap, switchMap 어떻게 동작되는지 살펴보겠습니다. FlatMap 새로운 Observable 흐름을 만들어 주며 데이터의 흐름은 보장되지 않습니다.val balls = listOf("하나", "둘", "셋") Observable.interval(100L, TimeUnit.MILLISECONDS) .map(Long::toInt) .map { id -> balls[id] } .take(balls.size.toLong()) .flatMap { ball -> Observable.interval(200, TimeUnit.MILLISECONDS) .map { "$ball ☆" }.take(2) } .subsc..
안녕하세요. 블랙진입니다.리엑티브 연습 포스팅 입니다. Subject AsyncSubject onComplete() 호출 되기 직전의 아이템만을 받습니다. 즉 마지막 데이터만 받아옵니다. val asyncSubject = AsyncSubject.create().apply { onNext("0") subscribe { data -> println("Subscriber #1 -> $data") } onNext("1") onNext("2") subscribe { data -> println("Subscriber #2 -> $data") } onNext("3") onNext("4") } asyncSubject.onComplete()결과Subscriber #1 -> 4Subscriber #2 -> 4 Behavi..
안녕하세요. 블랙진입니다.리엑티브 연습 포스팅 입니다. Observablepublic abstract class Observable implements ObservableSource Observable은 ObservableSource를 구현하고 있습니다. Observable을 생성할 때는 인스턴스를 직접 만들지 않고 정적 팩토리 함수를 호출합니다. 그렇게 기본 적인 just()에서 부터 정말 다양한 팩토리 함수를 가지고 있습니다. Observable은 세 가지 상태를 구독자에게 전달합니다. onNext 데이터 발행을 알려줍니다. onComplete 1. 모든 데이터가 발행되었음을 알려줍니다. 2. onComplete 이후에는 onNext는 발생하지 않습니다. 3. dispoes()는 Observable에..
안녕하세요. 블랙진입니다.스트림 연습 포스팅입니다. 변환(map, groupby) Mappublic inline fun Iterable.map(transform: (T) -> R): List { return mapTo(ArrayList(collectionSizeOrDefault(10)), transform) }T타입의 이터레이터를 받아 R타입의 리스트로 반한한다. val cities = listOf("Seoul","Tokyo","MountainView") // 1. map에는 함수를 넣을 수 있다. 함수는 { } 안에 -> 를 통해 왼쪽과 오른쪽 인자로 구분된다. cities.map({ str:String -> str.toUpperCase() }).forEach { print(it) } // 2. ()안..
안녕하세요. 블랙진입니다. 리엑티브 연습 포스팅 입니다. build gradle 자바 8 사용android { ... // Configure only for each module that uses Java 8 // language features (either in its source code or // through dependencies). compileOptions { sourceCompatibility JavaVersion.VERSION_1_8 targetCompatibility JavaVersion.VERSION_1_8 } } 리액티브 추가//rx android def rxandoirdVersion = '2.1.1' def rxjavaVersion = '2.2.8' implementation "..
안녕하세요. 블랙진입니다. 2019 구글 IO에서 발표한 내용중 인 앱 업데이트에 대한 사용기를 소개해 볼려고 합니다. In-App Update 새로운 버전의 앱을 구글 스토어에 등록했을 때 알림을 통해 사용자에게 업데이트를 권하는 방법은 개발자 마다 한번은 고민했을 겁니다. 이에 대해 2019 구글 IO에서는 그 뱡향을 제시해 줬는데요. 다음은 2019 구글 블로그의 내용 중 일부입니다. today we’re also moving in-app updates from beta to stable. The ability to dynamically update apps is something you’ve been requesting for a long time. Let’s say you have a cruci..
안녕하세요. 블랙진입니다. 이미지 출처 Firebase Crashlytics 먼저 Firebase Crashlytics 은 안드로이드 에러 리포트 입니다. 앱에서 충돌이 일어날때 실시간으로 데이터를 받아볼 수 있게 해주는 구글에서 제공해 주는 ARCA(Applicarion Crash Report For Android)입니다. Firebase Crashlytics 설치방법? Firebase Crashlytics 시작하기Firebase Crashlytics 구현 테스트 설치 방법은 위 페이지에 상세히 나와 있어 시작하는데는 큰 어려움은 없습니다. 그럼 Firebase Crashlytics 직접 사용해보고 테스트한 내용에 대해서 공유하겠습니다. FireBase Crashlytics 오류 보고서 맞춤 설정 1...
안녕하세요. 블랙진입니다. CoordinatLayout을 사용해 애니메이션을 구현해야 되는 미션을 받아 공부한 내용을 간략히 정리해 보았습니다. 개요 CoordinatorLayout CoordinatorLayout 은 강력한 FrameLayout 으로 2가지 주요 행동이 있습니다. 1. 애플리케이션에서 최상위 장식(decor) 뷰로써 사용 2. 자식 뷰들간의 특정한 인터렉션을 위한 컨테이너로써 사용 CoordinatorLayout의 자식뷰에 Behaviors를 지정하는 방식으로 하나의 부모뷰 안에서 다양한 인터렉션을 지원할 수 있고 자식뷰들 간의 인터렉션을 할 수 있습니다. 또한 CoordinatorLayout의 자식뷰는 anchor 와 insetEdge 속성을 가질 수 있습니다. anchor는 Coor..