본문 바로가기
의존성 주입은 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 패키지 내에서 제공따라서 간단하게 object를 상속받아서 사용할 수도 있지만 저는 조금 더 중복코드를 줄이기 위해서 추상화 클래스를 하나 생성하여 구현해보려고 합니다. 또한 CountDownTimer를 이용하여 일시정지까지 가능하도록 재구현을 해보려고 합니다.추상화 클래스를 만들기 전에, object를 어떤 식으로 구현해서 사용하는기 기본적으로 알아보려고 합니다.코드 화면 내에서 타이머가 필요한 경우, 활용할 수 있는 사용법 입니다.저는 화면 코드 내에서 countDownTimer를 전역변수로 두고 object의 인스턴스를 선언해 주었습니다.onTick() , o.. 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.
kotlin-android-extensions 를 걷어내자. 걷어내자! 이미 지원 종료된 플러그인이지만, 아직 제가 들고 있는 프로젝트에서는 살아 숨 쉬는 이 친구와 한번 절교를 해보려고 합니다.먼저 gradle(:app)파일 내의 plugins에 적용되어 있는 'kotlin-android-extensions'을 삭제하고, buildFeature 내부에 viewBinding이 활성화되어있지 않으면 true로 활성화합니다. 제가 들고 있는 프로젝트에는 이미 viewBinding이 적용되어 있고, synthetic기능을 레거시로 혼용하여 쓰고 있던 형태이기 때문에 이미 활성화는 되어있었습니다. kotlin-android-extensions을 통해 기 적용된 서비스를 보면, kotlin의 synthetic 기능을 사용하여 viewBinding을 간편하게 구현한 모습들을 볼 수가 .. 2024. 3. 22.
728x90
반응형