-
[Android] fitSystemWindowsAndroid 2021. 8. 21. 16:27
Intro 개발을 하다가 뷰 하단에 빈 영역이 남는 현상이 있었다. 예를 들자면 아래와 같다. ... 내가 생각한 예상 대로라면 FrameLayout 영역 또한 마찬가지로 A - B 영역 안에 잡혀야 하는데 아무리 해도 FrameLayout 하단의 영역이 B 의 Top 까지 오지 않는 현상이 있었다. 자세히 보니 FrameLayout 영역에 android:fitSystemWindows 라는 attribute가 적용이 되어 있었다. 이것이 무엇인고 찾아보니 statusbar나 naivigationbar, Soft Key 같은 system windows 영역에 맞춰 뷰의 레이아웃이 적용하는 attribute 였다. 값이 true라면 system window 가 적용될 padding 이 적용 되는데, 나는 아..
-
[Android Error] java.lang.reflect.InvocationTargetException (no error message)Error 2021. 8. 16. 17:38
Execution failed for task ':app:kaptDebugKotlin'. > A failure occurred while executing org.jetbrains.kotlin.gradle.internal.KaptWithoutKotlincTask$KaptExecutionWorkAction > java.lang.reflect.InvocationTargetException (no error message) 상황 사이드 프로젝트로 DaagerHilt 량 moshi 랑 여러 이것저것 라이브러리 사용하고 있는데 위와 같은 에러가 발생했다. 해결법 stackTrace 확인해보니까 관련된 다른 에러가 많이 나오는걸 확인하였고, 나에게 맞는 해결법은 위 링크였다. Moshi 라이브러리 버전을 업데이트 ..
-
[Review] 오준석의 플러터 생존코딩Review 2021. 6. 20. 23:23
"한빛미디어 활동을 위해서 책을 제공받아 작성된 서평입니다." 최근 Flutter에 대한 관심이 생겨 리뷰어로 해당 책을 선택하여 서평 하게 되었다. 상세하고 기초적인 설명까지 잘 나와있어서 Flutter를 첫 언어로 접하는 개발자들에게도 좋은 책이 될 것이라는 생각이 든다. 한빛 미디어의 'Flutter In Action' 책도 가지고 있지만 그 책 보다 좀 더 초급자를 위한 책이란 생각이 들었고, 컬러 인쇄라든가 예제 소스를 생각해볼 때 이 책이 좀 더 읽기 쉬운 Flutter 책일 것이라는 생각이 들었다. 목차 더보기 [1부 플러터에 입문하기] 0장 플러터 개발 환경 준비하기 _ 0.1 앱 개발 방식 소개 _ 0.2 플러터 소개 _ 0.3 개발 환경 구성 _ 0.4 마치며 1장 생애 첫 모바일 앱 ..
-
[Kotlin] vararg (Variable number of arguments) 가변인자Kotlin 2021. 5. 9. 23:30
vararg - 함수의 매개변수에 vararg를 붙이면 매개변수의 개수를 유동적으로 받을 수 있다. - 일반적으로 마지막 매개변수에 사용한다. fun testVararg(vararg str: String): Unit { for (s in str) { println(s) } } val array = arrayOf("red", "blue", "green") testVararg(*array) testVararg("red","blue","green") 함수의 매개변수로 배열 형태로 넘길 수 있으나, 갯수가 길어지면 번거롭다. 그러기에 이미 존재하는 배열을 넘기고자 할때는 * Seperate operator를 배열 앞에 prefix로 붙여 넘길 수 있다. Ref) kotlinlang.org/docs/functio..
-
[Kotlin] none,any,all,containsKotlin 2021. 3. 30. 01:07
Collection에서 많이 사용되는 함수에 대하여 알아보자. any - Collection에 적어도 1개의 element 가 있으면 return true val list = listOf("red", "yellow", "green", "banana") val result: Boolean = list.any { it == "banana" } println("list any result is ${result}") //true none - any랑 반대 - match 되는 element가 없을 때 return true val list = listOf("red", "yellow", "green", "banana") val resultNone: Boolean = list.none { it == "banana" }..
-
[Kotlin] Pair or MapKotlin 2021. 1. 24. 19:03
Kotlin의 Map과 Pair에 대하여 알아보자. Map - 코틀린의 Map은 key와 value로 구성되어있는 dictionary 형태라고 생각하면 된다. - key는 유니크한 값이며, 유니크한 key는 다른 key와 동일한 value를 가질 수 있으며, 정의된 key를 통해 삽입 삭제 또한 가능하다. - 코틀린의 Map은 Collection 인터페이스를 상속하고 있지 않지만, 코틀린의 collection type으로 Map은 지정되어있다. Map 생성 val maps = mapOf(1 to "one",2 to "two",3 to "three") Map을 생성하기 위한 mapOf은 stlib에서 아래와 같이 나와있다. /** * Returns a new read-only map with the spe..
-
[Android] ViewTreeObserverAndroid 2021. 1. 3. 22:04
Background 회사에서 KeyboardHeight를 구해야 했다. 관련 방법을 여러 가지 서치 하다가 ViewTreeObserver라는 방식을 알게 되었다.추후에 키보드 높이 구하기 라는 포스팅을 따로 작성하고, 오늘은 VIewTreeBoserver에 대하여 알아보자. What is ViewTreeObserver? 공식문서를 살펴보면 View Tree의 번경 사항을 알려주는 리스너를 등록해서 사용하면 된다고 나와있다. 필자는 이것을 Dialog RootView에서 사용하였는데, 예를 들어 Dialog가 만들어지고 editText에 포커스가 깜빡이고 키보드가 생길 때 키보드의 높이를 가져와서 padding인가 marging에 넣는 작업이었다. 여기서 등록할수 있는 리스너 종류가 여러 가지가 있는데, ..