일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 | 31 |
- 구현
- Kulle
- 성공
- ReactiveX
- Season3
- 백준
- Android
- retrolambda
- 분류
- parser
- Android Support Library
- Connectable Observable Operators
- RX
- android weekly
- gradle
- RXjava
- 안드로이드 리소스
- 디버그
- MVP
- AndroidWeek
- 리소스 자동화
- rxandroid
- Observable
- 9498
- JSON
- logansquare
- android resource automation
- 안드로이드
- DIABLO4
- Today
- Total
목록Android Tip (22)
안드로이드 개발 팁 블로그
많은 Android 프로젝트에서 사용하고 있는 JCenter 아티팩트 저장소의 유지보수 회사인 JFrog는 최근 JCenter의 지원을 중단하고 앞으로 서비스를 종료할 것이라고 발표했습니다. 발표에 따르면 2022년 2월 1일까지 JCenter에서 기존 아티팩트를 다운로드할 수 있습니다. JCenter에 아티팩트를 게시하는 개발자는 새 호스트(예: Maven Central)로 패키지 이전을 시작해야 합니다. 가까운 시일 내에 이 페이지를 통해 JCenter에서 Android 프로젝트를 이전하는 방법에 관한 추가 정보를 제공할 예정입니다. JCenter에서 Maven으로 마이그레이션 금년 2021년 5월 1일에 Bintray (JCenter 포함), GoCenter 및 ChartCenter 서비스를 중단 ..
안드로이드 admob 라이브러리가 17.0.0으로 업데이트 되었습니다.https://developers.google.com/admob/android/rel-notes기존에 사용하고 있던 앱에 build.gradle을 수정 하면서 경험한 몇가지 주의점을 적어 봅니다. 버전 업데이트를 할 겸 기존에 사용하고 있던 라이브러리들도 다 같이 버전을 올렸습니다. 기존 사용 버전implementation 'com.google.firebase:firebase-core:16.0.3' implementation 'com.google.firebase:firebase-messaging:17.3.2' implementation 'com.google.firebase:firebase-perf:16.1.0' implementatio..
회사 안드로이드 코드를 리팩토링하면서 layout 과 source code에 AppCompatImageView로 떡칠되어 있는 이유에 대해 고민 하던 중 4.x에서 ImageView를 사용하고 tint를 selector와 사용했을 경우 앱이 강제 종료 당한다라는 말이 있어 정리해 보았다. 우선 AppCompatImageView에 대해 살펴보면 This will automatically be used when you use ImageView in your layouts and the top-level activity / dialog is provided by appcompat. You should only need to manually use this class when writing custom view..
gradle 설정을 아래와 같이 수정한다.compileSdkVersion 'android-P' implementation 'com.android.support:appcompat-v7:28.0.0-alpha1'
2018.4 수정기존의 방식이 권한 문제로 정상적으로 작동하지 않아 수정하였습니다.gdata 삭제gspread 추가Oauth2 인증 추가 이 포스팅은 잔디(JANDI)의 포스팅 https://tosslab.github.io/android/2016/02/12/Android-and-automation/을 기반으로 하고 있습니다.본 프로젝트에 대한 소스는 깃헙에서 받으실 수 있습니다.(https://github.com/leeyc09/L10nStringResourceAutomation) 저희 회사에서는 언어 리소스 요청을 메신저를 통해 별도의 엑셀 문서로 처리하고 있었으나 요구사항과 수정사항이 많아 질 수록반복되는 작업과 iOS, Android, Web등 플렛폼이 다양해 지면서 언어 리소스 버전관리가 어려워 졌..
개발할 때에 단축키를 외우고 있다면 개발속도가 올라갑니다.불필요한 마우스 움직임이 적어지니까요. 안드로이드 스튜디오에서 사용하는 플러그인 하나를 소개해 드립니다.Key Promoter X Plugin - For development 사용방법은 간단합니다. 안드로이드 스튜디오에 플러그인을 인스톨하고 리부팅 이후 작동하게 됩니다. 이렇게 말이죠. 플러그인 설치 방법은 설정 화면 (command + , ) - PlugIn 에서 'Key Promoter X' 검색 (개발환경 맥북pro , Android Studio 3.0) 단축키를 사용해서 열 수 있는 행동을 했을 경우에 팝업이 올라오게 됩니다. 그리고 오른쪽에 있는 패널을 눌러 보시면 지금까지 사용한 작업들에 대한 간단한 통계가 보입니다. 꾸준히 사용하다 보..
일전에 안드로이드나이츠를 통해서 에프터이펙트 + Bodymovin + Lottie 라이브러리를 통한 애니메이션 적용 방법에 대해서 발표를 했었는데 말이죠. 잠시 신경을 끄고 있던 사이에 많은 업데이트가 있었습니다Bodymovin이 4.10으로 업데이트 되면서 AVD(Android Vector Drowable)을 지원하기 시작하였습니다.지금은 버그가 수정된 4.10.2 버전이 최신입니다.https://github.com/bodymovin/bodymovin 프로그레시브 바 처럼 진행에 따라 애니메이션을 조절할 필요가 없고계속 플레이가 되고 있었으면 하는 단순한 형태의 애니메이션 필요한 경우 사용하시면 됩니다. 자세한 사항은 동영상을 참고해주세요 :) AfterEffects에서 Window → Extensio..
Facebook에서 Keyframe이라고 하는 라이브러리 및 플러그 인을 공개하였습니다. (https://facebookincubator.github.io/Keyframes/) FaceBook 모바일 화면에서 보이는 `좋아요` 애니메이션을 구현할 때 쓰인 라이브러리 인데요. 에프터 이팩트를 사용하여 에니메이션을 만들고 Json 파일로 Export 하여 Android, iOS, Web에서 읽어 애니메이션을 실행하도록 하는 라이브러리를 제공하고 있습니다. [바로 이런 것들...] 윈도우10, 에프터 이팩트 CC 2017을 기준으로 간단한 사용기를 올려 봅니다. 1.AfterEffects 설정하기 1) 어둠의 경로를 통하던 저처럼 클라우드를 정기구독하시던...우선 Ae를 설치해주세요. 이후 깃텁(https:/..
Facebook에서 만든 이미지 로드 라이브러리 Fresco가 11일 전 1.0.0 정식 버전이 론칭 되었습니다. 0.0.X 부터 써왔던 저로써는 저에겐 아주 뜻깊은 날이 아닐 수 없군요. (적어도 안정화된 버전이 나왔다라는 것 이니까요...) Fresco는 NDK 단에서 이미지를 파싱하기 때문에 다른 라이브러리에 비해 OOM이 발생할 확률이 매주 적습니다. 기존에 사용하던 ImageView 를 DraweeView로 교체해야하고 파이프라인이라고 하는 별도의 스트림을 통해 이미지를 로드해야 하는 불편함이 있으나 꽤 많은 Facebook App에서 사용하고 있습니다. `개밥 먹기`의 진수를 보여주는 Facebook이 프로젝트를 버리지 않고 1.0 버전이 나온 것을 감사드립니다 -ㅅ-; 사용법 및 다운로드는 ..
일반적으로 개발을 하면서 Log를 활용하여 데이터가 정상적으로 들어와 있는지 확인합니다. 하지만 Log가 릴리즈 버전에서 모두 표시가 안되는 것도 아니며 소스코드의 가독성을 해칠 우려도 있습니다.물론 프로가드나 기타 로그라이브러리를 사용하여 처리하는 방법도 있습니다. [다운로드가 됐는지 정말 궁금한 개발자 1의 소스코드] 오늘은 Android Studio에서 Log코드를 사용하지 않고 Debug모드에서 Break Point 활용하여 Log를 찍어보는 방법을 설명하겠습니다.해당 Tip을 알려주신 스티브님께 감사를..짝짝짝~위와 같은 소스코드가 있다고 합시다.위 소스 코드는 리스트 뷰의 item의 click을 감지하여 선택된 아이템의 이름을 토스트로 보여주고다른 Activity를 실행하는 순서로 되어 있습니..
간혹 FaceBook 등의 라이브러리를 사용할 때에 인증서의 MD5 나 Sha-1의 값을 물어 볼때가 있는데매번 커맨드 창에서 명령어로 칠 때 귀찮을 때가 있다. 그럴 때에는 Android Studio 내에서 간단하게 확인을 할 수 있다. ㅁ우선 그림과 같이 우측 Gradle 탭에서 확인하고자 하는 모듈의 Task에서android - sigingReport 를 더블클릭하여 실행해보면아래와 같이 Run 탭에서 사용하고 있는 키를 바로 확인 할 수 있다.참고로 릴리즈 키를 미리 Android Studio에 등록해두면 릴리즈 키도 같이 표시 된다.
본 포스팅은 TIN MEGALI의 동의를 얻어 MODEL VIEW PRESENTER (MVP) IN ANDROID, PART 1을 번역한 글 입니다. 원문은 아래의 링크를 통해 확인할 수 있습니다. [원문] : http://www.tinmegali.com/en/model-view-presenter-android-part-1/ Architecture 패턴은 컴퓨터 과학의 기본적인 부분입니다. 이것은 프로젝트를 깨끗하고 확장가능하며 테스트 가능하게 할 수 있는 유일한 방법입니다. 산업 표준을 고려하여 수년간 개발된 패턴은 솔루션으로 인정 받습니다. 패턴들은 끊임없이 진화하고 있습니다. 안드로이드 SDK에서 신뢰성이 높은 MVC 패턴이 MVP모델로 서서히 바뀌고 있습니다. 이 기사의 첫번째로 우리는 MVC 패..
/** * 파일 업로드 * @return */ @Multipart @POST("app/item/upload") Observable FileUpload(@PartMap Map params); RxAndroid를 사용하기 때문에 리턴 값이 Observable 이지만 Call 객체와 다르지 않습니다. public static RequestBody toRequestBody (String value) { RequestBody body = RequestBody.create(MediaType.parse("text/plain"), value); return body ; } Map map = new HashMap(); map.put("node", DownloadUtils.toRequestBody("1")); //file..
안드로이드 서포트 라이브러리가 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..
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를 만들기 위해서는 몇가지 필수 제약사항이 있습니다.패키지 명 같아야 하고 같은 인증서로 서명해야 합니다.버전 코드가 같아야 합니다.버전 코드에 대한 ..
안드로이드는 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..