일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 구현
- 안드로이드 리소스
- AndroidWeek
- RX
- 분류
- ReactiveX
- parser
- gradle
- Connectable Observable Operators
- RXjava
- android weekly
- 안드로이드
- Season3
- JSON
- logansquare
- 디버그
- MVP
- rxandroid
- android resource automation
- 리소스 자동화
- Kulle
- 성공
- Android Support Library
- Observable
- 9498
- retrolambda
- DIABLO4
- 백준
- Android
- Today
- Total
목록분류 전체보기 (37)
안드로이드 개발 팁 블로그
Diablo4 how to get Zoltun Kulle's Journal There is currently an issue in the Seasonal Questline where players cannot interact with the brazier to upgrade their construct and advance the quest. The current workaround for this will be that players need to enter a new instance. This can be done by: Disabling Crossplay Closing the game entirely and re-logging Changing World Tiers Note that using a t..
dagger 2.28에서 2.34 마이그레이션을 진행하던 중 아래와 같은 이슈가 발생하였다. > Task :app:kaptDebugKotlin error: cannot access DefaultActivityViewModelFactory class file for dagger.hilt.android.internal.lifecycle.DefaultActivityViewModelFactory not found Consult the following stack trace for details. cannot access DefaultActivityViewModelFactory 해결방법은 @ViewModelInject 어노테이션이 deprecated되었기에 @HiltViewModel 변경하면 해결 You can ..
많은 Android 프로젝트에서 사용하고 있는 JCenter 아티팩트 저장소의 유지보수 회사인 JFrog는 최근 JCenter의 지원을 중단하고 앞으로 서비스를 종료할 것이라고 발표했습니다. 발표에 따르면 2022년 2월 1일까지 JCenter에서 기존 아티팩트를 다운로드할 수 있습니다. JCenter에 아티팩트를 게시하는 개발자는 새 호스트(예: Maven Central)로 패키지 이전을 시작해야 합니다. 가까운 시일 내에 이 페이지를 통해 JCenter에서 Android 프로젝트를 이전하는 방법에 관한 추가 정보를 제공할 예정입니다. JCenter에서 Maven으로 마이그레이션 금년 2021년 5월 1일에 Bintray (JCenter 포함), GoCenter 및 ChartCenter 서비스를 중단 ..
// SingleTickerProviderStateMixin 클래스는 애니메이션을 처리하기 위한 헬퍼 클래스 // 상속에 포함시키지 않으면 탭바 컨트롤러를 생성할 수 없다. // mixin은 다중 상속에서 코드를 재사용하기 위한 한 가지 방법으로 with 키워드와 함께 사용 출처: https://pythonkim.tistory.com/121 [파이쿵] void didChangeDependencies () @mustCallSuper, @protected Called when a dependency of this State object changes.
문제 시험 점수를 입력받아 90 ~ 100점은 A, 80 ~ 89점은 B, 70 ~ 79점은 C, 60 ~ 69점은 D, 나머지 점수는 F를 출력하는 프로그램을 작성하시오. 입력 첫째 줄에 시험 점수가 주어진다. 시험 점수는 0보다 크거나 같고, 100보다 작거나 같은 정수이다. if문을 사용하는 예제 같으나 kotlin에 맞게 when과 range로 처리 fun main(args: Array) { var sc: String? = readLine() var input: String = sc.toString() var value: Int = input.toInt(); when (value) { in 90..100 -> { println("A") } in 80..89 -> { println("B") } in..
안드로이드 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 버전이 나온 것을 감사드립니다 -ㅅ-; 사용법 및 다운로드는 ..
ARTICLES & TUTORIALS 멋진 한해를 주셔서 감사합니다!(androidweekly.net)2016년 마지막 이슈 입니다. 그래서 우리는 당신의 지원과 의견 덕분에 멋진 커뮤니티가 되었습니다. 대단히 감사합니다:) 해피 홀리데이! ConstraintLayout으로 인터페이스 만들기 (medium.com)이 기사에서는 Android Studio 2.3 (Beta)의 ContstraintLayout에 최근 추가된 체인 및 비율과 함께 일반적인 사용방법에 대한 팀과 트릭을 제공합니다. Android Things을 사용하여 전자양초 만들기 (plus.google.com)Dave Smith 가 ObjectAnimator와 Android Things을 사용하여 전자 양초를 만들어 보았습니다. ExoPla..
Issue #236December 18th, 2016ARTICLES & TUTORIALS IOT플렛폼 Android Things를 시작해보기 (medium.com)튜토리얼을 보고 단계적으로 안드로이드 Things를 Raspberry Pi 3에 올려보고 실행해보세요. FileProvider (blog.stylingandroid.com)만약 우리가 다른 앱과 파일을 공유하기가 필요할 때 DownloadManager를 사용하는 대신 FileProvider를 어떻게 사용하는지 Mark Allison 이 알려드립니다. Layout 미리보기를 활용해서 일하기 (www.novoda.com) 안드로이드 Studio는 레이아웃 파일이 사용자의 장치에 어떻게 렌더링 될지 이해하는 데 도움이 되는 강력한 도구와 함께 제공됩..
일반적으로 개발을 하면서 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에 등록해두면 릴리즈 키도 같이 표시 된다.
해당 포스트는 ReactiveX api 공식 문서 번역 정리한 글입니다.Connectable Observable OperatorsConnectableObservable의 서브 클레스와 오퍼레이터에 대해서 설명을 하고자 한다.ConnectableObservable.connect( ) — Connectable Observable에게 아이템 방출을 시작하라고 지시한다.Observable.publish( ) — Observable을 Connectable Observable으로 변형시킨다.Observable.replay( ) — 모든 Observer들에게 방출이 시작된 후에 구독을 했을 경우라도 같은 순서의 방출된 아이템을 볼 수 있도록 보장합니다.ConnectableObservable.refCount( ) — ..
본 포스팅은 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..
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을 상속 받은 별도의 리스너를 만들어 사용할 수 있다. 이하는 소스 코드.