목록IT (1353)
오늘도 공부
http://jojoldu.tistory.com/243
https://www.slideshare.net/mobile/secret/6Bbyx0PnKcsDwe
https://material.io/color/#!/?view.left=0&view.right=0&primary.color=9C27B0
https://proandroiddev.com/animate-it-on-react-native-with-opengl-b470252166f4
RxKotlin우선 dependencies을 추가를 하자. compile 'io.reactivex.rxjava2:rxjava:2.1.0' compile 'io.reactivex.rxjava2:rxkotlin:2.0.2' io.reactivex.rxjava2:rxkotlin 의 경우 코틀린으로 확장해서 따로 유틸을 만든 것이다.주소는 여기 클릭 해서 한번 보도록 하자.그리고 소스셋을 지정해서 폴더를 구분해주자.sourceSets { main.kotlin.srcDirs += 'src/main/kotlin' } 그럼 코틀린 파일을 새로 만들어서 테스트 해보자.1~10까지 돌면서 문자값으로 변경해주는 예제이다.import io.reactivex.Observable fun main(args : Array) { O..
https://brunch.co.kr/@thinkaboutlove/87
http://facebook.design/devices
http://www.mobiinside.com/kr/2017/11/03/buzzvil-tensorflow/
http://pluu.github.io/blog/android/droidkaigi/2017/11/01/droidkaigi-2017-android-storage/
바로가기
바로가기
공식 가이드https://source.android.com/source/code-style#follow-field-naming-conventions 참고 가이드http://givenjazz.tistory.com/44 Square code style ( java , Android)https://github.com/square/java-code-styles
치트시트
Android RecyclerView Expendable RecyclerView 만들기https://therubberduckdev.wordpress.com/2017/10/17/android-recyclerview-expandable-headers/ Drag and Drop and Swipe to Dismisshttps://therubberduckdev.wordpress.com/2017/10/24/android-recyclerview-drag-and-drop-and-swipe-to-dismiss/?utm_source=Android+Weekly&utm_campaign=772cbe6388-android-weekly-281&utm_medium=email&utm_term=0_4eb677ad19-772cbe6388..
https://m.blog.naver.com/PostView.nhn?blogId=edy5016&logNo=221126776190&proxyReferer=http://m.facebook.com
https://www.slideshare.net/medit74/ss-75194754
http://helloworld.fingerpush.com/정보통신망법-준수를-위한-앱-푸시-광고-가이드라인-2/
http://anhana.tistory.com/7
http://developer88.tistory.com/m/138
Google MVP 패턴 추천 리스트 모음https://github.com/googlesamples/android-architecture Realm 클린 아키텍쳐 설명https://academy.realm.io/kr/posts/clean-architecture-in-android/ 클린 아키텍쳐 설명https://8thlight.com/blog/uncle-bob/2012/08/13/the-clean-architecture.html 안드로이드 클린 아키텍쳐 추천 블로그https://fernandocejas.com/2014/09/03/architecting-android-the-clean-way/ 안드로이드 클린 아키텍쳐 구조 설명https://medium.com/@dvd.ciri/android-clean-..
출처 : http://yookeun.github.io/mac/2014/11/16/mac-mariadb/맥에서 homebrew를 이용해서 mariadb를 설치해본다.환경:OX Yosemite 먼저 를 설치해야 한다. homebrew는 우분투의 apt-get 같은 패키지인스톨 프로그램이라고 생각하면 된다.위 사이트에서 설치를 진행한다. 설치가 완료된 다음 터미널에서 brew 를 치면 명령어의 설명이 나오면 정상으로 설치된 것이다.먼저 brew를 업데이트해준다. (최신의 정보로 업데이트된다)brew update 다음 maridb를 검색해보자 (꼭 할 필요는 없다)brew search mariadb 검색하면 mariadb가 검색된다. brew에서는 기본적으로 최신버전을 설치하게 된다. 2014.11월 기준으로 ..
http://wlaxhrl.tistory.com/m/70
쓰레드가 이어져서 나오는 걸 직렬화라고 한다.예를 보자.public static void main(String[] args) { Observable.range(1 , 10) .map(i -> intenseCalculation(i)) .subscribe(i->System.out.println("Received " + i + " " + LocalTime.now())); } public static T intenseCalculation(T value) { sleep(ThreadLocalRandom.current().nextInt(3000)); return value; } public static void sleep(int millis) { try { Thread.sleep(millis); } catch (In..
RxJava 2부터 Disposable 형태로 변경됐다.일반적인 형태로 많이 쓰는건 consumer 형태이다.예를 보자.Observable testObservable = Observable.range(1 , 10); Disposable disposable1 = testObservable .doOnDispose(() -> System.out.println("onDispse 1")) .doOnComplete(() -> System.out.println("onCompleted 1")) .subscribe(item -> System.out.println("emitted 1 -> " + item)); //consumer 로 진행 System.out.println( "isDisposed -> " + disposab..
Debugging 하는 방법RxJava 사용시 디버깅 라이버러리는frodo 를 사용하면 좋긴 한데 ( RxJava 1지원..ㅠ)https://github.com/android10/frodo.git일반적인 테스트 방법을 소개한다..doOnNext()를 활용하면 된다.예를 들어 다음과 같은 내용이 있다고 가정하자.주어진 3개의 내용에 알파벳을 뽑아내는 경우이다.TestObserver testObserver = new TestObserver(); Observable items = Observable.just("521934/2342/Foxtrot", "Bravo/12112/78886/Tango", "283242/4542/Whiskey/2348562"); items.concatMap( s -> Observable..
TestSchedulerTestObserver(or TestSubscriber)을 이용시await를 통해서 기다릴수 있지만 그러기엔 시간이 많이 걸릴수 있다.그래서 타임머신기능으로 시간을 미리 땡겨서 테스트가 가능하다.예를 들어 interval(10) 으로 10초뒤에 값을 체크를 하는 경우 10초를 기다리지 않고 10초 뒤로 시간 설정 후 바로 테스트 하게끔 하는 것이다.이 부분에 대해서 좀 더 공부가 필요해보인다.TestScheduler testScheduler = new TestScheduler(); TestObserver testObserver = new TestObserver(); Observable minTicker = Observable.interval(1, TimeUnit.MINUTES , ..
TestObserver , TestSubscriber이전 내용까지는 Blocking이 주된 내용이지만 이것만으로는 한계가 있다. 그래서 나온게 TestObserver 이다.TestObserver = Observable , Single , Maybe , Completable 에서 사용된다.TestSubscriber =Flowable 에서 사용된다.//우선 옵저버 생성 (5초동안 아이템을 배출) Observable source = Observable.interval(1, TimeUnit.SECONDS).take(5); TestObserver testObserver = new TestObserver(); //아직 구독이 안된건지 체크 testObserver.assertNotSubscribed(); //이제 구..
BlockingFirst() , BlockingSingle()이름 그대로 처음꺼만 가져오는 함수를 말한다.Observable source = Observable.just("Alpha", "Beta", "Gamma", "Delta", "Zeta"); String firstItem = source.filter( s -> s.length() == 5).blockingFirst(); String singleItem = source.filter( s -> s.length() == 4).take(1).blockingSingle(); assertTrue( firstItem.equals("Alpha")); assertTrue( singleItem.equals("Beta")); 결과 : SuccessBlocingSing..
일반적으로 Observable 을 테스트시 Blocking을 사용한다.먼저 일반 코드를 작성하면 다음과 같을겁니다.AtomicInteger hitcount = new AtomicInteger(); Observable source = io.reactivex.Observable.interval( 1 , TimeUnit.SECONDS).take(5); source.subscribe( i -> hitcount.incrementAndGet()); assertTrue( hitcount.get() == 5); 여기에서 5개를 가져오는 일반적인 코드이다. 결과는 실패이다.이유는 interval 함수를 보면 thread가 computation 이다. 그래서 가져올수 없다.@CheckReturnValue @Schedule..