코틀린(9)
-
[ 안드로이드 - 코틀린 ] RecyclerView 클릭 위치를 Fragment에서 확인하기
🤷🏻♂️ 문제점 - 개발 도중 이중 리사이클려 뷰를 만들게 되었는데 (유튜브, 요기요, 배민, 네이버등에 존재하는 상단 선택바를 구현하기 위해) 지금 리사이클려 뷰에서 클릭한 위치를 알아내야되는 일이 발생하였다 일반적으로 리사이클러 뷰 이벤트를 어댑터 내에서 처리해 액티비티나 프래그먼트에서 정보를 알 수 없었다 해결 방법 - 어댑터 내에서 인터페이스를 만들어 클릭한 이밴트의 position을 외부로 보내줘 액티비티나 프래그먼트에서 확인할 수 있게 만들어줬다 -> 추가적인 해결방법으로는 xml에 Chip 위젯을 이용하면 쉽게 해결할 수 있다 😤 class TopScrollRecyclerAdapter(val dataList: Array, spinnerData: String, val context: Cont..
2023.02.09 -
[ 안드로이드 - 코틀린 ] Dialog에 RatingBar 추가하기
😅 RatingBar 만들면서 겪은 문제점을 적어보겠다 이번에 커스텀 다이얼로그에 ratingbar를 처음 써보게 됬는데 생각보다 오래 걸려서 기록을 남긴다 1. 크기 조절 문제 2. 색 조절 및 배경 색 조절 3. 클릭 이벤트 작동 안됨 4. 색 잔상 같은 배경이 남음 모든 문제점을 해결하고 만들어진 ratingbar 이다 1번 문제점은 안드로이드 style에서 위젯 크기를 3가지로 조절할 수 있다 그 이외의 사이즈는 커스텀을 통해 만들어야된다 2번 문제점은 progressTint에서 색을 변경해주는 것으로 해결할 수 있었다 3번 클릭 이벤트는 style을 적용하지 않은 기본 버전은 다른 설정 없이 조절이 가능했지만 1번 사이즈 조절을 하게되면 이벤트가 적용이 되지 않는다 이럴 때는 isIndicato..
2023.01.28 -
[안드로이드 - 코틀린] SpeedView 라이브러리를 이용한 수치 측정 UI 만들기
마무리 후 남기는 후기 1. 이번에는 앱을 만드는 시간보다 뭘 써야될지 디자인하는데 더 오래걸린거 같다... 구글링의 중요성을 뼈저리게 느껴버렸다 2. 그리고 제발 Viewbinding 배워서 사용하자 id값이 6개인데 각각의 값들마다 6개씩 선언해야되는 값들이 있어서 노가다를 엄청했다 심지어 너무 많아서 중간중간 확인 안하면 잘못적기도... 코드 작성 환경은 Activity가 아닌 TabLayout 내에 있는 Fragment입니다 1. SpeedView 라이브러리 불러오기 라이브러리를 사용하기 위한 gradle 세팅 현재 사용한 버전입니다 implementation 'com.github.anastr:speedviewlib:1.6.0' 2. SpeedView 중 SpeedView를 이용했다 ( 다른 재밌..
2022.12.15 -
[안드로이드 - 코틀린] MPAndroidChart 라이브러리를 이용해 Linechart 그래프 그리기 (정적)
시작 전 나와 같은 초보자들이 참고하면 좋았을 법한 사항들 작업 끝나고 후회는 점은 기간이 급박하여 시작 전 어떤 식으로 작업할지 계획을 잡지 않고 주먹구식으로 그때그때 수정하는 작업을 했다 특히 기존 블로그들에 올라와있는 작업들 대부분 데이터가 앱 내부에 존재해 로딩? 혹은 데이터를 받을 시간을 주지 않아도 되었기 때문에 그 방식 그대로 했다가 잦은 오류가 발생되었다 -> 특히 실시간 처리가 필요한 부분에 적절한 handler을 줘야 ui가 업데이트가 될 수 있다 특히 차트가 6개나 있어서 꼭 필요한 작업이었다 시간적인 여유가 있으면 handler과 어떤식으로 할지에 대한 기본적인 틀을 작성하고 시작했으면 좋겠다 그리고 제일 중요한 생명주기 공부가 필수이다 처음 시작할 때는 만만히 보고 시작했지만 생각..
2022.12.15 -
[안드로이드 - 코틀린] retrofit2 사용하기
앱으로 외부에 있는 데이터를 불러오기 위한 아주 기본적인 데이터 통신 라이브러리이다 많은 사람들이 많이 사용하고 앞으로도 많이 사용할 라이브러리이다 한 번에 이해해 잘 써보도록 하자 처음 retrofit2를 사용하면서 느낀 점은 어렵다 였다 처음으로 서버 데이터를 받아서 사용해보는 과정에 이해하지 않고 넘어가 고생한 부분과 힘들었던 부분을 풀어서 설명할 예정이다. 일단 설명하기전 기본적으로 알아야 되는 개념에 대해 알아보자 처음 나는 빠르게 통신 처리를 해야 되는 일이 있어 개념보다는 코드에 집중해 이때는 이거 저때는 이거 이런 식으로 외워서 들어가는 식으로 했다 ( + 기본적인 언어 개념도 부족했음 ) 하지만 기초적인 부분은 사용 가능해 통과할지언정 조금만 응용이 들어가는 순간 막혀 해결하는데 오래 걸..
2022.11.21 -
[안드로이드 - 코틀린] 안드로이드 socket 통신 - (임계치 측정 어플리케이션)
특징 : 현재 애플리케이션 기준으로 소켓 데이터는 서버에서 받아서 서버에서 앱으로 전달받는 역할을 한다 때문에 소켓을 이용해 따로 데이터를 전송하지 않고 받기만 하는 역할을 한다 시작 전에 build.gradle 쪽에 소켓 통신을 위한 빌드 파일을 불러와야 한다 // socket 통신 implementation ('io.socket:socket.io-client:2.0.0') { exclude group: 'org.json', module: 'json' } 그다음으로는 소켓을 이용하려면 서버에 클라이언트를 연결해야 된다 아래는 애플리케이션에서 필요한 클래스들이다 // onCreateView 상단에 선언 해준다 lateinit var socket_data: Array // 소켓 룸, 방에 접속하기 위한 열..
2022.11.21