반응형 안드로이드/기타17 ViewBinding vs DataBinding compose 공부를 시작하면서 어느덧 놓아주어야 하는 것이 아닌가 생각이 드는 viewBinding, dataBinding입니다. 하지만 몇 년 정도는 더 사용되지 않을까 생각이 됩니다. 사실 compose ui가 아직 다른 안드로이드 개발자들이 사용하기에는 NHN, Naver, 우아한 형제들 같은 대기업들도 테스트 단계에 있고 실 적용을 위해 실제로 작성하는 중이니 아마 그런 기업들이 전부 compose ui로 넘어간 이후에야 본격적으로 주 기술스택으로 편입되지 않을까 생각합니다.(물론 아직까지 compose ui의 물결이 없다거나 적다는 것은 아닙니다. android weekly만 봐도...) 저도 대부분의 코드가 DataBinding으로 이루어져 있고, ViewBinding의 기능을 DataBin.. 2023. 1. 2. viewLifecycleOwner.lifecycleScope vs lifecycleScope 별 생각 없이 코드를 작성하다가(정확히는 멋모르고?) 저에게는 충격적으로 와닿은 것이 있었습니다. 생각해보면 면접때도 관련된 내용이 나왔었는데, 연관되지 않는다고 생각해서 그냥 지나쳤던 기억이 있네요. 그래서 이번에는 정리해볼까 합니다. 이번 주제는 viewLifecycleOwner.lifecycleScope로 선언한 코루틴 블럭과 그냥 프래그먼트의 lifecycleScope의 차이점에 대해서 알아보려고 합니다. lifecycleScope 두 개의 차이점을 알아보기 전에 먼저 lifecycleScope가 뭔지 알아보겠습니다. 먼저 lifecycleScope는 CoroutineScope의 일종인데, 이름처럼 view의 lifecycle에 맞춰 실행되는 범위가 정해지는 코루틴을 의미합니다. 이러한 Corou.. 2022. 10. 20. 안드로이드 쓰레드의 통신 과정(Looper, Handler, MessageQueue) 요즘은 안드로이드 프레임워크의 내부 구조에 관해 관심이 많아지기 시작했습니다. 아무래도 처음 접할때는 내부 구조보다는 당장 안드로이드 애플리케이션을 어떻게 구동하는지에 대해서 관심이 많아 일단 만들고 가꾸는데 초점을 뒀었고 주변에 안드로이드 개발자가 혼자 뿐이어서 스스로 잘 해나가고 있는 줄 알았는데, 근래 다른 사람들의 코드를 엿볼 기회가 생기면서부터 점점 제 코드가 안타깝게 느껴지고 있네요. 아직 많은 발전이 필요한 모자란 개발자로서 아키텍처 및 코드의 구성에 대한 공부도 해야겠고, 내부 구조에 대해서도 어느정도 알아야 한다는 것 때문에 시간이 참 모자란 것 같습니다. 조금 늦기는 했지만 초보 개발자로서 이제라도 한 발 나갈 기회를 얻었다는 점에 만족하며 계속 글을 쓰지 않을까 합니다. 안드로이드에는.. 2022. 9. 25. 안드로이드 Application Class 이번 주제는 어느 정도 규모가 있는 안드로이드 애플리케이션을 제작하다 보면 필수적으로 건들게 되는 Application Class에 대해서 알아보려고 합니다. 사실 이것저것 예제를 따라 많이 사용을 했었던 Class인데, 막상 뭐냐고 물으니 대충 앱 정보를 가지기 위해 전역 변수 등의 정보를 가지고 있는 Class가 아닐까? 하는 정도의 수준에 머물러 있었습니다. 그래서 이번에 한 번 제대로 알아봐야 하지 않을까 하는 생각에 글을 끄적여 봅니다. 일단 Application Class가 언제 실행되는지 알아야 할 필요가 있습니다. 먼저 안드로이드 스튜디오를 통해 안드로이드 앱을 제작하게 되면, 개발자가 볼 필요는 없지만 안드로이드에서도 숨겨진 main 함수가 존재하고 있다는 것을 알 수 있습니다. main.. 2022. 9. 11. ANR(Application Not Responding)이란? 이번에 모 회사의 코딩 테스트 문제를 풀고 있는데, 객관식 문제에서 ANR에 대해 묻는 문제가 나왔습니다. 아무래도 안드로이드 애플리케이션을 운영하다보면, 구글 플레이에서 보여주는 통계에서 ANR 비율도 보여주기 때문에 ANR이 무엇인지 모를 수는 없지만, 아무래도 정확하게 알지 못할 수도 있겠다 싶어 확실히 정리하고 가려고 합니다. ANR, 그러니까 Application Not Responding은 뭔가 깊은 뜻이 따로 있을 것 같지만 어이없게도 번역 그대로 애플리케이션이 응답하지 않는다는 의미입니다. 일단 이 ANR이 뜨기 위해서는 안드로이드의 mainthread가 5초 이상 동작하지 않아야 한다고 공홈에 적혀 있습니다. 그러니까 이 ANR은 비정상 종료라고 하는 exception이 발생해 애플리케이.. 2022. 8. 6. LiveData vs RxJava 회사에서 코드 수정을 위해서 처음 프로젝트를 열었던 날, 기상천외한 리액터킷이라는 안드로이드 라이브러리를 발견할 수 있었습니다. 이 친구는 IOS의 부산물로 IOS 개발자가 AOS를 개발하면서 자신이 가지고 있던 개념을 쉽게 AOS에 적용시켜 코드를 작성하려는 의도가 담긴 코드였습니다. 딱히 잘못되었다거나 나쁜 것은 아니지만, 문제는 이 라이브러리가 지원 중단이 된 지 꽤 오래된 코드라는 점입니다. 결국 입사하자마자 라이브러리를 분리하는 작업을 거쳐야 했고, 자연스럽게 ReactorKit + RxJava로 구성되어 있던 코드들을 DataBinding + MVVM으로 전환하는 작업을 했었습니다. 이 작업을 진행하는 중에 RxJava 코드를 완전히 분리하고 제거하는 과정을 거쳤는데, 생각해보니 LiveDat.. 2022. 7. 8. 이전 1 2 3 다음 728x90