본문 바로가기

오늘은 뭘 배울까?/Android35

RecyclerView + MVVM + Room을 연습해보자! 연습한 내용을 기록하는 거라 다른 게시글에 비해 다소 설명 불친절할 수 있습니다(?) 강의글이 아니에요! 0. 프롤로그 처음에 나는 MVVM이란 구조가 명확히 있고 같이 사용하면 좋은 라이브 데이터, 데이터 바인딩 이런 거를 같이 사용해야 진정한 Clean Architecture다!라고 생각하고 고민을 했었다. 하지만 예제들을 보면 어떤 사람은 이걸 쓰고 어떤 사람은 이거 말고 저걸 쓰고 또 구현하는 방식도 제각각이고 등등.. 너무 헷갈려서 오픈 채팅방에 SOS 요청을 했더니 위와 같이 답변을 해주셨다. (내 생각을 정확히 꿰뚫으심...) 그래서 처음부터 너무 틀에 구애받지 말고 처음부터 너무 완벽하게 하려고 하지 말고 이해한 부분부터 차근차근 구조를 완성시켜보고 나중에 새로운 걸 추가시키더라도 일단은 .. 2021. 3. 11.
안드로이드 View Model(뷰 모델)을 공부해보자! 1. ViewModel 1-1. ViewModel 이란? 1-2. 탄생 배경 1-3. 사용하는 이유 2. 사용법 2-1. gradle 추가 2-2. Layout 파일 2-3. ViewModel 파일 2-4. Activity 파일 3. 주의할 점 3-1. 참조 1. ViewModel 1-1. ViewModel 이란? Clean Architecture에 대한 포스팅은 여기에서 볼 수 있다. AAC의 종류는 공식문서 - Android Architecture Components에서 확인할 수 있다. 어제는 Clean Architecture가 무엇인지, 왜 필요한지에 대해 공부하였다. 구글이 개발자들을 위해 이 Clean Architecture를 쉽게 구현할 수 있도록 라이브러리들을 만들었는데 이를 Android.. 2021. 3. 8.
안드로이드 Clean Architecture 0. 시작하며... 1. 모바일 앱 사용자 환경의 기본 개념 2. 그렇다면 어떻게 설계해야 할까? 3. 구글이 권장하는 아키텍처 0. 시작하며... 구조적으로 잘 구성된 앱을 만들려면 어떻게 해야 할까? 어떻게 해야 유지, 보수를 쉽게 할 수 있을까? 구글이 이에 대한 해답을 정리하여 공식문서에 정리해두었다. 그리고 이것을 Clean Architecture라 부른다. 깔끔하게 잘 만들어진 설계도쯤으로 해석할 수 있다. 오늘은 이 클린 아키텍처를 공부한 내용을 정리해보려 한다. 1. 모바일 앱 사용자 환경의 기본 개념 여러분들이 인스타그램을 사용하고 있다고 상상하며 다음 예시를 읽어보자. 남자 친구에게 사진을 공유하기 위해 사진 촬영을 눌렀다. 카메라 앱이 실행되며 사용자는 인스타그램을 나가지만 여전히 사.. 2021. 3. 7.
코틀린 데이터 바인딩(Data binding) 1. 데이터 바인딩 1-1. 데이터 바인딩이란? 1-2. 데이터 바인딩 vs 뷰 바인딩 2. 사용법 2-1. gradle 추가 2-2. 액티비티 2-3. 레이아웃 파일 1. 데이터 바인딩 1-1. 데이터 바인딩이란? // findViewById 쓸때는 이렇게 했었고 textView.text = "안녕" // 뷰 바인딩 쓸때는 이렇게 했다. binding.textView.text = "안녕" 여태까지 우리는 텍스트 뷰에 문장을 넣기 위해 코드상에서 값을 집어넣는 작업을 해주었다. 근데 이걸 xml에 코드를 집어넣어서 해결하는 방법이 있다. 이렇게 하면 자연스레 액티비티에는 로직만을 위한 코드만 남게 되고 뷰와 관련된 작업은 레이아웃 파일에 정의된다. 데이터와 뷰를 연결하는 작업을 레이아웃에서 처리하는 기술.. 2021. 3. 6.
안드로이드 뷰 바인딩(view binding) 1. 뷰 바인딩 1-1. 라떼는 말이야... 1-2. 변천사 1-3. findViewById와의 차이점 2. 사용법 2-1. gradle 추가 2-2. 액티비티 2-3. 프래그먼트 2-4. viewBindingIgnore 1. 뷰 바인딩 1-1. 라떼는 말이야... 예를 들어, xml에서 이렇게 텍스트뷰를 3개 쓰고 있다고 치자 public class MainActivity extends AppCompatActivity { private TextView nameView, phoneView, addressView; // 변수 선언하고 @Override protected void onCreate(Bundle savedInstanceState) { super.onCreate(savedInstanceState).. 2021. 3. 5.