일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- retrolambda
- AndroidWeek
- android resource automation
- rxandroid
- 안드로이드 리소스
- MVP
- android weekly
- Android
- 성공
- Connectable Observable Operators
- Android Support Library
- 백준
- 디버그
- ReactiveX
- 분류
- logansquare
- Kulle
- Observable
- 안드로이드
- RXjava
- Season3
- DIABLO4
- parser
- gradle
- RX
- 9498
- 구현
- JSON
- 리소스 자동화
- Today
- Total
안드로이드 개발 팁 블로그
Rx프로그래밍의 장점은 데이터 흐름대로 코딩이 가능합니다. 체이닝이라는 통해 우리가 원하는 작업대로 데이타를 가공하고 처리 할 수 있습니다. 이를 도와주는 것 중 정해진 일을 처리하는 Observable들이 있습니다. 우리는 이것을 Operator라고 부르는데요. 오늘은 이 Operator의 종류와 하는 일에 대해서 알아보겠습니다. 공식 문서를 보면 아래와 같은 마블 다이어그램을 확인 하실 수 있는데 각 아이템에 대한 설명은 다음과 같습니다. Operator를 카테고리 별로 나눠보면 다음과 같습니다.생성, 변형, 분류, 조합, 에러처리, 유틸리티, 조건과 상태(boolean), 수학과 집계, backpressure, connectable, 변환 한번에 다둘려고 했으나 양이 너무 많아 파트를 나눠서 포스팅..
안드로이드 서포트 라이브러리가 23.2로 업데이트 되었습니다. 무엇이 바뀌었는지 확인해 볼까요?
LoganSquares는 시카고에 기반을 둔 모바일 개발사 bluelinelabs에서 깃텁에 공개한 json parsing ,serialization 라이브러리 입니다. 다른 json 라이브러리와 비슷하게 어노테이션 기반으로 되어 있습니다. 벤치마크 결과 Gson, jackson, Moshi 보다 처리결과가 빠르다고 하네요. 이분들 말에 따르면 Gson 대비 400% 빠르답니다. 저도 벤치마크를 돌려 보았는데요.54ms vs 18ms 으로 압도적으로 빠르긴 합니다. 다만 처리 속도가 ms니까 처리 데이타 량이 적다면 실질적 체감 속도는 거의 없는 편... 겔럭시 s4에서 TEST한 결과입니다.[시리얼라이징 테스트][파싱 테스트] https://github.com/square/retrofit/wiki/Co..
2016/02/17 - [Rxandroid] - 0. RxAndroid의 시작2016/02/18 - [Rxandroid] - 1. RxAndroid를 적용해보고 HelloWorld를 찍어보자.2016/02/19 - [Rxandroid] - 1-1. RxAndroid MVP Sample RxAndroid에서는 스케쥴러를 통해 어느 쓰레드에서 실행이 될지 결정 할 수 있습니다. 스케쥴러는 subsctibeOn(), observeOn() 에서 각각 지정할 수 있는데 subsctibeOn()은 observable의 작업을 시작하는 쓰레드를 선택 할 수 있습니다. 중복해서 적을 경우 가장 마지막에 적힌 스레드에서 시작합니다. observeOn()은 이후에 나오는 오퍼레이터, subscribe의 스케쥴러를 변경 할..
2016/02/17 - [Rxandroid] - 0. RxAndroid의 시작2016/02/18 - [Rxandroid] - 1. RxAndroid를 적용해보고 HelloWorld를 찍어보자. RxAndroid + MVP패턴 샘플을 만들어 보았습니다. https://github.com/leeyc09/RxAndroidMVPSample 1편에서 만들었던 샘플 소스를 수정해서 만들었기 때문에 Model객체가 없습니다.(나중에 추가하던가 해야지..) MVP패턴을 적용하기 위해서 의존성이 추가 되었는데 Rxlifecycle의 ActivityLifecycleProvider을 Presentor객체로 전달 하기 위해서 com.trello:rxlifecycle-navi:0.4.0가 추가 되었고 Rxandroid의 로그확..
2016/02/17 - [Rxandroid] - 0. RxAndroid의 시작 두번째 시간! 오늘은 Rx를 프로젝트에 적용하는 방법과 기본적인 HelloWorld를 해보자. 1. 새로운 프로젝트를 생성 새로운 프로젝트를 생성했으면 build.gradle에 Rxandroid 의존성을 추가하면 된다. rxandroid는 rxjava에 의존성을 가지고 있기 때문에 rxandroid만 추가하면 되지만 rxjava가 업데이트 되어 rxandroid와 버전이 맞지 않을 경우 별도로 의존성을 추가할 수 있다. 지금은 Rxandroid는 1.1.0 이고 Rxjava는 1.1.1 이라 별도로 의존성을 추가해 줬다. 그리고 build.gradle 파일을 동기화 해주면 적용은 끝난다. 1.0 이하 버전에서는 각종 컴포넌트의..
1. Rx~Rx? 하는데 그게 뭐에요?간단히 설명하면 ReactiveX (이하 Rx)는 MS진영에서 먼저 나왔고 넷플릭스가 이를 Java로 컨버팅하였고 (이게 무려 2년 전..) 지금은 Android를 비롯한 여러 언어에서 사용이 가능함. Rx의 역사에 대해서 설명한들 뭐가 도움이 되겠는가~ 잡 지식이 늘어나겠지. 다른 설명이 필요하신 분들은 https://realm.io/kr/news/rxandroid/ 에서 참고 바래. 이 자료는 여기저기 요기거기에서 발표자료로 많이 쓰여 익히 보신 분들도 있을 꺼야. (국내 자료는 김용욱님께 거의 유일무이하고...찾아봐도 다 비슷한 내용이다.) 공식 사이트는 http://reactivex.io/ 2.근데 어디에 쓸 수 있는거에요? 본인의 Rx를 시작하게 된 경험으로..
OkHttp를 업데이트 하였는데 멀쩡히 되던 앱이 버그를 뿜으며 로그인이 되지 않았다. 에러로그를 확인하니 아래 같은 이유.Caused by: java.lang.NullPointerException: Attempt to get length of null array at okhttp3.internal.tls.RealTrustRootIndex.(RealTrustRootIndex.java:31) at okhttp3.internal.Platform.trustRootIndex(Platform.java:97) at okhttp3.internal.Platform$Android.trustRootIndex(Platform.java:271) at okhttp3.OkHttpClient.(OkHttpClient.java:18..
이전에 포스팅한 Retrofit2 + okhttp3 + Rxandroid 사용법 (http://tiii.tistory.com/11) 에 수정 사항이 있어 다시 포스팅 합니다. 기존에 Interceptor을 사용하여 쿠키를 프리퍼런스에 저장하였는데 OkHttp3로 바뀌면서 cookieJar를 사용하여 CookieManager에 위임하도록 세션을 유지하는 쿠키관리 방법이 변경 되었습니다. 바뀐 방법을 사용하시면 Interceptor를 사용하지 않고 쿠키관리를 하실 수 있습니다. 아래의 소스코드를 활용하여 이와 같이 사용하시면 됩니다.
Recylerview는 LayoutManager를 통해서 GridView, List뷰의 가로,세로 변환등 Layout의 커스터마이징을 손 쉽게 할 수 있는 뷰입니다. 나온지도 1년이 넘었고... 소스는 여기저기 있으니 소스 보관차원에서 쓴 포스트이니 Recylerview가 자세하게 궁금하신 분들은 따로 검색해 주기 바랍니다. 어쨌든 Recylerview에는 ItemTouchListener밖게 존재하지 않는다. 따라서 이전에 listview를 사용하던 사람들이 변경이 어려웠었다. SimpleOnItemTouchListener을 상속 받은 별도의 리스너를 만들어 사용할 수 있다. 이하는 소스 코드.
OkHttp3에서 달라진 쿠키스토어 사용방법은 이후에 작성된 아래 포스트를 참고해 주세요.http://tiii.tistory.com/13 Retrofit과 OkHttp 는 Square社(https://square.github.io/)에서 만든 오픈라이브러리 입니다. Retrofit : REST통신을 위한 클라이언트 라이브러리OkHttp : HTTP & HTTP/2 통신 클라이언트 라이브러리Rxandroid : 안드로이드에서 Observer 패턴, Iterator 패턴을 사용 할 수 있게 하는 라이브러리이 글을 아래와 같은 디펜던시를 사용합니다.dependenciescompile 'com.squareup.retrofit2:retrofit:2.0.0-beta3'compile 'com.squareup.retr..
앱에서 네트워크 통신을 하면 가끔 Host를 찾을 수 없다라는 에러와 함께 API 호출이 되지 않는 문제가 있었다. 이리저리 손을 봐도 도통 모르겠더라. 그러다가 문뜩 통신 라이브러리를 업데이트 해볼까? 혹시 버그 픽스가 됐을지도 모르잖아?..라는 생각에 업데이트를 감행하였다. 기존에 사용하던 라이브러리의 버전은 아래와 같다. com.squareup.okhttp:okhttp:2.4.0 com.squareup.retrofit:retrofit:1.9.0그리고 변경할 라이브러리의 버전은 com.squareup.okhttp3:okhttp:3.0.1 com.squareup.retrofit2:retrofit:2.0.0-beta3Retrofit이 1에서 2로 업데이트되면서 많은 부분이 변경되었다는 것은 이미 알고 있..
안드로이드 앱을 개발하면서 네이티브코드가 포함된 라이브러리를 사용할 때 통합버전의 APK를 만들게 되면 모든 프로세스 별로 라이브러리가 추가 되면서 용량이 늘어나게 됩니다. 이럴 때 필요한 것이 Multiple APK기능인데 아래와 같은 것들은 지원합니다.각각의 APK에 다른 OpenGL texture 압축 포멧 지원각각의 APK에 다른 스크린 사이즈와 density를 설정각각의 APK에 다른 디바이스에 대한 특성 설정각각의 APK에 다른 플렛폼 버전 설정각각의 APK에 다른 CPU 아키텍처 설정 (ARM, x86, and MIPS) Multiple APK를 만들기 위해서는 몇가지 필수 제약사항이 있습니다.패키지 명 같아야 하고 같은 인증서로 서명해야 합니다.버전 코드가 같아야 합니다.버전 코드에 대한 ..
#182December 6th, 2015ARTICLES & TUTORIALS Google Eddystone을 소개 합니다. (medium.com)안드로이드 앱으로 Eddystone 비컨과 통신할 수 있는 방법을 알려 드립니다. 효과적인 OkHttp (omgitsmgp.com) OkHttp의 기본 구성은 중요한 유틸리티를 제공하지만 이 기사에서는 라이브러리를 풍부하고 내적 힘을 (resourcefulness and introspective power)증가 시킬 수 있는 방법을 소개 합니다. Plaid app의 reactive MVP 패턴 접근 (PART 1) (hannesdorfmann.com) Hannes Dorfmann Plaid app 앱의 구현을 개선하기 위해 몇가지 리팩토링을 제한합니다. 디버그,..
안드로이드는 JAVA 6,7을 지원하기 때문에 공식적으로는 JAVA 8에서 추가된 람다(lambda) 식을 지원하지 않습니다.하지만 안드로이드 개발할 때 사용할 수 있도록 Retrolambda 플러그 인을 사용하여 람다식을 사용 할 수 있습니다.설정하는 방법입니다.0 단계 : JDK 1.8 설치람다식은 JAVA 8에서 사용할 수 있습니다. JDK 1.8 버전 이상을 설치하시고 이후 적용을 원하는 Android Studio 프로젝트의 build.gradle을 열어 아래와 같이 수정합니다. 1 단계 : buildscript 종속성 추가하기buildscript { repositories { ... mavenCentral() ... } dependencies { ... classpath 'me.tatarka:g..
2015/11/27 - [AndroidWeekly] - AndroidWeelky #180 번역 #181 2015년 11월 29일기사와 예제 안드로이드에서 얼굴 인식기능을 소개합니다. (code.tutsplus.com) Play Services 8.1에 도입된 Vision라이브러리에 대한 좋은 소개글 입니다. 얼굴를 인식하는 방법을 소개하고 있습니다. 안드로이드 역공학 101 – Part 3 (www.fasteque.com) 이번 화에는 dex2jar 툴에 대해 초점을 두었습니다. 안드로이드 빌드 속도 올리기 (medium.com) 다양한 빌드 툴을 사용하여 빌드타임 속도를 비교합니다. 정승욱님 미디엄이네요! Scissors: 안드로이드 이미지 크롭 라이브러리 (eng.lyft.com) 이번 포스트에서는 ..
#1802015년 11월 기사 & 튜토리얼 RxJava함께 UX 향상하기 (medium.com) RxJava를 사용하여 UX에서 이벤트를 전달받아 처리하는 방법을 소개하고 있있습니다. 설정 가능한 Widgets의 모든 것 (www.yannicklemin.com) Yannick Lemin이 설정 가능한 widget을 만드는 법을 스탭 별로 알려 드립니다. Android 리버스 엔지니어링 101 – Part 2 (www.fasteque.com)aapt tool을 사용하여 APK 파일에서 유용한 정보를 추출하는 방법을 소개합니다.. Android에서 의미있는 애니메이션 효과 탐구 (medium.com) Birch의 글을 통해 의미있는 애니메이션 효과에 대해서 알아보고 몇가지 예제를 제공하고 있습니다. 어떠한 ..