개요RunIt이라는 러닝 기록 측정 및 랭킹 시스템을 통해 러닝에 대한 동기 부여를 높여주는 서비스 개발 프로젝트에 참여했다. 이 프로젝트를 진행하며 워치 앱 개발을 맡았다. watch OS의 경우 컴포즈로 코드를 작성하는 것을 권장하기 때문에 처음으로 컴포즈로 UI도 작성해봤다.watch OS에 Health Service API를 통해 건강 데이터를 받아올 수 있는데, 이게 샘플 코드가 있어서 작동 흐름이나 코드를 열심히 분석한다음에 프로젝트에 적용해봤다. Android Health블로그먼저, Android Health와 관련된 블로그 글을 찾고, 번역을 돌려봤다. Android Health는 건강 및 피트니스 앱을 제공하는 데 필요한 두 가지 중요 플랫폼인 Health Connect와 Health S..
이번에 하고 있는 프로젝트에서 TextView에 '더보기' 기능을 사용하려 했다. 저 TextView를 클릭하게 되면, 2줄이 지나 숨겨져 있던 텍스트들이 쨘 하고 나타나게 되는 기능이다. 내가 사용했던 방법은 AppCompatTextView를 상속받아서 이를 커스텀해서 사용 하는 방식이다. 일단, 전체 코드는 다음과 같다. ExpandableTextView.ktclass ExpandableTextView @JvmOverloads constructor( context: Context, attrs: AttributeSet? = null, defStyleAttr: Int = 0) : AppCompatTextView(context, attrs, defStyleAttr) { private var or..
🐶 debounce란더보기여러 이벤트가 발생할 때 이 이벤트를 일정 그룹으로 묶어서 하나로 처리하는 것.주로 실시간 검색에서 사용되는데 우리가 네이버와 같은 검색 엔진에서 검색 할때 밑에 관련 검색어가 나타난다!이때 하나의 타이핑 입력할 때마다 서버에 요청하게 되면 그만큼 서버에 부하를 주기 때문에 이를 타이핑이 입력되고 0.7초 0.5초 이런식으로 이벤트가 없을 경우 서버에 데이터를 요청하도록 하는 것이다!만약 설정한 시간안에 새로운 이벤트(타이핑)을 할 경우 전에 입력했던 이벤트는 취소된다!코드코루틴을 이용해서 구현했다! fun debounce( timeMillis: Long = 300L, coroutineScope: CoroutineScope, block: (T) -> Unit)..
네이버 지도 API(1) - 지도 띄우기네이버 지도 API(2) - 위치 에 이은 네이버 지도 프류젝트에 적용하기 3번째! 🗺️ 마커 클러스터링 프로젝트를 진행하면서 위의 이미지처럼 특정 지역에 저렇게 하나의 마커만 있으면 아무 상관 없는데 이렇게 몰려있게 되면 보기도 불편하고, 원하는 마커를 클릭하기가 굉장히 어려울 것이라고 판단했다. 그래서 위의 이미지처럼 마커들이 몰려있을 때는 숫자로 표현하고, 떨어져 있을 때는 단일 마커로 나타내게 하기 위해 네이버 지도 SDK에 마커 클러스터링을 활용하기로 했다. 네이버 SDK - 마커 클러스터링 마커 클러스터링 기능을 이용하면 카메라의 줌 레벨에 따라 근접한 마커를 클러스터링해 성능과 시인성을 모두 향상시킬 수 있습니다.기본적인 사용법키 정의마커 클러스..