Android/Jetpack, Clean Architecture (13) 썸네일형 리스트형 모던 안드로이드 앱 만들기 (2) - MVVM 구조를 사용한 리스트 구현 저번 앱 소개에 이어서 이번 포스팅에서 만들 것은 국가 데이터를 보여주는 리스트입니다. MVVM을 적용해 앱을 만들기 전에 MVVM이 무엇인지, 각각의 역할과 사용했을 때의 이점을 살펴보겠습니다. MVVM 패턴? business logic를 뷰와 모델로부터 분리하는 아키텍쳐 패턴입니다. 구글이 권장하는 앱 아키텍쳐입니다. 앱 데이터와 상태를 저장하는 데 앱 구성요소를 사용하지 않습니다. Activity 또는 Fragment에 모든 코드를 작성하지 않습니다. 모델에서 가져온 데이터를 통해 UI를 만듭니다. 모델은 앱의 데이터 처리를 담당하는 구성요소입니다. 모델은 앱의 View 객체 및 앱 구성요소와(Activity, Fragment, Service 등) 독립되어 있으므로 앱의 수명 주기 및 관련 문제의 .. 모던 안드로이드 앱 만들기 (1) - 소개 (using Java, MVVM, RxJava) 앱 소개 및 목적 안녕하세요 이번에는 Jetpack의 다양한 라이브러리를 활용하여 리액티브 하고 확장에 유연한 안드로이드 앱 개발을 할 것입니다. 만들 앱은 나라의 정보(이름, 수도, 국가 이미지)를 보여주는 기능을 가지고 있습니다. 이 앱을 만드는 목적은 Java를 사용해 모던 안드로이드 앱을 개발하는 것이며 여러 Jetpack LIbrary의 역할을 알고 사용해보는 것입니다. (Kotlin 버전은 추후에 업데이트할 예정입니다.) Language, Libraries and tools 🛠 Java LiveData Retrofit RxJava Glide butterknife Architecture 이 앱은 MVVM [Model-View-ViewModel] 아키텍처를 사용하여 단방향 데이터 흐름(unidir.. [Android / Kotlin] DataBinding을 사용해 뷰와 데이터를 연결해주기 뷰를 데이터를 연결하는 과정 1. 데이터 클래스를 만든다. data class MyName(var name: String = "", var nickname: String = "") 2. 레이아웃 태그 안에 data 태그를 만들고, 을 정의한다. name은 데이터를 layout xml 파일에서 view에 연결할 때 사용된다. type은 1번에서 만든 데이터 클래스를 사용한다는 의미이다. 3. MainActivity에서 data class의 객체를 만든다. private val myName: MyName = MyName("Seung") 4. 바인딩 오브젝트에 1번에서 만든 data class의 객체로 설정한다. binding.myName = myName 5. XML 파일에서 뷰의 텍스트를 에서 정의한 nam.. [Android / Kotlin] DataBinding을 사용해 findViewById()를 대체하기 데이터 바인딩을 사용해 findViewById()을 대체하는 과정 1. build.gradle 파일의 안드로이드 섹션에 data binding을 가능하게 한다. buildFeatures { dataBinding true } 2. XML layout 파일에 태그를 root view로 선언한다. '''''' 3. MainActivity에 바인딩 변수를 선언한다. private lateinit var binding: ActivityMainBinding 4. 바인딩 객체를 만들고, 기존의 setContentView를 대체한다. binding = DataBindingUtil.setContentView(this, R.layout.activity_main) 5. findViewById()를 바인딩 객체로 대체한다. .. 안드로이드에서 Data Binding을 왜 사용할까? Data Binding을 왜 쓰는가? 앱의 한 Activity에 View 계층 구조가 복잡한 경우 findViewById()는 비용이 많이 들고 앱 속도가 느려지는데, 안드로이드는 원하는 View를 찾을 때까지 루트부터 보기 계층을 통과하기 때문이다. 이에 대한 해결책으로 각 View에 대한 참조가 포함된 객체를 만드는 것이다. Binding 오브젝트라고 불리는 이 오브젝트는 앱 전체가 사용할 수 있다. 이 기술을 데이터 바인딩이라고 한다. 앱에 대한 바인딩 개체가 생성되면 뷰 계층을 통과하거나 데이터를 검색할 필요 없이 바인딩 개체를 통해 View 및 기타 데이터에 액세스할 수 있다. Data Binding의 이점 코드가 짧아지고 읽기 쉬워진다. findByView()를 사용하는 것보다 유지, 보수하기.. 이전 1 2 다음