본문 바로가기
반응형

안드로이드/코틀린33

recyclerView 스크롤 이벤트 작성 jetpack이 나오고 난 후로 페이징 관련해서 paging이라는 친절한 친구를 제공하고 있습니다. 하지만 아직까지도 여러가지 이유로 인해 리사이클러뷰의 스크롤링을 조절해야줘야 하는 상황이 생기죠. 이를 사용하기 위해 간단하게 작성한 코드를 까먹을 때 마다 보러 오기 위해 남겨둡니다. 사실 리사이클러뷰 자체에 대해서 잘 모르는 경우에는 이 코드를 보고 단번에 이해하지 못하실 가능성이 높을지도...? /** * 스크롤 아래로 퍼센트 계산 * @return % */ fun scrollPercent(recyclerView: RecyclerView): Double { return (recyclerView.computeVerticalScrollOffset() * 1.0 / (recyclerView.computeV.. 2021. 12. 29.
코틀린 - apply, with, let, also, run(Scope Functions) 코틀린을 접하게 된 지 1년이 넘었네요. 처음 코틀린을 배우게 됐을 때 제일 당황했던 부분이 제목에 적어놓은 다섯가지였습니다. 저것들을 뭐라고 표현하는 지도 모르고, 어떨때 어떤 것을 사용해야 하는지도 모르는 채, 제가 받은 프로젝트를 분석하고 비스무리하게 사용하는데 초점을 둔 기억이 나네요. (사실 지금도 잘 모르겠습니다. 아무거나 돌려도 얼추 돌아가서...) 뭐, 시간이 지나고 여유가 생기니 이런 부분에 제 부족함이 느껴지기 시작했습니다. '이왕 사용할거라면 좀 더 알맞은 곳에 알맞은 함수를 사용해야 하지 않을까?' 하는 생각이 분명 들기 시작했다는 거죠. 너무 늦게 이런 생각을 한 게 아닌가 싶긴 합니다. 하여튼! 이러한 함수들을 범위지정함수라고 한답니다. 이러한 범위지정함수는 수신 객체와 수신 객.. 2021. 8. 24.
Live data와 ObservableField는 무엇일까? 회사에서 jetPack을 적용하기 위해 공식문서와 여러가지를 참조해서 ViewModel을 처음 생성할 때 저는 Live Data만 알고 있었습니다. 그래서 ObservableField가 무엇인지 알지 못했습니다! 그런데 제가 어쩌다 다른 회사에 지원을 하게 되었고, 그 회사의 사전 면접에서 LiveData와 ObservableField의 차이점이 무엇인지에 대해서 물어보는 것이었습니다. 아예 ObservableField에 대한 정보가 없던 저는 당연히 제대로 대답하는 것이 불가능했고!(안타깝지만 모르는 것을 아는 척하는 것보다는 모른다고 대답하는 것이 더 매끄러운 것 같아서 그냥 모른다고 대답했습니다.) 이후 저는 블로그에 꼭 글로 남겨둬야겠다는 다짐을 하게 되었습니다. 덕분에 이번 게시글의 주제는 Li.. 2021. 7. 26.
(android - jetPack) bindingAdapter 이 글의 주제는 BindingAdapter의 사용법에 대해서 정리하는 것입니다. 사실 얼마전까지 이 bindingAdapter가 어떤 원리로 구동되는지 명확하게 와닿지 않아서 제대로 사용을 못하고 있었는데, 얼마전에 겨우 조금 실마리가 잡힌 것 같아 정리를 하려고 합니다. 먼저 bindingAdapter에 대해서 짧게 설명하자면, xml에서 속성값을 이용해 adapter를 부착하려는 것이 목표입니다. 물론 속성값을 통해 데이터를 바인딩하는 만큼, 꼭 리사이클러뷰가 아니라 일반 textView나 Button에도 부착할 수 있지만, 저는 현재 recyclerView에서 사용하고 있기 때문에 그와 관련된 내용을 다루겠습니다. 혹시 일반 View의 속성값에 바인딩어댑터를 사용하고 싶다면, 그런 글을 참고하는 것.. 2021. 6. 6.
Gson의 기본적인 사용법(with kotlin) 이전 게시글 중 하나에 Gson과 Json의 차이점이라는 제목으로 Gson을 짧게 다룬 적이 있습니다. 그때와는 조금 다르게 이번에는 Gson을 어떻게 코틀린에서 사용하는지에 대해서 공부한 내용을 기록해두려고 합니다. https://github.com/google/gson google/gson A Java serialization/deserialization library to convert Java Objects into JSON and back - google/gson github.com Gson은 Json 데이터를 가공하는데 있어 좀 더 편하고 효율적으로 관리할 수 있도록 도와주는 라이브러리로 google에서 제공하는 Json을 줄여 Gson이라고 부른다고 보면 되겠습니다. Json이 무엇인지 간단.. 2021. 5. 29.
(android) skydoves - Balloon 이 글의 주제는 Balloon이라는 간단한 상태창을 만들기 위한 라이브러리입니다. 안드로이드는 다양한 view가 존재하고, 더 간단하게 view를 생성하고 관리하고자 여러가지 라이브러리들이 존재합니다. 저는 이전에는 douglasjunior의 simpletooltip이라는 라이브러리를 사용하고 있었으나, 제 프로젝트 내에서 사용하기 적합하지 않은 구조로 프로젝트가 변경되어서 Balloon이라는 라이브러리로 갈아타게 되었습니다. 물론 사내 라이브러리를 하나 따로 제작하는 것도 경험상 나쁘지는 않다고 생각했으나 아무래도 이 라이브러리가 꽤 간단하게 사용할 수 있기도 하고, 제 프로젝트에 괜찮아서 적용하게 되었습니다.(사실 디자인적인 부분에서 워낙 수준이 떨어지는 제 문제로 인해...) 역시 이 글을 보기보다.. 2021. 5. 27.
728x90