본문 바로가기

전체 글

(103)
Fragment에서 컴포즈를 사용해보자 최근 새로운 프로젝트에서 기존 View System과 같이 컴포즈를 사용하고 있습니다. 해당 프로젝트에서 Jetpack Navigation을 사용해 BottomNavigation을 구현한 화면에서 Fragment를 컴포즈로 대체해야 하는 상황이 발생했습니다. 바텀 네비게이션의 프래그먼트 화면이 전환되어도 BottomNavigation을 유지해야 했기 때문에 Activity -> Parent Fragment -> 두 개의 Child Fragment로 이루어진 환경에서 첫 번째 Child Fragment(바텀 네비게이션이 짠! 하고 화면에 띄워질 때 첫 번째 화면)을 컴포저블로 전환해야 하는 상황이 되었습니다. ComposeView공식 문서에서 안내하는 ComposeView를 사용하면 View 시스템에 Je..
2024 회고록 올해도 어느덧 다 지나갔다. 2024년의 나는 어땠을까? 연말 회고록은 크리스마스에 술 한잔 하면서 쓰려했지만 이번엔 계획했던 Build - Logic이 생각보다 어려워 글로 남기기에 오래 걸릴 것 같아 회고록으로 대체해야겠다. 제목은 2024 회고록이지만 개발을 시작한 지난 4년간을 돌아보고 싶은 마음이 생겨 이를 포함하려 한다. 주의 : 글이 중구 난방인점은 미리 죄송합니다올해의 시작은 안드로이드올해 학교를 졸업하고 멋사의 앱 스쿨 부트캠프를 시작으로 안드로이드를 제대로 공부하기 시작했다. 졸업 후 바로 취업을 목표로 했기에 사실 부트캠프는 내게 있어서 가장 최악의 수라고 생각했다. 그래서 취업 전선에 뛰어들었지만 현실은 차가웠다. 70건 이상의 이력서에도 면접은 단 3번, 그중에서도 스스로 생각하기..
Kotlin Value Class With Project Valhalla 오늘 알아볼 주제는 Kotlin의 Value Class와 Vlalue Class가 탄생하게 된 JVM의 Project Valhalla 입니다. 우테코 프리코스의 로또 과제를 진행하면서 다음과 같이 상태 관리를 위한 data Class를 만들었습니다. 이 과정에서 도메인에 특화된 타입을 만들어 Wrapper로 분리할지 아니면 Primitive Type 타입 그대로 사용할지 많은 고민을 했습니다. 미션 제출 당시엔 아래 코드와 같은 형태로 제출했지만 이후 리팩토링 과정에서 Value Class라는 좋은 기능이 있다는 것을 알게 되어 소개해보겠습니다. 이번 글은 "이펙티브 코틀린"의 45장 '불필요한 객체 생성을 피하라'와 47장 '인라인 클래스의 사용을 고려하라'에 대한 내용을 참고하였습니다.data cla..
우테코 지난 3번의 미션을 돌아보며 안녕하세요. 우아한 테크코스 프리코스에 참여하고 있는 개발자 정찬호입니다. 오늘은 지난 3주간의 프리코스 과정을 통해 스스로 느낀 점과 간단한 미션 수행 코드를 리뷰하고 회고하는 시간을 가지려 합니다. 다른 열정 많으신 참가자분들처럼 저 또한 주차마다 회고글을 쓰고 싶었지만 미션을 수행하면서 스스로 반성해야 할 점들을 너무나 많이 깨달았기에 이 문제들을 모두 개선해야지만 회고글을 쓰겠다는 조금은 이상한 다짐을 하게 되었습니다.첫 번째 미션 리뷰https://github.com/chanho0908/kotlin-calculator-7/tree/chanho0908 GitHub - chanho0908/kotlin-calculator-7Contribute to chanho0908/kotlin-calculator-..
MVVM에서 MVI로 오늘은 최근 제가 가장 관심 있는 MVI에 대해 이해해 나가는 첫 번째 여정이 될 글을 작성하려 합니다. 제가 MVI를 공부하게 된 계기는 특정 강의에서 MVI에 관한 강의를 듣고 나서 코드의 가독성과 흐름을 파악하기 굉장히 좋다고 느꼈기 때문입니다. 이전에 수행했던 다온길 프로젝트에서 제가 가장 아쉬운 점은 ViewModel에서의 상태관리 코드에 대한 흐름을 파악하기가 너무 복잡했다고 느꼈습니다. 그래서 MVI를 적용하면 이런 문제를 해결할 수 있지 않을까?라는 가정하에 MVI를 공부하기 시작했습니다. 해당글에서 계속해서 언급되는 프로젝트의 코드는 여기서 확인하실 수 있습니다. GitHub - chanho0908/DaOnGil_CleanArchitecture: 다온길 프로젝트 클린 아키텍처(Hilt) ..
우테코 2주차 반성글 오늘은 짧게 2주간의 우테코 프리코스를 되돌아보려 합니다. 이 글은 철저히 개인 회고와 리마인드를 목적으로 작성했음을 미리 말씀드립니다. 글의 제목이 반성글인 이유는 제가 실수한 부분을 리마인드 해보려는 목적으로 작성하는 글로 코드에 대한 내용은 없을 예정입니다. 코드에 관한 내용은 제가 3주 차 과제를 스스로 당당하고 만족스럽게 해낸다면 그때 작성해 보겠습니다. 첫 주차에서 만난 첫 프리 코스는 어렵진 않은 과제였습니다. 다만 코드 컨벤션, 테스트 코드 같이 평소엔 생각해보지 않던 것들, 처음 접해보는 것들이 많아서 굉장히 낯설고 신기했던 것 같습니다. 그렇게 나름 구현해 낸 과제 제출 기한이 다 끝나고 다른 분들 코드를 리뷰하며 보니 가장 중요한 기능 구현을 놓쳤더군요.. 에러 처리에 대한 부분도 정..
Android MVI를 알아보자 새로운 프로젝트를 들어가기전에 MVI를 공부하기 위해 해당 글을 작성하게 되었습니다. 새로운 프로젝트는 Compose를 사용해 진행할 예정입니다. 제 스스로 생각해도 아직 기존 방식의 안드로이드 개발도 정말 많이 부족하지만 Compose를 사용해야겠단 생각이든 몇번의 계기가 있습니다.  첫번째로 컨퍼런스였는데요, 이제는 안드로이드 컨퍼런스에서 컴포즈는 빼놓을 수 없는 주제인 것 같습니다. 하지만 저는 컴포즈에 대한 지식이 전무했고 선배 개발자분들의 소중한 발표들을 이해하지 못하는 것이 너무 아깝다고 느껴졌습니다.  두번째로, 이전 프로젝트에서 겪은 문제점들 때문입니다. 컴포즈를 사용할 때 굳이 MVI를 사용하지 않아도 구현 할 수 있습니다. 아니, MVI를 사용하지 않고 태초의 방식으로 컴포즈 개발을 한..
DevFest Android in Korea 2024 코루틴 방탈출 DevFest Android in Korea 2024에 다녀왔다. 어느덧 4번째 컨퍼런스인데 이번 컨퍼런스가 유난히 잼있고 유익했었다. 사실 컨퍼런스의 내용을 온전히 이해한건 오늘이 처음인데 게임 개발자에서 안드로이드 개발자가 되신 연사자분의 스토리부터 컴포즈와 파이어 베이스를 활용해 서버 드리븐으로 앱을 개발하는 방법 등 정말 흥미롭고 다채로운 내용이 많았다. 이벤트로 코루틴 방탈출을 준비해주셨는데 문제는 이거 하느라 정작 가장 듣고 싶었던 현우님의 세션을 듣지 못했다(말이 방탈출이겠지 했는데 진짜 탈출 못할줄 몰랐다). 분명 정세영님의 코틀린 - 코루틴의 정석을 정독하며 한번씩 다 접했던 내용이었는데 ... 그래서 문제를 다시 풀면서 개념을 정리해봐야겠다.🪑 Step 0class Step0 { ..