일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- RXjava
- 하드코드검색
- java
- 안드로이드
- android P
- deprecating the install_referrer
- Android
- RxJava2
- Switch to the Play Referrer API by March 1
- RX
- Retrofit2
- Rx자바
- andorid studio
- rxandroid
- hardcoded string search
- Today
- Total
Lucky Dog
Switch to the Play Referrer API by March 1, 2020 기존에 사용하던 Referrer(INSTALL_REFERRER) 를 새로운 API 로 마이그레이션 하라는 것. 해당 기능 동작 안해도 앱 사용에는 지장이 없다. 그래도 가능하면 처리하도록 하자. 내 앱에서는 그런 기능 사용한 적 없는데? =>직접 정의하지 않아도 마케팅 SDK 나 Fireabse 등에 해당 기능이 포함되어 있을 수 있다. Referrer(INSTALL_REFERRER) 가 무엇인가? 간단하게 얘기하면 유입 경로를 분석/처리 하기 위한 기능으로, 직접 정의해서 사용하거나 마케팅 sdk, Firebase 등 에 해당 기능이 포함되어 있다. 예를들어 Firebase를 사용할 경우 앱 패키징(apk)을 디컴파..
Android 10 사용을 위해 androidx 로 마이그레이션 할 때, 보통 안드로이드 스튜디오 'Refactor' -> 'Migrate AndroidX..' 메뉴를 이용하게 된다. 문제는 build.gradle 의 implementation 은 AndroidX로 변경해주지만 XML 에 정의된 레이아웃들은 변경해주지 못할 때가 있다. 예를 들면 CoordinatorLayout 의 경우 위와 같이 사용하다가 AndroidX 로 전환하면 아래와 같이 자동 변경될 것으로 기대하지만 변경되지 않는다; 이러면 컴파일에러가 아니라 런타임 에러가 발생하기 때문에 제대로 테스트가 안되면 꽤나 문제가 된다. 안드로이드 스튜디오 자동 마이그레이션 툴을 너무 믿지 말고 마이그레이션 후 전체 검..
Operator 자바 관점에서는 메서드. 순수함수(Pure functions) 생성, 변환, 필터, 합성, 오류처리, 유틸리티, 조건, 수학과집합형, 배압 등이 있다. map 입력 값을 어떠한 함수에 넣어서 원하는 값을 반환하는 함수 String[] balls = {"1", "2", "3", "4", "5"}; // First way Observable source = Observable.fromArray(balls) .map(ball -> ball + ""); // Second way // Function getDiamond = ball -> ball + ""; // Observable source = Observable.fromArray(balls).map(getDiamond); source.subs..
RxJava - 데이터 발행자 (Data source) Observable class 옵서버 패턴을 구현. 데이터 흐름에 맞게 알림을 보내 구독자가 데이터를 처리할 수 있도록 한다. 데이터를 무한하게 발행 할 수 있다. 세 가지 알림을 구독자에게 전달 onNext : Observable이 데이터의 발생을 알림. onComplete : 모든 데이터 발행 완료 알림. 이후 onNext 발생 안함. onError : 에러 발생. onError 이벤트 후에 onNext 및 onComplete 발생안함. Observable source = Observable.just(1, 2, 3, 4, 5); source.subscribe(System.out::println);Cold Observable vs Hot Obser..
Scheduler 데이터를 처리하고자 하는 특정한 스레드 Scheduler 용도 Schedulers.computation( ) 이벤트-루프와 콜백 처리 같은 연산 중심적인 작업을 위해 사용된다. 그렇기 때문에 I/O를 위한 용도로는 사용하지 말아야 한다(대신 Schedulers.io( )를 사용) 기본적으로 스레드의 수는 프로세서의 수와 같다 Schedulers.io( ) 블러킹 I/O의 비동기 연산 같은 I/O 바운드 작업을 처리한다. 이 스케줄러는 필요한 만큼 증가하는 스레드-풀을 통해 실행된다; 일반적인 연산이 필요한 작업은 Schedulers.computation( )를 사용하면 된다 Schedulers.newThread( ) 각각의 단위 작업을 위한 새로운 스레드를 생성한다 AndroidSche..
RxJava Java 로 Reactive Programming 을 구현하기 위한 라이브러리 구성요소 Observable Observer Operator Observable 데이터 제공자. 지속적으로 흐름을 파악할 수 있는 데이터. Ex) 현실에서 유튜버를 Observable 하다 라고 할 수 있고, 유튜버를 구독하는 사람들을 구독자(Subscriber) 라고 할 수 있다. Observable 의 두 가지 종류 Hot Observable 구독자(Subscriber) 가 없어도 동작 (클릭 이벤트, 센서 이벤트 등) Cold Observable 구독자(Subscriber) 가 있을 때만 동작 (웹 요청, DB쿼리 등) Observable 예시 just 를 통해 1, 2, 3, 4 를 Emit(방출) 하는 O..
WeakReference vs StrongReference 우선 가비지 컬렉션에 대해 알아야 한다. 자바 가비지 컬렉션(Java Garbage Collection) 이란? 프로그램이 동적으로 할당했던 메모리 영역 중에서 필요없게 된 영역을 해제하는 기능이다. 자바 가비지 컬렉션(Java Garbage Collection)은 객체가 가비지인지 판별하기 위해 'reachability'라는 개념을 사용한다. root set으로부터 연결되어 객체에 유효한 참조가 있으면 'reachable'로, root set으로부터 연결되어 있지 않으면 'unreachable'로 구별하고 가비지로 간주해 GC를 수행한다. (unreachable 객체들끼리 참조하는 경우도 root set으로부터 연결되어 있지 않으므로 unrea..
Retrofit2 Multiple base url Retrofit 에서 여러 개의 base url을 사용해야 하는 경우 아래와 같이 처리한다. RetrofitManager public class RetrofitManager { private static final String TAG = RetrofitManager.class.getSimpleName(); private static HttpLoggingInterceptor logging = new HttpLoggingInterceptor().setLevel(HttpLoggingInterceptor.Level.BODY); private static class LazyHolder { static final RetrofitManager INSTANCE = ne..
DataBinding (데이터바인딩) 데이터 바인딩 라이브러리를 사용하여 선언적 레이아웃을 작성하고 애플리케이션 로직과 레이아웃을 바인딩하는데 필요한 글루 코드를 최소화할 수 있다. 데이터 바인딩 라이브러리는 유연성과 폭넓은 호환성을 모두 제공하는 지원 라이브러리로, Android 2.1(API 레벨 7 이상)까지 Android 플랫폼의 모든 이전 버전에서 사용할 수 있다. 데이터 바인딩을 사용하려면 Android Plugin for Gradle 1.5.0-alpha1 이상이 필요하다. [build.gradle] android { .... dataBinding { enabled = true } }[xml] ... ... [src] Activity @Override protected void onCreat..
문제 상근이는 요즘 설탕공장에서 설탕을 배달하고 있다. 상근이는 지금 사탕가게에 설탕을 정확하게 N킬로그램을 배달해야 한다. 설탕공장에서 만드는 설탕은 봉지에 담겨져 있다. 봉지는 3킬로그램 봉지와 5킬로그램 봉지가 있다. 상근이는 귀찮기 때문에, 최대한 적은 봉지를 들고 가려고 한다. 예를 들어, 18킬로그램 설탕을 배달해야 할 때, 3킬로그램 봉지 6개를 가져가도 되지만, 5킬로그램 3개와 3킬로그램 1개를 배달하면, 더 적은 개수의 봉지를 배달할 수 있다. 상근이가 설탕을 정확하게 N킬로그램 배달해야 할 때, 봉지 몇 개를 가져가면 되는지 그 수를 구하는 프로그램을 작성하시오. 입력 첫째 줄에 N이 주어진다. (3 ≤ N ≤ 5000) 출력 상근이가 배달하는 봉지의 최소 개수를 출력한다. 만약, 정..