본문 바로가기

안드로이드15

Clean Architecture 궁금했던 점 살펴보기 Clean Architecture 궁금했던 점 살펴보기 안녕하세요 이번에는 Clean Architecture에 대한 주의점과 궁금했던 부분에 공부한 내용을 공유해드리려고 합니다. Clean Architecture에 대한 기본 개념에 대한 설명은 너무 많은 블로그가 존재하기 때문에 생략하고 설명드리겠습니다. 클린 아키텍처는 왜 유지보수에 용이할까? 관심사를 분리함으로써 필요한 계층만 추가, 수정하면 되므로 더 편리합니다. 결합도를 낮추어 수정에 용이합니다. 의존성 주입을 사용해 결합도를 낮추도록 합니다. 이렇게 하면 상위 계층이 하위 계층의 구현으로부터 독립되기 때문에 하위 계층의 변화에 영향을 받지 않습니다. (의존성 역전 원칙) UseCase가 필요한 이유 UseCase가 없으면 ViewModel이 비.. 2023. 5. 31.
6. SharedPreference에서 DataStore로 변경하여 데이터 일관성 문제 해결하기 (RunWithMe 리팩토링) 6. SharedPreference에서 DataStore로 변경 안녕하세요 RunWithMe 리팩토링 프로젝트에서 팀장과 안드로이드 개발을 맡은 서경원입니다. RunWithMe 프로젝트를 리팩토링하면서 공부한 내용에 대해서 설명해보려합니다. 이해가 안되는 내용이나 제가 잘못 적은 부분이 있다면 꼭 댓글 남겨주세요. 이번 프로젝트에서 기존에 사용하던 SharedPreference를 DataStore로 변경하고자 했습니다. SharedPreference가 가진 문제점 때문이었습니다. 여러분들은 SharedPreference의 문제점에 대해 알고 계신가요???? SharedPreference의 문제점에 대해서 ChatGpt에 물어보겠습니다. gpt 답변: 안드로이드에서 Share.. 2023. 5. 30.
5. CustomView로 재사용성 향상 (RunWithMe 리팩토링) 5. CustomView로 재사용성 향상 안녕하세요 RunWithMe 리팩토링 프로젝트에서 팀장과 안드로이드 개발을 맡은 서경원입니다. RunWithMe 프로젝트를 리팩토링하면서 공부한 내용에 대해서 설명해보려합니다. 이해가 안되는 내용이나 제가 잘못 적은 부분이 있다면 꼭 댓글 남겨주세요. 이전에 ‘우리집’이라는 프로젝트를 Compose로 진행했던 경험이 있습니다. 컴포즈를 사용하면서 제일 좋았던 점은 Component 재사용성이 뛰어나다는 점이었습니다. xml에서도 custom view를 활용해 view 재사용성을 향상시키고자 했습니다. 다른 뷰는 재사용하는 부분이 거의 없어 가장 많이 사용하는 Toolbar에 CustomView를 적용하였습니다. Toolbar는 총 4.. 2023. 5. 27.
4. EventFlow 도입 (RunWithMe 리팩토링) 4. EventFlow 도입 안녕하세요 RunWithMe 리팩토링 프로젝트에서 팀장과 안드로이드 개발을 맡은 서경원입니다. RunWithMe 프로젝트를 리팩토링하면서 공부한 내용에 대해서 설명해보려합니다. 이해가 안되는 내용이나 제가 잘못 적은 부분이 있다면 꼭 댓글 남겨주세요. 이 글은 Ted Park님의 블로그를 참고하여 작성했습니다. MVVM의 ViewModel에서 이벤트를 처리하는 방법 6가지 MVVM의 ViewModel에서 이벤트를 처리하는 방법 6가지 지금 개발하시는 코드에서 ViewModel의 이벤트 처리를 어떻게 하고 계신가요? 헤이딜러에서 LiveData -> SingleLiveData -> SharedFlow -> EventFlow로 이벤트 처리 방법을 변.. 2023. 5. 26.
2. bindService를 적용하여 메모리 누수 방지하기 (RunWithMe 리팩토링) 2. bindService 적용하여 메모리 누수 방지하기 안녕하세요 RunWithMe 리팩토링 프로젝트에서 팀장과 안드로이드 개발을 맡은 서경원입니다. RunWithMe 프로젝트를 리팩토링하면서 배우게 된 내용에 대해서 설명해보려합니다. 이해가 안되는 내용이나 제가 잘못 적은 부분이 있다면 꼭 댓글 남겨주세요. startService와 bindService Service를 제대로 적용하기 위해 Service에 대해 공부했고 그 중 startService와 bindService의 차이점을 명확히 알고자했습니다. 아래는 startService와 bindService에 대한 설명입니다. 안드로이드에서 startService()와 bindService()는 서비스를 시작하는 두 가.. 2023. 5. 25.
1. LifecycleService와 Service의 차이점 (RunWithMe 리팩토링) 1. LifecycleService와 Service의 차이점 안녕하세요 RunWithMe 리팩토링 프로젝트에서 팀장과 안드로이드 개발을 맡은 서경원입니다. RunWithMe 프로젝트를 리팩토링하면서 배우게 된 내용에 대해서 설명해보려합니다. 이해가 안되는 내용이나 제가 잘못 적은 부분이 있다면 꼭 댓글 남겨주세요. LifecycleService 이건 뭐지?? 이전 RunWithMe 프로젝트 코드를 들여다보던 중에 러닝에 관한 서비스를 LifecycleService를 상속받아 사용하는 것을 보게되었습니다. LifecycleService는 무엇이고 그냥 Service와의 차이점에 대해서 궁금증이 생기게 되었습니다. 바로 LifecycleService를 들여다보았습니다. Serv.. 2023. 5. 25.