일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
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 |
- 빌터패턴
- ㅋㅁ
- Design Pattern
- 옵저버 패턴
- Functional Programming
- designPattern
- ㅓ
- a
- r
- 디자인패턴 #
- Kotlin
- 팩토리 메소드
- Observer Pattern
- F
- 코틀린
- 프로토타입 패턴
- 싱글톤
- factory method
- Singleton
- 추상팩토리패턴
- Abstract Factory
- builderPattern
- 추상 팩토리
- 디자인패턴
- 함수형프로그래밍
- El
- PrototypePattern
- Today
- Total
목록Android Jetpack Architecture (70)
오늘도 더 나은 코드를 작성하였습니까?
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/ccmYeT/btqG67Ru8OH/xylJj58KTK96c4nr9AmPHk/img.png)
Room은 SQLite에 대한 추상화 계층을 제공하여 SQLite의 모든 기능을 활용하면서 쉬운 데이터베이스 접근을 허용한다. 상당한 양의 구조화된 데이터를 처리하는 앱은 데이터를 로컬로 유지하여 대단한 이점을 얻을 수 있습니다 가장 일반적인 사용 사례는 관련 데이터를 캐싱하는 것입니다. 이런 방식으로 기기가 네트워크에 액세스할 수 없을 때 오프라인 상태인 동안에도 사용자가 여전히 콘텐츠를 탐색할 수 있습니다. 나중에 기기가 다시 온라인 상태가 되면 사용자가 시작한 콘텐츠 변경사항이 서버에 동기화됩니다. Room은 이러한 문제를 자동으로 처리하므로 SQLite 대신 Room을 사용할 것을 적극적으로 권장된다. 의존성 추가. dependencies { def room_version = "2.2.5" imp..
안드로이드 아키텍쳐 컴포넌트인 ViewModel은 유용한 기능을 제공해주는 반면 사용에 제약도 따른다. 1. ViewModel은 절대로 Activity나 Fragmemt 또는 View의 Context를 참조해서는 안된다. 언제든 생성 및 파괴될수있는 객체의 참조를 ViewModel에게 유지시키는 일은 파괴된 Activity를 ViewModel에서 유지 시킴으로서 메모리 누수를 발생시킨다. 시스템의 Context가 필요한경우 AndroidViewModel을 사용해라. 2. ViewModel에서 안드로이드 프레임워크 코드를 참조하면안된다. 프레임 워크 코드를 참조하게되면 단위테스트가 불가능해진다. ViewModel은 View에 표현할 데이터및 비지니스 로직을 지녀야 한다. 3. Dagger2및 ViewMod..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/HV4iG/btqG2Hzdr3q/AvNABQtcDrg5I6rsPHdJP1/img.png)
CursorLoader와 같은 로더 클래스는 앱 UI의 데이터와 데이터베이스 간의 동기화를 유지하는 데 자주 사용된다. ViewModel을 몇 가지 클래스와 함께 사용하여 로더를 대체할 수 있습니다. ViewModel을 사용하면 UI 컨트롤러가 데이터 로드 작업에서 분리됩니다. 즉, 클래스 간에 강력한 참조가 적어집니다. 일반적인 로더 사용 방법 중 하나로, 앱이 CursorLoader를 사용하여 데이터베이스의 내용을 관찰할 수 있습니다. 데이터베이스에서 값이 변경되면 로더가 자동으로 데이터 새로고침을 트리거하고 UI를 업데이트합니다. ViewModel은 Room 및 LiveData와 함께 작업하여 로더를 대체합니다. ViewModel은 기기 구성이 변경되어도 데이터가 유지되도록 보장합니다. 데이터베이스..
![](http://i1.daumcdn.net/thumb/C150x150.fwebp.q85/?fname=https://blog.kakaocdn.net/dn/dPMW5o/btqG4at2MKg/OgB0mg2sw0RVTNEW78y2a0/img.png)
ViewModel이 없이 하나의 Activity에서 일반적으로 여러 개의 Fragment와의 데이터를 공유하고 전달하기 위해서는 Activity가 인터페이스를 구현하고 그 인터페이스의 참조(context)를 각 Fragment에 넘겨준 후 호출시키는 방법으로 통신을 하는 것이 기본적이다. 하지만 두 fragment가 모두 인터페이스 설명을 정의해야 하고 소유자 Activity가 두 fragment를 함께 결합해야 하므로 이 사례는 간단히 처리할 수 있는 작업이 아닙니다. 또한 두 fragment는 모두 다른 fragment가 아직 생성되지 않았거나 표시되지 않은 시나리오도 처리해야 합니다. ViewModel을 사용하면 이러한 Activity 및 Fragment 간 데이터의 공유 및 통신이 쉬어지고 코드가..