AAC
[Android/파고들기] 2화 Android Architecture Components(AAC)
파고들기의 제 2화!! 두 번째 이야기! Android Architecture Components(AAC)에 대해서 다뤄보자. 안드로이드 개발을 하다보면 AAC라는 키워드를 자주 보게 된다. 기업들의 채용공고들을 보면 MVVM, AAC에 대한 이해 및 서비스 적용 및 경험이 있는 분을 모집한다는 글도 자주 볼 수 있다. 안드로이드 공식문서를 살펴보면 다음과 같은 안드로이드 앱 아키텍쳐 패턴으로 개발하기를 권장하고 있다. 위와 같이 Android Architecture Components를 활용하여 관심사를 분리하고 개발하기를 권장하고 있다. 안드로이드는 여러 컴포넌트들이 있고, 생명주기가 다르게 얽혀있어 앱을 만들기 위해서는 위와 같은 컴포넌트들을 연결해주어야 하는데 이는 개발자의 역량에 따라서 달라질 ..
[JETPACK개론] SQLite(2)
전에 포스팅했던 내용에 이어서 SQLite를 다뤄볼 예정이다! 전 글에서는 SQLite에서 테이블을 만들고, insert하고, delete하고, select하는 구문을 작성했으면 이번 글에서는 view를 간단히 만들어보고 이 뷰에서 어떻게 활용할 수 있는지 다뤄볼 것이다! 먼저 위에 EditText에서 작성한 것을 insert버튼을 눌렀을 때 테이블에 들어가고, GetAll 버튼을 눌렀을 때에는 resultArea에 테이블에 있던 값이 나오고, DeleteAll을 했을 때에는 테이블의 전체 값을 삭제하는 것을 확인할 것이다. insert구문 fun insert(str : String) { val db = this.writableDatabase val values = ContentValues().apply..
[JETPACK개론] SQLite(1)
앱을 이용하다보면 네트워크가 끊겼을 때 네트워크 오류입니다. 다시 시도해 주세요 라는 메세지를 본 적이 있다. 하지만 카카오톡 채팅방처럼 네트워크가 연결되어 있지 않은 상황에서도 잘 보이고 있는 것을 알 수 있다. 서버에서 불러오는 방식일 수도 있지만 다른 곳에다가 저장을 해두고, 불러오는 방식을 사용할 수 있을 것이다. 우리는 이를 Local DB라고 부르며 SQLite와 Room이 있다. Room은 SQLite를 완벽히 활용하면서 원활한 데이터베이스 엑세스가 가능하도록 하는 업그레이드 버전이라 할 수 있다. 여러 장점이 있지만 반복적이고 오류가 발생하기 쉬운 상용구 코드를 최소화하는 것이 Room의 장점이다. 먼저 Room을 공부하기전 SQLite의 개념을 알고, Room을 공부할 예정이다! 이 글에..
[JETPACK개론] Retrofit + ViewModelScope + RV + Glide
이 게시물에서는 기존에 진행했던 Retrofit + ViewModel + RV에서 해당 데이터에 이미지를 Glide로 불러오고, AAC(Android Architecture Components)에 맞게끔 구조를 살짝 변경해보겠다. AAC(Android Architecture Components) 는 테스트와 유지보수가 쉬운 앱을 디자인할 수 있도록 돕는 라이브러리의 모음이다. 위의 그림처럼 크게 ViewModel, Repositroy, Room, Retrofit 등이 포함되어 있다. 이제 코드를 살펴보자. 먼저 위와 같이 패키지를 분리하여 구성하였고, object RetrofitInstance { val BASE_URL = "https://raw.githubusercontent.com/" val clin..