목록분류 전체보기 (163)
불로구
MVC 패턴 - Model, View, Controller의 약자 - 하나의 애플리케이션, 프로젝트를 구성할 때 그 구성요소를 3가지로 구분한 패턴 Model - 애플리케이션의 정보와 데이터 - DB, 상수, 변수등을 나타낸다. - 위 정보들의 가공을 책임지는 컴포넌트 - 사용자가 편집하길 원하는 모든 데이터를 가진다 - View, Controller에 대해 어떤 정보도 알지 않아야 한다. -> 데이터 변경 발생 시 모델에서 UI를 직접 조정가능하게 뷰를 참조하는 내부 속성값을 가지면 안된다. - 변경 발생 시 처리방법을 구현해야 한다. View - 데이터 및 객체의 입출력 담당 - 사용자들이 볼 수 있는 화면 - 모델이 가지고 있는 정보를 따로 저장하면 안됨 - 모델이나 컨트롤러와 같이 다른 구성요소들..
라이브데이터란? - 옵저버 패턴을 사용하여 데이터의 변화가 발생 시 콜백으로 받아 처리 - LifeCycleOwner를 통해 안드로이드의 LifeCycle을 알고 있기 때문에 필요하지 않을 땐 콜백을 실행하지 않는다. - 메서드가 getLifeCycle() 뿐인 단일 메소드 인터페이스 클래스 장점 1. Data와 Ui간 동기화 - 옵저버 객체를 통해 데이터의 변화가 일어나는 곳마다 매번 UI를 업데이트 2. 메모리 누수가 없다 - 안드로이드의 생명주기와 연결되어 메모리상에서 스스로 해제 3. Stop 상태에서 Crash가 발생하지 않는다. - 옵저버의 생명주기가 비활성화일경우 이벤트 수신x 4. 최신 데이터 유지 및 자원 공유 - LiveData를 상속하여 클래스를 구현하거나 싱글톤을 이용하여 시스템을 ..
데이터 바인딩이란? - UI요소와 데이터를 선언적 방식으로 결합할 수 있게 도와주는 라이브러리 - UI요소에 연결하기 위해 필요한 코드를 최소화 가능 - findViewId 선언 x , 자동 - RecyclerView에 각 item을 자동 set - data가 바뀌면 자동으로 View 변경 가능 - MVVM & MVP 패턴 구현에 용이 준비 plugins { id 'com.android.application' id 'kotlin-android' id 'kotlin-kapt' //추가 } android { ..... //추가 dataBinding { enabled = true } } // 환경에 따라 다름 def archLifecycleVersion = '2.2.0' implementation "andro..
addView란? - 현재는 recycleview를 더 많이 사용하지만 recycleview를 사용하기 위해 알아야하는 기술 - 액티비티가 호출하는 xml 레이아웃에 소스코드로 직접 view를 만들어서 add한다. -> item_view.xml 파일을 만들어서 추가할 xml 요소를 작성한다. -> addview를 추가할 자리를 만들고 스크롤 처리했다 class MainActivity : AppCompatActivity() { override fun onCreate(savedInstanceState: Bundle?) { super.onCreate(savedInstanceState) setContentView(R.layout.activity_main) //아이템 리스트 val carList = ArrayLi..