본문 바로가기

IT

[RxJava] flowable Flowable과 Observable의 차이? 공식문서에서는 해당링크의 상황에서 맞춰 Observable과 Flowable을 구분해서 사용하라고 합니다.여기서 가장 중점적으로 봐야할것은 데이터의 처리 갯수 뿐아니라 데이터의 발행속도가 구독자가 처리하는 속도보다 현저하게 빠른경우즉 공급이 수요보다 현저히 빠른경우 OOME(out of memory Exeception) 과 같은 에러가 발생할 수 있는데 BackPreesure라는 배압에 대한 이슈를 Buffer를 이용하여 대응하는 기능을 제공합니다. 해당 내용은 아래의 링크를 통해 확인가능합니다. * 어떻게 나눠서 사용해야할까? https://github.com/ReactiveX/RxJava/wiki/What's-different-in-2.0#which-ty..
[안드로이드] ripple effect 적용하기 안녕하세요 남갯입니다. 오늘은 Ripple Effect라는 것에대해 포스팅 해보려고합니다. Ripple Effect는 처음 안드로이드 5.0에서 소개되었습니다. 각자 버튼에 적용하는 default의 방법으로는 아래와같이 적용하고 난 후에 android:background="?android:attr/selectableItemBackground" min sdk api가 21이 넘는다면 아래와같이 적용함으로써 가능합니다. 21이상이 되면서 혹은 원하는형태로 custom을 하기위해서는 drawable에 ripple_custom xml을 만듭니다. 위와 같이 커스텀을해서 위쪽에는 클릭을 적용후에 동작할 클릭을 적용하면 됩니다.아래에는 클릭을 안했을대의 기본적인 색상을 적용하면 됩니다. 그후 버튼에 아래와 같이 적..
[RxJava,RxKotlin] RxJava , Observable 알아보기 안녕하세요 남갯입니다 개인적으로 RxJava,RxKotlin 에 대해 정리해보려고합니다. ReactiveX란 ?ReactiveX 는 비동기 프로그래밍 그리고 Observable 시퀀스를 이용해 이벤트를 처리하기위한 라이브러리입니다.즉 위 말을 간단하게 말해보면 비동기적 데이터흐름을 처리하는 프로그래밍입니다. Rxjava는 2013년 2월 넷플리스 기술블로그에서 처음 소개되었고 REST기반의 서비스를 개선하고자 프로젝트를 진행했고 .net환경의 rx를 JVM에 포팅하여 만들어지게 되었습니다. Observable이란? ReactiveX는 옵저버패턴을 사용하기 때문에 rx의 Observer는 Observable을 구독하게 됩니다. Observable이 emit하는 하나 혹은 연속된 item 에 대해 Obser..
[안드로이드] 안드로이드 스튜디오 LiveTemplate 사용하기 안녕하세요 남갯입니다 오늘은 Live Template 을 포스팅 해보려고 합니다. 이런 기능을 드로이드나이츠에 가서 아는사람이 배워서 알려줬는데 저도 사용해보려고 했습니다. File - Setting 을 누릅니다. Setting부분에 Live Template 라고 검색하면 나옵니다. 기본적으로 안드로이드 스튜디오가 만들어놓은 Toast가 있습니다. 실제로 Toast를 적어보면 위처럼 나옵니다. 실제 코드가 나와요 실제로 추가하고 싶은 내용이 있으시면 일단 오른쪽위에 +버튼을 클릭합니다 그후 Live Template을 클릭하면 하나가 생성되게 되는데 Abbrevlation 에는 직접 입력할때 쓸 용어Description에는 옆에 나오는 설명Template text는 실제 생성할 코드 생성을 하고나서 왼쪽아..
[드로이드나이츠] 뱅크샐러드 코틀린던전 2, 3번문제 안녕하세요 남갯입니다 오늘은 드로이드나이츠에서 나온 뱅크샐러드의 코틀린던전 2번 3번문제를 풀어보려합니다. 2번문제는 되게 어려웠습니다.실제로 확인하는데는 엄청 어려웠습니다. listof일단 listof에 대해 확인해보면listof는 emptyList 혹은 elements.asList를 통해 결과값을 반환합니다. List타입을 반환하게 되죠asListemptyList위의 두 반환타입을 보면 List타입을 반환하게 되는데 즉 List라는 immutable한 타입을 반환하게 됩니다. arratListOf반환타입이 ArrayList를 반환하게 됩니다. List, MutableList , ArrayList 살펴보기ListMutableListArratListList는 Collection을 상속받았고 Mutable..
[드로이드나이츠] 뱅크샐러드 코틀린던전 1번문제 안녕하세요 남갯입니다 오늘은 드로이드나이트에서 코틀린던젼으로 문제를 냈던 레이니스트(뱅크샐러드)의 문제를 포스팅해보려합니다. 1번문제 첫번째 문제는 1 ~ 6의 숫자를 가진 리스트에 함수를 넣어 큰 순서대로 나열하는 문제입니다. SUMval sum = numbers.filter { num -> num % 2 == 0 }.sum() filter는 각각의 숫자를 넣어서 num%2 ==0을 만족하는 수를 출력해주는 함수입니다.즉 [1,2,3,4,5,6} 은 짝수만 남게됩니다. {2,4,6}그후 sum()은 합을 구하는 함수입니다.2 + 4 + 6 = 12가 나오게됩니다.SUM = 12 FOLDval fold = numbers.fold(1) { sum, num -> sum + num } fold는 초기값을 넣고..
[kotlin] 제너릭 변성(variance) 정리 안녕하세요 남갯입니다 오늘은 제너릭 타입에대해 정리해보려고합니다 SubType 이란? subType이란 어떤 class가 다른클래스를 상속받은것을 의미한다. 즉 타입 A가 필요한 곳에 타입 B 값을 넣어도 문제가 없다면 B는 A의 하위타입인 것이다. 예를들어 open class A() { val x = 0 val y = 1 } class B : A(){ val z = 2 } 와 같이 B는 A를 상속받았으므로 A의 subType이다. var a = A() var b = B() a = b는 가능하지만 var a = A() var b = B() b = a는 mismatch가 난다. 즉 A타입이 필요한곳에 B를 넣었는데 문제가 없으므로 B 는 A의 SubType인것이다. 무공변성(invariance) 제너릭타입..
[안드로이드] AlarmManager With Notification Example (알람매니저를 이용하여 푸쉬생성 예제) 안녕하세요 YTS 입니다. 오늘은 알람매니저(AlarmManager)를 이용하여 푸쉬(Notification)를 생성하는 예저를 다루어볼까합니다. 추가적으로 JobScheduler를 이용하여 백그라운드에서도 반응하도록 예제를 제작하였습니다. 우선적으로 사전지식이 필요한 JobScheduler는 안드로이드 API LEVEL 21부터 등장하였고, Android에서는 기존 무분별한 백그라운드 서비스를 제한하기위하여 JobScheduler로 대체를 하고있습니다. 저는 JobScheduler를 보다 쉽게 사용하기위해서 FireBase Jobdispatcher를 이용하였습니다. 보다 자세한 정보는 https://github.com/firebase/firebase-jobdispatcher-android 에서 확인할 ..