전체 글53 [Android/Compose] 왜 Compose에서 Jetpack Navigation을 사용할까? 프로젝트를 진행하다 보면 '당연하게' 사용하고 있는 기술들에 대해 문득 궁금증이 생길 때가 있다.나는 Jetpack Navigation Component가 그랬다.분명 과거의 안드로이드 개발에서는 Intent와 Bundle을 사용해 화면을 전환하고 데이터를 넘기는 방식이 익숙했다. 이 방식도 나름의 규칙만 잘 지키면 충분히 동작했는데, 왜 Compose 시대에 와서는 모두가 Jetpack Navigation을 필수처럼 이야기하는 걸까?단순히 'Google이 권장하니까' 혹은 '최신 기술이니까'라는 이유를 넘어, 근본적인 장점이 무엇인지 제대로 정리해보고 싶어졌다.모든 것의 시작: 패러다임의 전환가장 핵심적인 이유는 UI 개발 패러다임의 전환에 있다.기존 방식 (XML + Intent): 명령형(Imper.. 2025. 11. 12. [Gradle] 타입세이프 프로젝트 접근자 사용 최근 개인 프로젝트에 멀티모듈 구조를 적용하면서 예상치 못한 생산성 저하를 경험했습니다.간단한 의존성 추가 작업도 이런 과정을 거쳐야 했거든요:1. "어? 데이터 모듈 정확한 이름이 뭐였지?" 2. settings.gradle 파일을 열어서 모듈명 확인 3. build.gradle에서 implementation(project(":core:data")) 타이핑 4. 오타가 있었다면 빌드 에러로 다시 수정 특히 build-logic 모듈을 도입한 후 Convention Plugin들을 관리하면서, Gradle 설정에 대해 더 깊이 있게 공부하게 되었는데요.그 과정에서 Google의 Now in Android 프로젝트에서 사용하는 '타입세이프 프로젝트 접근자'라는 개념을 알게 되었습니다.이 기능이 위에서 언급.. 2025. 9. 25. [Android] ViewPager2 이중 바인딩 문제 해결 오늘 간단하지만 글을 쓰면서 내용을 남기고자 글을 써봅니다. 최근 영화 상세 정보를 보여주는 App에서 ViewPager2를 사용하여 개발하던 중 API 호출 성공 시,화면이 두 번 깜박거리는 것 같았습니다. 별거 아니겠지 했지만, 로그를 찍어보니 두번 호출 되고 있었습니다.override fun onBindViewHolder(holder: MovieDetailViewHolder, position: Int) { Log.d("Adapter", "onBindViewHolder called for position: $position") val item = items[position] holder.bind(item)} API 호출 한 번에 onBindViewHolder가 두 번 호출되고 있었다!.. 2025. 8. 28. [생각] 책을 대하는 태도 안녕하세요. 조금은 가벼운 생각 남기기도 좋을 것 같다는 생각이 들어 글을 써봅니다. 개발 서적을 보는 것도 중요하지만지금 삶을 어떻게 살아가고 있는지, 어떤 목표를 세우며 살아가야 하는지 등궁금증이 있다면 검색하는 것 이외의 책을 통해서 많이 배울 수 있었기에 글을 남겨봅니다. 문득 가벼운 마음으로 글을 써보고 싶어졌습니다. 살다 보면 누구에게나'이제는 정말 달라져야겠다'고 마음먹는 순간이 있습니다. 어떤 사람은 오랜 친구와의 진솔한 대화를 나누다가 문득 깨닫습니다. "아, 나는 지금까지 뭘 하며 살아왔을까?" 어떤 사람은 멘토의 한마디에 인생이 180도 바뀌기도 하죠. 또 어떤 이는 늦은 밤 홀로 본 영화 한 편, 우연히 들은 음악 한 곡에 가슴이 뛰며 새로운 꿈을 품게 됩니다. 하지만 정말 신기.. 2025. 8. 25. 이전 1 2 3 4 ··· 14 다음 반응형