목록안드로이드 (77)
우찬쓰 개발블로그
안드로이드에 블루투스 기능을 붙여야하는 개발자들의 고통을 줄여주기위한 라이브러리를 소개하고자 한다. (RxJava를 모르면 더 고통스러워 질수 있으니 RxJava에 대한 지식이 있는 사람만 보기를 권장한다.) 구글에서 자체적으로 안드로이드에 지원하는 BLE라이브러리가 있지만, BLE 기능을 개발해본 개발자들은 알다시피 BluetoothGattCallback에서 전부 분기처리를 해주어야하니,, 여간 고통스러운일이 아닐 수 없다. 잠시 이 글과는 관계없는 다른 이야기를 하자면 자바에도 함수형 프로그래밍 바람이 불면서 OnClickListener등도 Activity class에 상속하거나 따로 변수로 생성하여 분기처리 하는 것이 아닌 람다로 간단히 해당 뷰에 set하는 형식으로 트랜드가 바뀌어 가고있다. 필자..
현업에서 안드로이드 개발을 하면서 log를 불편하게 사용하는 사람들을 많이 보았다. 그나마 짬밥(?)이 오래된 사람들은 로그 유틸 클래스를 만들어서 사용하거나, 자기만의 규칙을 만들어서 쓰곤한다. 물론 그들이 틀린것은 아니지만 알다시피 다른사람들이 본인만의 방식으로 만든 코드를 유지보수 하기란 여간 힘든 일이 아니다. 하지만 이런 문제를 가볍게 해결해 주면서 Stack Trace 출력, Release로 배포시 로그를 출력 안하게 해주는 기능까지 있는 라이브러리가 있으니, 바로 로거(Logger)이다. https://github.com/orhanobut/logger 위 링크에서 볼 수 있는 예제 스크린샷을 보자. 깔끔하게 구분되어 나오는 것을 볼 수 있다. 로거의 라이센스는 Apache-2.0이므로 안심하..
안드로이드 aar을 쉽게 추가하는법. 1. 안드로이드 스튜디오 좌측 project를 android에서 project로 바꿔준다. 에서 로 바꿔주면 된다. 2. libs 폴더에 aar파일을 넣어준다. 3. app 수준 gradle에 다음과 같이 추가한다. android { compileSdkVersion 27 defaultConfig { applicationId "com.woochan.example" minSdkVersion 19 targetSdkVersion 27 versionCode 1 versionName "1.0" testInstrumentationRunner "android.support.test.runner.AndroidJUnitRunner" } buildTypes { release { mini..
보통 TextView에 부분 BOLD 처리를 하기위해 val sourceString = "" + text1 + " " + text2; textview.test = Html.fromHtml(sourceString) 이렇게 많이 쓴다. 하지만 strings와 xml 수준에서 처리할 방법은 없을까? 답은 있다. ""연습용 텍스트""텍스트 텍스트 이렇게 한 후 xml TextView에 text 에 넣으면 미리보기상으로는 bold처리가 되지 않은 것처럼 보인다. 하지만 실제 빌드시 정상 동작하는 것을 볼 수 있다.
심플하게 안드로이드 내부 메소드로 처리하려면, res 폴더안에 values 안에 dimensions.xml을 만든 후 4dp 8dp 위와 같은 예제처럼 만들고 context.resources.getDimension(R.dimen.size_4dp).toInt() px값 넣는 곳에 이렇게 쓰면 된다. (참고로 코틀린 소스이다.)
현재 안드로이드에 오랫동안 리포트 되었지만 해결되지 않은 이슈이다.(참조)https://issuetracker.google.com/issues/37051723 해결방법은 custom behavior를 만드는 방법이 있다. (참조)https://stackoverflow.com/questions/31829976/onclick-method-not-working-properly-after-nestedscrollview-scrolled 여기에서 아래 링크를 타고가서 코드를 만든 후https://gist.github.com/chrisbanes/8391b5adb9ee42180893300850ed02f2 AppBarLayout에 app:layout_behavior 속성에 추가해주면 된다.
aar 파일이나 라이브러리를 프로젝트에 추가하였을 경우, 이 에러가 난다면 각 라이브러리의 코틀린 버전이 다를 확률이 높다. >>아래 그림 (프로젝트 수준의 빌드그래들) 필자의 경우 현재 프로젝트의 ext.kotlin_version이 1.2.51 이었으나, 새로만든 라이브러리의 ext.kotlin_version은 1.2.71 이어서 난 것으로 확인되었다. //// 추가또 다른경우 버그가 발견되었다. 1.3.21로 각각의 라이브러리를 만든후 1.3.21로 만든 프로젝트에 두개의 aar 파일을 추가하였으나 위와같은 에러가 반복되었다. 정확히 확인하지는 못했지만 1.3.21버전에 버그가 있는것으로 보이며 각각의 라이브러리의 코틀린 버전을 1.2.51로 낮추었더니 해결되었다.