Android darkmode disable code
2022. 6. 29. 17:39
[# 2]…My DevelopStory
Android darkmode disable code 안드로이드에 다크모드가 추가되면서 프로젝트내에 나이트 테마가 추가되었다. 언제부터인지 모르겠지만, 아무생각 없이 개발을 하다 보면 다크모드인 기기에서 큰 이슈가 발생한다. 예를 들어 글씨를 검정색으로 했는데 다크모드에서는 글씨가 전혀 보이지 않는다거나.. 등등 이럴 때 프로젝트 상 굳이 다크모드를 적용하고 싶지 않은 경우 코드의 테마를 바꾸어 주면 된다. 해당 테마는 원본 테마이며 이 테마의 parent만 바꾸어 주면 된다 parent를 Light로 변경해주면 다크모드가 적용된 기기에서도 앱의 테마는 다크모드를 따라가지 않는다
Android kotlin pair ~ How to modify a value in a pair
2022. 6. 29. 17:33
[# 2]…My DevelopStory
Android kotlin pair ~ How to modify a value in a pair 안드로이드 개발을 하다 보면 두개의 값이나 3개의 값을 한번에 보내야 하는 경우가 종종 있다. 이럴 경우 객체를 하나 만들어서 받게 되는데 이렇게 하면 시간도 늘어나고 라인수와 자칫 클래스 파일까지 하나 더 만들어져 버릴 수 있다. 그래서 코틀린에서는 아주 좋은 함수를 제공하는데 그것이 Pair이다 사용법은 아주 간단하다 val (name, gender) = Pair("Mader", "Man") println("name = $name") println("gender = $gender") val pairSample = Pair("kim", "unknown") println("name = ${pairSample...
Android Log Lib ~ Timber Lib
2022. 6. 29. 17:05
[# 2]…My DevelopStory
Android Log Lib ~ Timber Lib 개발을 하면 정말 중요한 것이 로그인데, 물론 무슨 프레임워크든 로그를 기본으로 아주 기본으로 제공한다. 안드로이드에서도 마찬가지로 제공을 하는데, 이를 좀 더 편리하게 쓰기위해서 로그관련 라이브러리를 찾아보면 많은 로그 라이브러리가 있는데, 이 중 아주 직관적인 로그 라이브러리를 소개하려고 한다. https://github.com/JakeWharton/timber 바로 Timber 라이브러리이다. 사용법도 아주 간단하다. 일단 라이브러리부터 추가하자 // log lib - timber implementation 'com.jakewharton.timber:timber:5.0.1' 그리고 해당 프로젝트의 application에서 셋팅을 해주면 어디에서든 ..
Android Force Update Check ~ Google InApp update lib
2022. 6. 24. 13:23
[# 2]…My DevelopStory
Android Force Update Check ~ Google InApp update lib 앱을 업데이트 했는데 강제로 업데이트 해야 하거나 업데이트을 하였다고 사용자에게 알려주어야 하고 싶거나 그럴 때가 있다. api를 통해서 관리를 할 수 있으나 이런 api조차 없는 개인 개발자일 경우 google의 inapp update 라이브러리르 사용하면 된다. // google inApp update implementation 'com.google.android.play:core:1.10.3' 간단하게 gradle에 추가를 해준 후 바로 구현 시작 private fun isAppUpdateAble(context: Context): Boolean { var isUpdate = false val appUpda..
Android exoplayer get play state
2022. 6. 23. 10:23
[# 2]…My DevelopStory
Android exoplayer get play state 안드로이드에서 동영상 재생을 위한 라이브러리는 감히 exoplayer가 가장 유명하지 않을까? 안드로이드 프레임워크에 포함되어 있지 않은 별도로 import를 해야하는 오픈소스 프로젝트지만, 구글에서 만든 라이브러리로 믿고 쓸 수 있다 이 exoplayer을 사용하던 중, 플레이에 대한 여러 state를 잡을 수 있는데, 예를 들어 동영상 종료후에 다른 동작을 하게 하던가 등등 state를 잡아서 코드를 작성할 수 있다. 이 state도 물론 제공을 해줘서 간단하게 구현을 할 수 있다. simplePlayer?.apply { if (isPlaying) { stop() } binding.player.player = this setMediaItem(..
Android TextView String resource bold / textView set html
2022. 6. 23. 00:00
[# 2]…My DevelopStory
Android TextView String resource bold / textView set html 텍스트뷰에는 String만이 아닌 html로 되어 있는 string resource도 추가할 수 있는데, 기존의 방법과는 조금 다르다 Title sample is sample]]> string resource에서 CDATA를 이용하면 간단한 html 태그도 사용할 수 있다. 컬러까지 변경이 가능한데 폰트 크기까지는 변경이 안되는 걸로 알고 있다. 일단 제목에 bold라고 해놓았으니 해당 태그인 태그를 추가 하였다. 위와 같이 설정 후 기존에 textview에 setText를 하면 에러가 난다. fun spannedToString(msg: String): Spanned { if (Build.VERSION..
Android TabLayout, Viewpager2 selected tab text bold
2022. 6. 21. 12:21
[# 2]…My DevelopStory
Android TabLayout, Viewpager2 selected tab text bold tablayout과 viewpager2 그리고 그에 따른 fragment를 사용하면 간단하고 탭 이동과 다른 화면을 보여줄 수 있다. tablayout에서 기본적으로 선택된 탭의 커스텀을 제공하고 있지만, bold처리만은 되어있지 않다. 이 기능은 리스너를 통해 직접 구현을 해야 한다. 구글에 검색을 하면 많은 자료들이 보이고 대부분 tablayout의 리스너를 통해 변경을 하고 있는데, 내 경우 스와이프시 잠깐 반짝이는 현상이 보였다. 아마 bold처리와 bold해제에서 문제가 발생한 듯 싶은데 이를 tablayout의 리스너를 통해서는 잡을 수 없었다. 그래서 방법을 바꿔 viewpager2의 registe..
안드로이드 코틀린 MotionLayout setTransitionListener ~ Android Kotlin MotionLayout setTransitionListener
2021. 5. 29. 20:24
[# 2]…My DevelopStory
안드로이드 코틀린 MotionLayout setTransitionListener Android Kotlin MotionLayout setTransitionListener 안드로이드 개발을 하면서 여러가지 애니메이션 효과를 넣어야 한다. 이 때마다 일일이 코드로 구현하느라 간단하 애니메이션을 쓰더라도 코드량이 많아지는 경험이 분명 있을 것이다. 이에따라 구글에서 MotionLayout을 제공하는데 나온것에 비해 나도 이제 처음 써본다. MotionLayout은 따로 implementation없이 constraintLayout에 포함되어 있다. 이 중 각각 액티비티에 만들어진 MotionLayot을 붙여야 하는 경우가 있는데 이 때 setTransitionListener을 사용하면 된다. 이 전에 각각 mo..
안드로이드 코틀린 KenBurnsView 구현하기 ~ Android Kotlin KenBurnsView
2020. 11. 9. 23:12
[# 2]…My DevelopStory
안드로이드 코틀린 KenBurnsView 구현하기 Android Kotlin KenBurnsView github.com/flavioarfaria/KenBurnsView 이번에는 많이 사용하지는 않지만, 막상 사용하면 생각외로 이쁜 효과 라이브러리를 소개해보려고 한다. 사례로는 사람들의 시선을 끌 수 있는 배너나, 심심한 이미지에 효과를 더해주는 곳에 사용하면 좋을 것 같다. 요즘에는 핸드폰 메모리도 출중하게 좋아, 많이 누적될 시 느려지는 현상을 걱정하면서 쓸 필요는 없다고 생각이 되지만, 안보일때에는 stop시키는게 좋다고 생각이 든다. 라이브러리는 위 url에서 확인할 수 있다. 이 url이 무엇인지 궁금할 수 있어 demo play gif이미지 한장을 가지고 왔다. 이렇게 사진의 포커스가 자동으로 ..
안드로이드 코틀린 중첩 리싸이클러뷰, expandable 3뎁스 리싸이클러뷰 구현 ~ Android Kotlin recyclerview in recyclerview, 3depth expandable recyclerview
2020. 10. 27. 00:41
[# 2]…My DevelopStory
안드로이드 코틀린 중첩 리싸이클러뷰, expendable 3뎁스 리싸이클러뷰 구현 Android Kotlin recyclerview in recyclerview, 3depth expandable recyclerview 일반 리싸이클러뷰는 많이 구현해보았고, 2depth까지 구현된 리싸이클러뷰는 라이브러리가 몇개 있다. 그런데 이번에 해봐야 할 것은 3depth까지 펼쳐져야하는 리싸이클러뷰를 구현해야 하여 많은 고민 끝에 중처 리싸이클러뷰로 만들기로 했다. 일반 리싸이클러뷰 처럼 리스트에 타입을 나눠서 1,2,3 레벨 모두 넘겨서 작업을 하다보면 리싸이클러뷰를 펼치기를 해서 화면밖으로 스크롤이 생길 때 position 및 size가 꼬여서 다시 아이템들이 재활용되는 상황을 볼 수 있다. 나는 조금 다른 방..