Dev 319

[Android] TextView draw Underline - 텍스트 밑줄 긋는 3가지 방법

TextView 에서 밑줄(Underline) 긋는 방법 3가지!!!! TextView 에서 밑줄을 긋기 위해서 검색을해서 (제가)알아낸 3가지 방법입니다. 1. strings.xml 에서 간단하게 HTML Tag 이용하는 방법 Java // strings.xml 작성 I can't find pairing button // Activity 에서 작성 TextView.setText(Html.fromHtml(getResources.getString(R.string.리소스))); Kotlin TextView.text = if (Build.VERSION.SDK_INT >= Build.VERSION_CODES.N) { Html.fromHtml(resources.getString(R.string.리소스), Html..

Dev/Android 2019.01.10

[Android / Error] resource android:attr/fontVariationSettings not found.

resource android:attr/fontVariationSettings not found. 안드로이드 그래들(Gradle) 버전을 3.2.1 로 올리면서 관련 에러가 나왔었다.(참고로 support library 도 28.0.0 으로 올리고 전반적으로 버전업 진행!!) 라이브러리는 기존 27.0.1 에서 28.0.0 로 버전을 올리면서compileSdkVersion 은 기존에 git에서 받았던 그대로(27)로 진행했기에 리소스를 찾지 못했던것 같다. compileSdkVersion 을 28로 올리면서 해결 현재, Gradle 3.2.1 / compileSdkVersion 28 / support library 28.0.0 참고 https://stackoverflow.com/questions/4920..

Dev/Error 2018.12.20

새롭게 소스 다운을 받고 열때, 발생!! - No toolchains....

No toolchains found in the NDK toolchains folder for ABI with prefix: mips64el-linux-android 참고 블로그 : http://crmn.tistory.com/75 NDK를 사용하는 소스의 경우,NDK 버전이 올라가면서 MIPS형 CPU 지원이 중단되어서 되어서 발생하는 문제이다. 해결책은 Gradle 버전을 최신으로 올리면 해당 이슈가 해결이 된다. Gradle version 3.1.4 이상으로 올리면 해당 관련 이슈가 나오지 않는다.현재 그래들 최신 버전은 3.2.1 이다.

Dev/Android 2018.12.18

Garmin WatchFace UI 제작 - 가민 시계

Garmin WatchFace UI 제작 최근에 아시는분의 요청으로 Garmin 시계 WatchFace 작업을 했다. 처음으로 Monkey C 를 접했다. Garmin WatchFace 작업을 할때, 레이아웃은 전부 코드로 작업했다. XML 상에서 레이아웃을 그리고 추가적으로 코드로 레이아웃을 그려서 적용하는 방법을 몰랐기 때문에 어쩔수 없이 코드로만 작성했다. 그리고 추가적으 XML으로 레이아웃을 작업할 수는 있지만 XML 을 통해서 작업하는게 Custom 작업하기가 더 어려운것 같았다. 더불어서 폰트 적용이 가장 어려웠다. 커스텀 폰트 작업을 하려면 사이즈에 맞게 계속 Bitmap 형식의 폰트를 만들어야했다. 코드로 화면을 그리는 방법과 XML를 통해서 화면을 그리는 방법 등이 제대로 이해가 안되서 ..

Dev/Others 2018.11.04

부족한 부분 참고

photo by Fabian Grohs on Unplash 1. BLE 통신 수단의 장단점?- 근거리 통신 수단으로 wi-fi, LTE 도 있을것인데, 그에 비해서 전력의 소모가 적다(Bluetooth조차도)- 대량 생산을 할 수 있게 가격이 저렴하다. 2. 함수형 프로그래밍이란? (뭐가 좋은지?)- 3. RxJava, EventBus 의 장단점? (왜 쓰는지?)- 4. 코틀린을 사용하면 뭐가 좋은가?- 5. 이 문제를 해결하기 위해서 어떤 생각들을 했는가?-> 어떻게 해결을 해야겠다, 이 문제의 목적은 이런것 같다 등의 부분들... (작성중....)

Dev/참고 2018.10.30

코틀린 - 고차 함수: 파라미터와 반환 값으로 람다 사용 (요약)

8장 고차 함수: 파라미터와 반환 값으로 람다 사용 (요약) - 함수 타입을 사용해 함수에 대한 참조를 담는 변수나 파라미터나 반환 값을 만들 수 있다.- 고차 함수는 다른 함수를 인자로 받거나 함수를 반환한다. 함수의 파라미터 타입이나 반환 타입으로 함수 타입을 사용하면 고차 함수를 선언할 수 있다.- 인라인 함수를 컴파일할 때 컴파일러는 그 함수의 본문과 그 함수에게 전달된 람다의 본문을 컴파일한 바이트코드를 모든 함수 호출 지점에 삽입해준다. 이렇게 만들어지는 바이트코드는 람다를 활용한 인라인 함수 코드를 풀어서 직접 쓴 경우와 비교할 때 아무 부가 비용이 들지 않는다.- 고차 함수를 사용하면 컴포넌트를 이루는 각 부분의 코드를 더 잘 재사용할 수 있다. 또 고차 함수를 활용해 강력한 제네릭 라이브..

Dev/Kotlin 2018.10.17

코틀린 - 연산자 오버로딩과 기타 관례 (요약)

7장 연산자 오버로딩과 기타 관례 - 코틀린에서는 정해진 이름의 함수를 오버로딩함으로써 표준 수학 연산자를 오버로딩할 수 있다. 하지만 직접 새로운 연산자를 만들 수는 없다.- 비교 연산자는 equals 와 compareTo 메소드로 변환된다.- 클래스에 get, set, contains 라는 함수를 정의하면 그 클래스의 인스턴스에 대해 [] 와 in 연산을 사용할 수 있다고, 그 객체를 코틀린 컬렉션 객체와 비슷하게 다룰 수 있다.- 미리 정해진 관례를 따라 rangeTo, iterator 함수를 정의하면 범위를 만들거나 컬렉션과 배열의 원소를 이터레이션할 수 있다.- 구조 분해 선을을 통해 한 객체의 상태를 분해해서 여러 변수에 대입할 수 있다. 함수가 여러 값을 한꺼번에 반환해야 하는 경우 구조 분..

Dev/Kotlin 2018.10.09

코틀린 - 코틀린 타입 시스템 (요약)

6장 코틀린 타입 시스템 - 코틀린은 널이 될 수 있는 타입을 지원해 NullPointerException 오류를 컴파일 시점에 감지할 수 있다.- 코틀린의 안전한 호출(?.), 엘비스 연산자(?:), 널 아님 단언(!!), let 함수 등을 사용하면 널이 될 수 있는 타입을 간결한 코드로 다룰 수 있다.- as? 연산자를 사용하면 값을 다른 타입으로 변환하는 것과 변환ㄴ이 불가능한 경우를 처리하는 것을 한꺼번에 편리하게 처리할 수 있다.- 자바에서 가져온 타입은 코틀린에서 플랫폼 타입으로 취급된다. 개발자는 플랫폼 타입을 널이 될 수 있는 타입으로도, 널이 될 수 없는 타입으로도 사용할 수 있다.- 코틀린에서는 수를 표현하는 타입(Int 등)이 일반 클래스와 똑같이 생겼고 일반 클래스와 똑같이 동작한다..

Dev/Kotlin 2018.09.30

코틀린 - 코틀린 타입 시스템 (정리)

코틀린 타입 시스템 (Kotlin In Action) - 코틀린의 타입 시스템은 코드의 가독성을 향상시키는 데 도움이 되는 몇 가지 특성을 제공한다.- 널이 될 수 있는 타입, 읽기 전용 컬렉션 ? - fun strLen(s: String) = s.length 일 경우, 해당 함수가 널과 문자열을 인자로 받을 수 있게 하려면 타입 이름 뒤에 물음표를 명시해야 한다. fun strLen(s: String?) ?. - 안전한 호출 연산자 -> null 검사와 메소드 호출을 한 번의 연상으로 수행하게 도와준다. ?: - 엘비스 연산자 -> null 대신 사용할 디폴트 값을 지정할 때 편리하게 사용 fun foo(s: String?) { val t: String = s ?: " " } as? - 안전한 캐스트 ..

Dev/Kotlin 2018.09.30