본문 바로가기
화면이 뭔가 버벅거리는거 같다. 이유가 무엇일까? 안드로이드에서 앱 개발을 하다 보면 뭔가 화면의 렌더링 속도가 생각보다 길다고 느껴질 때가 있다. 데이터가 많은 것 같지도 않고 무언가 대단한 화면이 아닌데, 왜 오래 걸릴까? 싶은 생각이 듭니다.이럴 때 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.
ViewBinding으로 Binding 처리하기. (feat. DataBinding) 이번 포스팅에서는 ViewBinding을 좀 더 뜯어보고 여러 뷰에 적용도 시켜보는 내용을 다루어 보려고 합니다.사실 현업에서나 학생때나 ViewBinding은 익히 써왔고 익숙하고 당연히 View의 내용을 가져오기 위해서 사용하는 방법이기 때문에 기술적으로 탐구를 해볼 생각은 없었는데요.이번에 여러 이슈들을 겪으면서 경험에 의존하는 코딩이 굉장히 위험하고 실제적인 업무 처리 능력을 저하시키는 것을 경험하면서 다시 원론적인 문제에 집중하는 시간을 가져보게 되었습니다. 그래서 여러 문서들을 보고 코드에도 녹여보면서 이 글을 작성하고 있네요. 역시 공부는 미리미리 꼼꼼하게,,,gradle(:app) 파일에서 viewBinding 활성화android { buildFeatures { viewBinding = t.. 2024. 3. 23.
kotlin-android-extensions 를 걷어내자. 걷어내자! 이미 지원 종료된 플러그인이지만, 아직 제가 들고 있는 프로젝트에서는 살아 숨 쉬는 이 친구와 한번 절교를 해보려고 합니다.먼저 gradle(:app)파일 내의 plugins에 적용되어 있는 'kotlin-android-extensions'을 삭제하고, buildFeature 내부에 viewBinding이 활성화되어있지 않으면 true로 활성화합니다. 제가 들고 있는 프로젝트에는 이미 viewBinding이 적용되어 있고, synthetic기능을 레거시로 혼용하여 쓰고 있던 형태이기 때문에 이미 활성화는 되어있었습니다. kotlin-android-extensions을 통해 기 적용된 서비스를 보면, kotlin의 synthetic 기능을 사용하여 viewBinding을 간편하게 구현한 모습들을 볼 수가 .. 2024. 3. 22.
Android API Level 33 업데이트 적용 요즘 Google로부터 버전이나 정책 그리고 서비스의 종료에 대한 많은 내용들이 전송되고 있는데요. 요 근래 저의 업무가 되어버린 API 업데이트 적용 건에 대해서 다루어 보려고 합니다. 앱 개발자의 숙명이라면 숙명인 매년 새로운 버전에 대한 업데이트가 있는데요. 작년의 API Level 31 적용 건에 이어 올해는 API 33 적용 건이 벌써 도래 하였습니다. Google Play Store에서 정책 상태 메뉴를 들어가면 현재 적용되지 않은 앱에 대하여 이러한 내용들이 보입니다. 기본 적용 기한은 2023년 8월 31일이 기한입니다만, 기한 연장 요청을 하여 2023년 11월 1일까지 해당 내용을 적용할 수도 있습니다. Version API LV Version Code Code Name Android .. 2023. 8. 22.
728x90
반응형