개발 9

[RxJava] Single.just와 Single.create의 차이: 값을 계산하는 순서

아래 두 코드의 차이는 무엇일까? // fun updateConfigs(): Completable // fun getMyConfig(): String // 1번 코드 updateConfigs().andThen( Single.just(getMyConfig()) ) // 2번 코드 updateConfigs().andThen( Single.create { emitter -> emitter.onSuccess(getMyConfig()) } ) 1번 코드는 업데이트 전 config를 반환하고 2번 코드는 업데이트 후 config를 반환한다. RxJava 구현을 살펴보면 다음과 같다. public static Single just(final T item) public static Single create(Single..

개발/기타 2023.02.03

java.lang.NoClassDefFoundError: Failed resolution of: Landroid/support/v4/view/ViewCompat

java.lang.NoClassDefFoundError: Failed resolution of: Landroid/support/v4/view/ViewCompat support library가 androidx로 마이그레이션이 제대로 되지 않아 생기는 이슈 해당 프로젝트 또는 사용하는 라이브러리에서 support library를 사용하는 경우 발생 gradle.properties에 아래 설정을 추가하는 것으로 해결함 android.useAndroidX=true android.enableJetifier=true 공식 문서: https://developer.android.com/jetpack/androidx?hl=ko#using_androidx_libraries_in_your_project AndroidX 개요..

개발/Android 2023.01.30

git add commit push 한 번에 하기

git bash에서 git cmp라는 커맨드를 추가하는 방법이다. git config --global alias.cmp '!f() { git add --all && git commit -m "`date`" && git push; }; f' 커밋 메시지에 `date` 라고 적으면 현재 시간이 찍힌다(ex. 2020년 04월 23일 목 오후 5:58:52). 이제 git cmp 라고 입력하면 add, commit, push가 한꺼번에 된다. 개인적으로 메모장 용도로 쓰고 있는 레포에서 유용하게 쓰고 있다. 참고 사이트: https://stackoverflow.com/questions/19595067/git-add-commit-and-push-commands-in-one

개발/기타 2020.04.23

Android 10 다크 모드, 다크 테마 적용하기

Android 10부터 다크 모드를 본격적으로 지원하기 시작했습니다. 여기저기 참고해본 결과 제 생각에 가장 간편하게 다크 모드를 적용하는 방법을 공유해보겠습니다. 1. DayNight 테마 적용하기 기본적으로 Light 대신 DayNight 테마만 적용해도 기본 색상(기본 배경색, 기본 글자색 등)이 휴대폰의 다크 모드 옵션을 따라갑니다. DayNight 테마를 적용하는 방법 말고도 style에 forceDarkAllowed 속성의 item을 추가하거나 코드 상에서 setForceDarAllowed로 설정할 수 있습니다. 상황에 따라(ex. 하나의 앱에서 여러 개의 style을 사용하는 경우) 특정 테마에만 다크 모드를 적용할 수 있습니다. // sytles.xml true // in code view..

개발/Android 2020.04.22

adb로 안드로이드 기본 카메라 무음 설정(안드로이드 10 까지 적용 가능)

우리나라와 일본에서는 몰카 방지를 위해 카메라 셔터음이 나는 것을 표준으로 지정하고 있습니다. 법적으로 강제된 사항이 아니라 그냥 권고 사안인데 국내 휴대폰 제조사들이 너무 잘 지키고 있어서 카메라 셔터음 때문에 불편할 때가 많죠. 이전에는 무음 카메라 앱을 깔아서 사용하였는데 카메라를 켜면 음악 소리도 함께 무음 처리 되는 것이 마음에 들지 않았고, 안드로이드 10 부터는 무음 카메라 앱이 제대로 동작하지 않아 아예 카메라 셔터음 옵션을 꺼버리는 방법을 찾아보았습니다. 아래 방법은 안드로이드 10 뿐만 아니라 이전 버전에서도 적용 가능합니다. 1. adb 다운로드(SDK Platform-Tools 다운로드) https://developer.android.com/studio/releases/platfor..

개발/기타 2020.03.03

티스토리 코드 하이라이트(highlight.js, line number, 폰트 적용하기)

티스토리 에디터에 코드 블럭을 사용하면 태그가 자동으로 삽입됩니다. 그리고 티스토리 플러그인을 사용하면 기본적인 코드 하이라이팅 기능이 제공됩니다. 하지만 테마가 몇개 없고, 그다지 가독성이 좋아보이지 않습니다. 좀 더 제대로 된 코드 하이라이팅을 적용하기 위해 다음 3가지를 적용해보도록 하겠습니다. highlight.js 적용 line number 적용 코딩용 폰트 적용 ※ highlight.js를 적용하기 전 티스토리 플러그인을 사용 해제해주셔야 css가 겹쳐서 원하는 대로 적용되지 않는 문제가 발생하지 않습니다. ※ 티스토리 스킨에 따라 highlight.js나 line number 적용이 제대로 안될 수 있습니다. 이 경우 덮어씌워지는 css를 찾아서 잘 수정해주셔야 합니다. line number..

개발/기타 2020.01.22

Android Context 이해

안드로이드 개발을 하다 보면 Context를 여기저기에서 많이 쓰게 됩니다. 처음에는 Context의 개념이 와닿지가 않아서 그냥 예제 코드를 복붙하는 수준에서 이해하고는 하죠. 흔한 초보 개발자 🙋‍♀️ 🙋‍♀️ 파일 경로를 가져오고 싶어요. 💁‍♂️ context.filesDir로 가져올 수 있습니다. 🙋‍♀️ 이렇게 하면 파일 경로를 가져올 수 있구나! (context가 뭔진 모르겠지만 어쨌든 목적은 달성) 심지어 Activity == Context라고 이해하고 넘어가기도 합니다 // Activity에서는 다음 문장들이 별 차이가 없다 this.getDrawable(R.drawable.my_image) getDrawable(R.drawable.my_image) applicationContext.ge..

개발/Android 2020.01.15