Programming 개발은 구글로187 [RxJava] 3.Observable 란? Observable Observable은 데이터 흐름에 맞게 알림을 보내 구독자가 데이터를 처리할 수 있도록 한다. Observable은 옵서버 패턴을 구현하며, 리액티브 프로그래밍은 Observable로 시작해서 Observable로 끝난다고 해도 과언이 아니다. 안드로이드에서 버튼을 클릭하면 이벤트를 받을 수 있게 하는 OnClickListener가 대표적인 옵서버 패턴의 예라고 볼 수 있다. RxJava에서 Observable은 세 가지를 구독자에게 전달한다. onNext : Observable이 데이터의 발행을 알린다. 기존의 옵서버 패턴과 같다 onComplete : 모든 데이터가 발행이 완료되었음을 알린다. 그러므로 더 이상의 onNext는 발생하지 않으며, 마지막에 딱 한 번만 호출된다. o.. 2022. 5. 29. [RxJava] 6.Scheduler Scheduler 1. Schedulers 개요 Observable 연산자 체인에 멀티스레딩을 적용하고 싶다면, 특정 스케줄러를 사용해서 연산자(또는 특정 Observable)를 실행하면 된다. ReactiveX의 일부 Observable 연산자는 사용할 스케줄러를 파라미터로 전달받기도 하는데, 이 연산자들은 자신이 처리할 연산의 일부 또는 전체를 전달된 스케줄러 내에서 실행한다. 기본적으로, Observable과 연산자 체인은 이처럼 스케줄러를 통해 동작하고 Subscribe 메서드가 호출되는 스레드를 사용해서 옵서버에게 알림을 보낸다. SubscribeOn 연산자는 다른 스케줄러를 지정해서 Observable이 처리해야 할 연산자들을 실행시킨다. 그리고, ObserveOn 연산자는 Observable.. 2022. 5. 29. mimik - edge clouding solution mimik - edge clouding solution MIMIK의 edge clouding solution 은 모든 edge devices 가 서버 역할을 수행할 수 있게 하는 소프트웨어 솔루션으로 성능과 효율성을 개선하는 동시에 대기시간, 비용 및 탄소발생을 줄이는 획기적인 솔루션입니다. Hybrid edgeCloud Platform 이란? 차세대 하이브리드 edgeCloud 인프라를 구축하기 위한 플랫폼으로 모든 컴퓨팅 장치가 서버 역할을 할 수 있도록 하여 모든 컴퓨팅 장치가 애플리케이션 계층에서 직접 통신할 수 있도록 합니다. Hybrid edgeCloud platform 플랫폼에는 edgeEngine, mimik 백엔드 서비스 및 관련 마이크로서비스가 포함 엔진은 OS, device, netw.. 2022. 5. 28. [안드로이드] Snackbar Text 세부 설정 및 Max Line 설정 Snackbar : Toast 메시지처럼 화면상에 팝업창을 띄어 사용자에게 특정한 정보를 제공할 때 사용이 됩니다. Toast 메시지와 유사한 기능을 제공하지만, Toast 메시지일 경우 팝업창이 나타났다가 지정한 Duration에 따라 일정 시간 보이다가 자동으로 사라지는 팝업창입니다. 🟦 Snackbar 기본 설정 public class MainSnackbar { public static void showSnackbar(View view, String message) { Snackbar snackbar = Snackbar.make(view, message, Snackbar.LENGTH_SHORT); setTextView(snackbar, view); snackbar.show(); } ... 🟪 Sna.. 2022. 5. 27. [RxJava] 2. Reactive Programming 이란? Reactive Programing : 데이터의 흐름과 전달에 관한 프로그래밍 패러다임을 뜻한다. 🟦 명령형 프로그래밍 vs 리액티브 프로그래밍 Imperative Programming(명령형 프로그래밍) : 작성된 코드가 정해진 순서대로 실행됨 Reactive Programming(리액티브 프로그래밍) :데이터 흐름을 먼저 정의하고 데이터가 변경되었을 때 연관되는 함수나 수식이 업데이트 되는 방식 기존의 프로그래밍 방식을 Pull 방식, Reactive 프로그래밍 방식을 Push 방식이라고도 한다. Pull 방식은 데이터를 사용하는 곳(Consumer)에서 데이터를 직접 가져와서 사용한다면, Push 방식은 데이터의 변화가 발생한 곳에서 새로운 데이터를 Consumer에게 전달한다. 리액티브 프로그래밍.. 2022. 5. 26. [RxJava] 5.subscribeOn과 observeOn의 차이점 subscribeOn과 observeOn의 차이 RxJava는 operator를 통해 chaining 기법을 사용할 수 있다. subscribeOn과 observeOn도 마찬가지로 chaining 기법을 적용할 수 있다. 먼저 두 연산자의 역할은 다음과 같다. subscribeOn은 Observable이 데이터 흐름을 발생시키고 연산하는 스레드를 지정할 수 있고, observeOn은 Observable이 Observer에게 알림을 보내는 스레드를 지정할 수 있다. 그럼 두 연산자의 차이는 무엇일까? subscribeOn은 여러번 호출되더라도 맨 처음의 호출만 영향을 주며 어디에 위치하든 상관없다. observeOn은 여러번 호출될 수 있으며 이후에 실행되는 연산에 영향을 주므로 위치가 중요하다. 예제 A.. 2022. 5. 25. [RxJava] 7.배압(Backpressure) 개념 이해 네이버에서 Backpressure 뜻을 찾아보면 역압으로 알려줍니다. 배압과 의미는 같으며, 역압이란 용어는 거의 사용하지 않습니다. 배압(Backpressure) 배압이란 생산되는 데이터와 소비의 균형이 어긋나는 현상입니다. 만약 10,000개의 데이터를 0.1초마다 발행하고, 소비는 10초마다 한다면 소비와 관계없이 데이터는 스트림에 계속 쌓이게 됩니다. 즉, Observable이 데이터를 발행하는 속도를 Observer의 소비 속도가 따라가지 못하는 것입니다. Flowable(사전적의미: 유동적임) 기존의 Observable이 배압 현상을 제어하지 못하는 반면, Flowable은 배압 현상을 스스로 제어할 수 있습니다. 다음의 두 코드를 살펴보도록 하겠습니다. Observable Observable.. 2022. 5. 24. [안드로이드] GPS 정보로 현재 위치 찾기 GPS 정보로 현재 위치 찾기 우선 GPS Location 정보를 가져오도록 하겠습니다. ※ 위치정보 또한 위험 권한에 속하므로 권한 체크를 해주셔야 합니다. 1. 안드로이드 GPS 정보 가져오기 1.1 AndroidManifest.xml에 권한 등록하기 1.2 위치 관리자 객체 참조하기 Location location = lm.getLastKnownLocation(LocationManager.GPS_PROVIDER); 1.3 Location Listener 구현 : Location Listener는 위치정보를 전달할 때 호출되므로 onLocationChanged() 메서드 안에서 위치 정보 처리. final LocationListener gpsLocationListener = new LocationLi.. 2022. 5. 23. Android 개발자를 위한 Google I/O 핵심 내용 13가지 ※ 2022년 6월 16일(목)에 진행되었던 The Android Roadshow Seoul은 끝났습니다. Android 개발자를 위한 Google I/O 핵심 내용 Jetpack Compose부터 태블릿, Wear OS, 그리고 Android 13까지 Android 개발자가 알아야 할 핵심 내용 13가지를 정리해 드립니다. Modern Android Development #1: 고급 사용 사례를 지원하는 Jetpack Compose 1.2 베타 출시 Android의 최신 UI 툴킷인 Jetpack Compose에서는 다운로드 가능한 글꼴, LazyGrids, 창 인셋, 중첩 스크롤 상호 운용 등 고급 사용 사례를 구현하는 데 필요한 API와 Live Edit, 리컴포지션 디버깅, 애니메이션 미리보기 등.. 2022. 5. 22. [안드로이드] App Icon 추가 및 수정하기 Android App Icon 🟦 App Icon 생성 아이콘 적용을 위해 적용될 아이콘을 준비합니다. (512x512 사이즈) Android - app - src - res에서 마우스 우클릭 선택합니다. New - Image Asset를 선택합니다. 기본 이름으로 ic_launcher로 선택 후 Image 를 가져올 Path를 설정합니다. 이미지 크기가 맞지 않다면 Resize로 변경하시면 됩니다. 여기까지 완료가 되었으면 Next를 선택합니다. 아이콘 사이즈는 512x512로 지정이 되어 있습니다. Finish를 눌러서 생성을 합니다. res - mipmap 폴더에서 해당 아이콘들을 확인할 수 있습니다. ※ AndroidManifest.xml에서 default로 "ic_launcher"로 작성이 되어.. 2022. 5. 19. [안드로이드] 추상클래스와 인터페이스 추상 클래스(abstract class)와 인터페이스(Interface) 1. 추상 클래스(abstract class) : 추상 클래스는 전체적인 구성이 '구체화'되어 있지 않고 설계만 되어있는 클래스라고 정의할 수 있습니다. 클래스라는 것을 만들어 두면 이것을 인스턴스 화하여 객체를 생성하고 객체를 통해 클래스의 기능을 이용하게 됩니다. 객체지향 언어에서 클래스는 객체를 구체화한 것인데 이 구체화 단계가 명확하게 떨어지지 않을 대 추상 클래스를 사용하게 됩니다. 추상 클래스는 상속(extends)을 통한 자식 클래스를 의해 완성되며 abstract 키워드로 클래스가 작성됩니다. abstract class School { // abstract 추가 abstract student high(); abstra.. 2022. 5. 18. [안드로이드] Androidx 사용법 AndroidX(Android Extension Libraries) 1. migrating를 통한 사용방법 gradle.properties에 아래의 내용 추가 android.useAndroidX=true android.enableJetifier=true Android Stuido에서 Refector를 선택한 후 아래쪽에 있는 Migrate to AndroidX... 을 클릭합니다. migrating을 하면 ctrl+z로도 되돌릴 수 없기 때문에, 호환성에 대해 걱정이 되신다면 백업을 하시는 걸 추천드리겠습니다. 하단에 Refactor할 수 있는 목록들이 나타나게 됩니다. DO REFACTOR을 선택하게 되면 자동으로 androidx 패키징으로 변경이 됩니다. AndroidX로 migrate가 완료되었습니다. 2022. 5. 17. 이전 1 ··· 9 10 11 12 13 14 15 16 다음 728x90