전체 글
-
[RxJava] ObservableReactiveX 2021. 4. 29. 16:37
Observable ReactiveX에서는 Observable을 구독하는 Observer가 존재하고, Observable이 이벤트를 발생시키면 Observer의 관찰자가 그 순간을 감지하고 준비된 연산을 실행시켜 결과를 리턴하는 메커니즘 때문에, observable을 구독한다라고 표현한다. Subscribe 메서드를 통해 Observer와 Observable을 연결한다. Observable은 다음의 3가지 이벤트를 사용하여 동작한다. onNext Observable은 새로운 항목들을 배출할 때마다 이 메서드를 호출한다. 이 메서드는 Observable이 배출하는 항목을 파라미터로 전달 받는다. onError Observable은 기대하는 데이터가 생성되지 않았거나 다른 이유로 오류가 발생할 경우 이 메서..
-
마블 다이어그램(Marble diagrams)ReactiveX 2021. 4. 29. 11:17
마블 다이어그램은 RxJava, 리액티브 연산자를 이해하는데 도움이 되는 도구이다. 마블 다이어그램 보는 법을 익혀보자. Observable 1. 실선은 Observable의 timeline. 시간은 왼쪽에서 오른쪽으로 흐른다. 시간순으로 데이터가 발행하는 것을 표현한다. 2. Observable에서 발행한 데이터. 데이터를 발행할때는 onNext 알림이 발생한다. 3. Observable이 성공적으로 완료되었음을 나타내는 수직선. onComplete 알림이 발생한다. 4. 점선과 상자는 Observable에 변환이 적용되고 있음을 나타낸다. 상자안의 문자는 어떤 변환인지에 대한 특성을 나타낸다. 5. 변환된 결과가 출력된 timeline 6. Observable가 비정상적으로 종료되거나 에러 발생시, ..
-
[RxJava] ReactiveReactiveX 2021. 4. 27. 16:20
ReactiveX, Reactive Programing ReactiveX(Reactive Extensions)는 관찰 가능한 스트림을 사용하는 비동기 프로그래밍을 위한 API Reactive Programing(반응형 프로그램)은 주변의 환경과 끊임없이 상호 작용을 하는, 비동기적 데이터 스트림을 처리하는 프로그래밍을 말한다. 스트림(streams)이란? - 변수, 사용자 입력, 속성, 캐시, 데이터 구조 등의 데이터가 시간 순서에 의해 전달되는 이벤트입니다 - 스트림은 다른 스트림에 대한 입력으로 사용할 수 있고 여러 스트림을 다른 스트림에 대한 입력으로 사용할 수 있다. - 두 개의 스트림을 병합(merge)할 수도 있고 관심있는 이벤트만 있는 다른 스트림을 가져오도록 스트림을 필터링(filterin..
-
ADB Shell 명령어 정리Android 2021. 4. 25. 10:18
Android Debug Bridge(ADB)는 기기와 통신할 수 있는 다목적 명령줄 도구로 Android SDK Flatform 도구 패키지에 포함되어 있다. - 기기 내부저장소 접근 adb shell cd /data/data/[package name]/ - 기기 재시작 adb shell reboot - 연결된 기기 목록 확인 adb devices - adb server 시작 adb start-server - adb server 종료 adb kill-server - 특정 기기로 명령어 전송 adb -s [devices] 명령어 - wi-fi를 통해 기기에 연결(Android 10이하) adb connect device_ip_address - 기기에 파일 복사 adb push [local] [remote..
-
Android Gradle - Build Type, FlavorAndroid 2021. 4. 24. 18:38
android { ... buildTypes { release { minifyEnabled false proguardFiles getDefaultProguardFile('proguard-android.txt'), 'proguard-rules.pro' } } flavorDimensions "version" productFlavors { free { dimension "version" manifestPlaceholders = [ appLabel: "Free-Flavor" ] applicationIdSuffix ".free" versionCode 10000 versionName "1.0.0" buildConfigField "String", "EXPLAIN", "\"This is FREE-FLAVOR appli..
-
Android Gradle - Gradle Scripts(2)Android 2021. 4. 24. 13:35
모듈 build.gradle apply plugin: 'com.android.application' apply plugin: 'kotlin-android' apply plugin: 'kotlin-android-extensions' apply plugin: 'kotlin-kapt' android { compileSdkVersion rootProject.ext.compileSdkVersion buildToolsVersion '30' defaultConfig { applicationId "test.com.mvpexample" minSdkVersion rootProject.ext.minSdkVersion targetSdkVersion rootProject.ext.targetSdkVersion versionCod..
-
Android Gradle - Gradle Scripts(1)Android 2021. 4. 24. 13:31
프로젝트 build.gradle buildscript { apply from: file('dependencies.gradle') repositories { google() jcenter() } dependencies { classpath "com.android.tools.build:gradle:$androidPluginVersion" classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlinVersion" classpath 'com.google.gms:google-services:4.1.0' // NOTE: Do not place your application dependencies here; they belong // in the individual m..
-
Android Gradle - Gradle이란Android 2021. 4. 23. 09:51
Gradle의 특징 • 폴리글랏 빌드(Polyglot Build) - 60개의 서로 다른 언어(Java, Scala, C/C++등)를 Gradle을 사용하여 빌드하고 관리한다. - 각 언어를 플러인으로 구별하는데 예를 들면 일반 Java는 java, 안드로이드는 com.android.application 플러그인 사용한다. • 도구 통합 - CI도구인 Jenkins을 이용해서 자동 빌드 및 배포가 가능하다. • 외부 라이브러리 관리 자동화 - 개발자가 더 이상 외부 라이브러리 관리를 하지 않아도 된다. • 고성능 빌드 - 점진적인 빌드, 빌드 캐싱, 병렬 빌드 기능을 지원하여 고성능 빌드를 추구한다. • 빌드 스크립트 생산성이 높다 - JVM 언어인 Groovy로 구축되어 있어 Groovy의 장점을 활용..