본문 바로가기
화면이 뭔가 버벅거리는거 같다. 이유가 무엇일까? 안드로이드에서 앱 개발을 하다 보면 뭔가 화면의 렌더링 속도가 생각보다 길다고 느껴질 때가 있다. 데이터가 많은 것 같지도 않고 무언가 대단한 화면이 아닌데, 왜 오래 걸릴까? 싶은 생각이 듭니다.이럴 때 Android Studio 개발 툴에서 원인이 무엇인지 찾아볼 수가 있는데요. 오늘은 원인을 파악하기까지의 과정을 담아보려고 합니다.일단 화면이 어떻게 그려지는지에 대한 구조적 이해가 필요할 텐데요. 이 부분은 안드로이드 공식문서의 그래픽 카테고리에서 확인이 가능합니다. 그래픽  |  Android 오픈소스 프로젝트  |  Android Open Source Project그래픽 컬렉션을 사용해 정리하기 내 환경설정을 기준으로 콘텐츠를 저장하고 분류하세요. Android 프레임워크는 그래픽 드라이버의 제.. 2024. 6. 26.
의존성 주입은 Hilt로, 네트워크 통신은 Retrofit으로 Hilt를 사용하다 보면 빌드에러를 자주 보곤 합니다. 뭐 당연한 이야기입니다. Hilt의 에러는 빌드 시에 판단되니까요.이번 포스팅에서는 네트워크 모듈과 관련된 내용입니다.Retrofit 을 구현하여 API를 연동할 때, 어떤 레포지토리를 구성해야 하는지, 인터페이스와 Multiple 하게 구현해야 할 때는 어떤 것을 주의해야 하는지 등 전반적인 구현을 다루어볼 예정입니다.일단 라이브러리를 사용하기 위해 dependency를 추가해줍니다.build.gradle.ktx(:project)id("com.google.dagger.hilt.android") version "2.48" apply falsebuild.gradle.ktx(:app)hilt와 네트워크 통신 라이브러리인 retrofit과 okhttp를 .. 2024. 6. 25.
Android 에서 째깍째깍 타이머 구현하기 일단 기본적으로 Android에서는 타이머를 쉽게 사용할 수 있도록 클래스를 제공해주고 있습니다.CountDownTimer : Android os 패키지 내에서 제공따라서 간단하게 object를 상속받아서 사용할 수도 있지만 저는 조금 더 중복코드를 줄이기 위해서 추상화 클래스를 하나 생성하여 구현해보려고 합니다. 또한 CountDownTimer를 이용하여 일시정지까지 가능하도록 재구현을 해보려고 합니다.추상화 클래스를 만들기 전에, object를 어떤 식으로 구현해서 사용하는기 기본적으로 알아보려고 합니다.코드 화면 내에서 타이머가 필요한 경우, 활용할 수 있는 사용법 입니다.저는 화면 코드 내에서 countDownTimer를 전역변수로 두고 object의 인스턴스를 선언해 주었습니다.onTick() .. 2024. 5. 3.
오늘 하루를 충실히 아니 손이 베일듯이 완벽한 하루를 보내도록 왜 일하는가 : 지금 당신이 가장 뜨겁게 물어야 할 첫 번째 질문 (이나모리 가즈오 저/ 김윤경 역) 왜 일하는가 : 네이버 도서네이버 도서 상세정보를 제공합니다.search.shopping.naver.com 뭔가 스스로 진지하게는 처음으로 물어보는 질문이었던 것 같습니다. "왜 일하는가." 글쎄요, "그냥..."이라는 답이 떠오릅니다.많은 의미가 담겨있기는 하지만요. 돈도 벌어야 하고 사회적으로 1인분을 해내야 하기 때문이기도 하고 어쩌다 보니 이젠 가장이라 일을 해야 하는 강제적 상황에 몰려있기 때문이기도 합니다.배운 게 도둑질이라, 학부 전공을 살려 개발자가 되었고 이런저런 프로젝트를 하다 보니 안드로이드 개발자가 되어있었습니다.사실 무언가 목적이 대단히 있어서가 아니라 그냥 흘러가는대로 두었더니 .. 2024. 5. 2.
코드를 잘 관리해야 하는 이유를 몸으로 배우다. 22년 11월 이직 후, 벌써 1년이 조금 넘는 시간 동안 B2C 서비스 앱을 담당하면서 코드를 잘 관리해야 하는 중요성을 절실히 깨닫고 있는 요즘입니다.분명 SI회사에 재직 중일 때는 프로젝트 성으로 진행되는 업무가 너무 힘이 들었는데요. 서비스 유지보수 업무는 그 나름대로의 고됨이 있는 것 같습니다. 다양한 사용자의 특이한 오류케이스 부터 외계인코드를 관리해야하는 여러가지 힘듦이 있더라고요. 특히 이번에 거대 리펙토링을 시작하면서 더더욱이 그런 생각을 하는 중인데요, SI에서도 본적 없었던 'android-kotlin-extensions'를 걷어내고 있습니다. 놀랍게도 현재 실 서비스 중인 코드에서 사용 중이고, 이번에 특정 사유로 Kotlin 버전과 기타 코드 환경 버전 등을 업데이트하면서 발견하게.. 2024. 3. 24.
ViewBinding으로 Binding 처리하기. (feat. DataBinding) 이번 포스팅에서는 ViewBinding을 좀 더 뜯어보고 여러 뷰에 적용도 시켜보는 내용을 다루어 보려고 합니다.사실 현업에서나 학생때나 ViewBinding은 익히 써왔고 익숙하고 당연히 View의 내용을 가져오기 위해서 사용하는 방법이기 때문에 기술적으로 탐구를 해볼 생각은 없었는데요.이번에 여러 이슈들을 겪으면서 경험에 의존하는 코딩이 굉장히 위험하고 실제적인 업무 처리 능력을 저하시키는 것을 경험하면서 다시 원론적인 문제에 집중하는 시간을 가져보게 되었습니다. 그래서 여러 문서들을 보고 코드에도 녹여보면서 이 글을 작성하고 있네요. 역시 공부는 미리미리 꼼꼼하게,,,gradle(:app) 파일에서 viewBinding 활성화android { buildFeatures { viewBinding = t.. 2024. 3. 23.
728x90
반응형