일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- RxJava
- 안드로이드 앱 아키텍처 가이드라인 예시
- Android MVVM
- 안드로이드 최적화
- android memory leak
- Koin
- coroutine
- 안드로이드 Mockito
- sharedFlow
- MVVM
- 안드로이드 테스트코드
- 안드로이드 의존성주입
- 리싸이클러뷰 최적화
- 안드로이드 앱 아키텍처 가이드라인
- 안드로이드 리싸이클러뷰
- 스타트업 코딩테스트
- 안드로이드 hilt
- 코루틴
- 안드로이드 클린 아키텍처
- Android App Architecture Guideline
- android clean architecture
- 안드로이드 JUnit
- android DI
- 안드로이드 mvvm
- Hilt
- 안드로이드 앱 아키텍처 가이드라인 설명
- 안드로이드 Espresso
- 안드로이드 mvvm예제
- 안드로이드 아키텍처 컴포넌트
- 안드로이드 앱 아키텍처 가이드라인 사용법
- Today
- Total
목록안드로이드 연구소/MVVM+AAC (8)
안드로이드 연구소
지난 포스팅에서 ViewModel, LiveData, DataBinding로 MVVM을 토대로 만들고 Lifecycle, Paging3에 대해서 알아보았습니다. 오늘로 준비한 안드로이드 아키텍처 컴포넌트 끝이납니다. 마지막 안드로이드 아키텍처 컴포넌트는 Room라이브러리입니다. 바로 시작해보겠습니다. Q1. Room라이브러리가 등장하게된 배경에 대해 설명해주세요. Room이 도입되기 전에 개발자는 안드로이드에서 SQLite 데이터베이스 작업을 처리하기 위해 보일러플레이트 코드를 수동으로 작성해야 했습니다. 이 보일러플레이트 코드를 작성하는 과정에서 오류가 발생하기 쉽고 다량의 코드를 작성해야했습니다. Room은 2017년에 안드로이드 아키텍처 컴포넌트에 등장하여 SQLite에 대해 더 높은 수준의 추상화..
지난 강의에서 안드로이드 아키텍처 컴포넌트의 라이브러리 중 하나인 Lifecycle을 배워보았습니다. 엑티비티에서 비즈니스 로직을 분리시켜 테스트에 상당한 도움을 줄 수 있는 라이브러리였는데요. 오늘도 다른 안드로이드 아키텍처 컴포넌트를 배워볼까합니다. 오늘은 Paging3이라는 라이브러리입니다. Paging은 어떨때 쓰는 기술이까요? 왜 Paging1도 아니고 2도아니고 3일까요? 어떻게 Paging3을 사용하는걸까요? 이 모든 답이 궁금하시다면 시작해보겠습니다. Q1. ChatGPT, Paging이 나오게된 배경에 대해서 설명해줘 Paging 기술이 도입되기 전에는 안드로이드 개발자들은 일반적으로 모든 데이터를 한 번에 메모리에 로드하므로 저사양 장치에서 성능 문제 및 충돌이 발생할 수 있습니다. 그..
지난 강의에서 ViewModel+LiveData+DataBinding+Retrofit2까지 사용하여 MVVM을 기본적인 틀을 만들어놓았습니다. 사실 여기까지만 하여도 MVVM패턴의 핵심은 끝났다고 보아도 됩니다. 하지만 위의 ViewModel, LiveData 그리고 DataBiding도 이전에 안드로이드에서 가지고 있던 문제들을 해결해준 구글에 노력이였습니다. 그렇다면 아직 배워보지 못한 컴포넌트들이 있다는 건 우리가 알지 못하는 문제들이 있다는 것이고 아직 해결하지 못했다는 뜻이 아닐까요? 그렇다면 아직 남아 있는 대표적이 3가지 라이브러리들에 대해서 알아보고 어떤 문제들을 해결할 수 있는지 알아봅시다. 가장 첫번째는 Lifecycle입니다. Q1. ChatGPT, Lifecycle 라이브러리를 만..
이전 예제에서 ViewModel과 LiveData와 DataBinding을 이용하여 안드로이드 기본 MVVM 패턴 파일을 만들었습니다. 사실 여기까지가 학문적으로는 MVVM구조 그자체를 만들기에 마쳤습니다. 하지만 실제로 어플을 만들기위해서는 UI를 채울 데이터들이 필요합니다. 또 데이터는 Object형태의 데이터가 올 수도 있고 리스트가 올 수 있을겁니다. 그리고 해당 데이터는 서버를 통해서 가져와야하고 TCP/IP, Socket, HTTP통신 등을 사용하여 클라이언트로부터 가져와야합니다. 오늘은 안드로이드에서 가장 대표적으로 사용하는 HTTP통신으로 object데이터와 list데이터를 가져오겠습니다. 물론 MVVM안에서요. 그럼 시작해보겠습니다. Q1. ChatGPT, 이전 MVVM파일에서 retro..
이전 게시물에서 MVVM패턴에서 안드로이드 아키텍처 컴포넌트(AAC) ViewModel와 LiveData를 사용하여 기본적인 구조를 설계하였습니다. 지난번 예제에서 엑티비티에서 아래와 같이 myViewModel에 위치한 userData를 항상 관찰시켜서 변화가 가질될 때를 기다려 UI를 업데이트 시켜줬습니다. myViewModel.userData.observe(this, { user -> // 로직3: 새 데이터 변화 관측 시 UI업데이트 binding.nameTextView.text = user.name binding.ageTextView.text = user.age.toString() }) 근데 매번 이렇게 데이터 하나하나를 이렇게 관찰 observe를 세팅하고 UI를 업데이트 하는 로직을 사용하는건..
오늘은 드디어 MVVM패턴을 가진 샘플 파일을 만들어보겠습니다. 그때 필요한 안드로이드 아키텍처 컴포넌트(줄여서 AAC)는 바로 ViewModel + LiveData + DataBinding. 각 각 어떤 역할을 하는지 살펴보고 어떻게 사용할 수 있는지 알아보겠습니다. 바로 시작! Q1. AAC의 구성요소인 ViewModel에 설명해줘 ViewModel 구성요소는 수명 주기를 인식하는 방식으로 UI 관련 데이터를 저장하고 관리하도록 설계되었습니다. 이를 통해 UI 로직에서 데이터 관리를 분리할 수 있으므로 코드를 보다 체계적이고 유지 관리 및 테스트할 수 있습니다. 화면 회전과 같은 구성 변경을 유지하도록 특별히 설계되었으며 엑티비티 또는 프래그먼트의 수명 주기에 연결되어 있습니다. ViewModel은 ..
지난 게시물에서 MVVM이 왜 많은 안드로이드이 선택하게되었는지 알아보았다. 간단히 말하면 구글에서 안드로이드 아키텍처 컴포넌트(줄여서 AAC)라는 걸 내놓았는데 MVVM과 찰떡궁합이였기 때문이었다. 그렇다면 구글에서는 안드로이드 아키텍처 컴포넌트를 왜 발표하였을까? Q1. ChatGPT, 구글은 왜 안드로이드 아키텍처 컴포넌트를 만들게된 배경에 대해서 말해줘. 안드로이드 아키텍처 컴포넌트가 출시되기 전에는 Android 앱을 설계하는 공식 권장 방법이 없었으며 개발자는 종종 MVP, MVC 등과 같은 다양한 패턴을 사용했습니다. Android 앱의 복잡성이 증가함에 따라 코드베이스를 관리하고 안정성과 신뢰성을 보장하기가 더 어려워졌습니다. 또 복잡한 사용자 인터페이스를 처리하고, 데이터 지속성 및 동기..
오늘은 첫 포스터에서 설명한 것 같이 이전 포스터들에서 챕터1에서는 잘못 사용하고 있었던 안드로이드 코드들을 고친 다음 오늘부터 챕터2의 핵심인 MVVM에 대해서 연구해보려고합니다. 여러분들이 MVVM은 많이 들어보기만 하신분들만 있기도 하고 회사 프로젝트에서 사용하고 있어서 그냥 사용하시고 있는분들이 많을거라 생각합니다. MVVM은 여러 디자인 패턴중 하나입니다. 하지만 왜 다들 안드로이드 개발에서는 많은 패턴 중에 MVVM을 사용하고 있을까요? 저는 이 궁금중부터 시작하여 역사적인 관점에서 - MVVM이전에는 어떤 패턴들을 사용하였고 - 어떤 문제들가 있어서 MVVM이라는 새로운 시도를 하게되었으며 - 이는 어떤 효과를 불러일으켰는지 살펴볼 예정입니다. 그럼 시작해보겠습니다. Q1. ChatGPT, ..