어플을 사용하다 보면 리스트로 나열된 데이터들을 자주 볼 것이다. 이런 데이터들은 보통 DB나 네트워크 통신을 통해 내용을 불러와 리스트에 띄워주는 형식으로 만들어진다. 게시판이 대표적이라고 할 수 있다. 게시판의 원리에 대해 간단하게 설명하면, 게시판에서 스크롤을 내리면 데이터들이 순서대로 불러와진다. Rest API로 통신을 하고 있으면 JSON 데이터를 넣을텐데 보통은 페이지 번호도 제공해서 데이터를 끊어서 보여주게 된다. 그래서 게시판을 모바일에서 만들 때 다양한 방법이 있는데 제일 쉬운 방법은 버튼을 누르면 다음 페이지를 보여주는 방법이 있다 하지만 이 방법은 다음 데이터를 보기 위해서는 버튼을 눌러야 하는 불편함이 생긴다. 그래서 사용하는 방법이 RecyclerView Scroll Event이..
프로젝트를 진행하면서 Navigation Bar 위에 Bottom Sheet를 구현해야 하는 일이 생겼다. 만드는 과정 중에 여러가지 문제점을 발견하게 되어 작성해본다. 먼저 Navigation Bar와 Bottom Sheets에 대해 자세하게 알아보자. Navigation Bar Navigation bars offer a persistent and convenient way to switch between primary destinations in an app. 내비게이션 바는 앱에서 기본 대상 간에 전환할 수 있는 지속적이고 편리한 방법을 제공합니다. Navigation Bar는 콘텐츠간 편리하게 전환 할 수 있도록 AndroidX에서 제공되는 UI이다. XML에서 위 코드를 추가하고 네비게이션에 들..
UI User Interface의 약자 뷰에 그려지는 모든 레이아웃의 배치를 뜻한다. UI 디자인은 어플리케이션의 컴포넌트들을 어디에 어떻게 구성하는지 디자인을 하는 것이다. UX User Experience의 약자 말 그대로 사용자의 경험을 뜻해서 어플리케이션을 사용하면서 느끼는 종합적인 만족을 의미한다. UX 디자인은 어플리케이션의 전반적인 사용 경험을 좋게 디자인 한다는 포괄적인 뜻이 담겨있다. 좋은 UI / UX 직관적인 디자인: 사용자들이 쉽게 이해하고 사용할 수 있도록 직관적인 디자인이 필요합니다. 일관성: 디자인 요소와 행동 방식에 일관성이 있어야 합니다. 이는 사용자들이 이용하는 다양한 기능들 간에 일관성을 유지해줌으로써 사용자들이 쉽게 이해하고 사용할 수 있게 도와줍니다. 가독성: 텍스트..
비동기 데이터 처리 라이브러리인 AAC LiveData와 Kotiln Flow를 비교해 볼 것이다. 요즘 뜨고있는 Chat GPT를 활용해서 작성해봤다. LiveData LiveData를 Chat GPT한테 물어보면 위와 같은 답변을 해준다. Chat GPT가 한 말을 정리하자면 LiveData는 안드로이드의 LifeCycle을 인식해서 생명주기에 맞게 뷰가 Destroy되거나 비활성화 되면 Observing을 중단한다. 따라서 메모리 누수가 없고 뷰의 종료로 인한 충돌이 없다. 안드로이드에서 대부분 MVVM 아키텍쳐를 사용하고 있고 LiveData를 통해 ViewModel에서 View로 데이터를 통신하거나 전송한다. ViewModel의 LiveData를 View에서 Observing해서 데이터의 변화를..
MVP/MVVM/Clean Architecture 등 아키텍처 설계 혹은 적용 경험이 있으신 분 안드로이드 채용 공고를 보면 자주 등장하는 말이다. 그래서 아키텍쳐에 대해 자세하게 알아보려고 한다. 소프트웨어 아키텍쳐 소프트웨어를 구성하는 구성요소간의 관계를 관리하는 시스템의 구조이자 소프트웨어의 설계와 업그레이드를 통제하는 지침과 원칙이다. 말 그대로 소프트웨어를 개발할 때 지켜야 하는 규칙같은 것이다. 이러한 규칙을 정하고 지키는 이유는 협업을 할 때 본인이 마음대로 짠 코드를 다른 사람들이 본다면 그 사람들은 코드를 이해하기 어려워 할 것이다. 물론 협업이 아니더라도 코드의 수정이 매우 힘들거나 구조를 이해하기 힘들어진다. 이러한 이유 때문에 아키텍쳐 패턴이라는 개념이 나오고 사용되는 것이다. 실제..
안드로이드를 개발하다 보면 에러를 마주하게 된다. 이러한 에러들을 어떻게 분석하는지와 에러를 개선하는 방법에 대해 알아볼 것이다. 에러를 개선할 때 에러 종류에 따라 어떤 식으로 설계해야 하는지도 같이 알아볼 것이다. 에러 분석 방법 먼저 에러를 분석하는 방법은 크게 어플리케이션이 출시 전과 출시 후로 나뉜다 어플리케이션 출시 전 어플리케이션 출시 후 Logcat, JUnit Test, JVM 테스트, 실 기기 테스트 Android Vitals 어플리케이션 출시 전 코딩하면 흔하게 사용하는 방법으로 에러를 확인하고 분석한다. Logcat -> IDE에서 제공하는 로그 창에서 에러 로그를 확인 JUnit Test -> JUnit과 같이 테스트 도구를 사용해서 단위 테스트를 하며 에러를 확인 JVM 테스트 ..