6.liveData를 사용해 보자(Viewmodel 적용기)
·
안드로이드 jetpack/sunflower
liveData는 라이프 사이클을 아는 데이터라고 했고, observe가 가능한 클래스임. 그래서 실시간으로 데이터 변화를 감지 할 수 있다. hilt를 사용하여 obsereve가 자동으로 제거된다고 했으므로 좀 더 편하게 사용 할 수 있음 (이건 내가 확신이 없어서 다음에 디버그 포인트 찍어서 진짜 그런지 확인해 봐야겠음.. 좀 큰 프로젝트를 만들어서라도.. 근데 lifecycleOwner를 사용해서 관찰자에 대응되는 객체의 상태를 보고 Destroyed가 되었을때 관찰자를 삭제 한다고 하므로 누수 걱정이 없다는게 장점이니 확실한 거 같음.) 1.TransFormations 라이브데이터의 저장된 값을 변경하고싶을때 사용한다. 라이브데이터에 적용하여 onChange가 되었을때 작동하여 변화를 감지한다. ..
5. work에 대해서 알아보자
·
안드로이드 jetpack/sunflower
워크매니져는 앱의 상태(포그라운드,백그라운드)와 무관하게 진행되어야 하는 작업들을 관리해주며 안드로이드가 작업을 중지시켰을때 재시작을 하게 해준다. 그리고 제한사항을 통해 배터리와 관계를 통해 백그라운드에서의 활동을 좀 더 다루기 쉽게?(유용하게?) 해줌. 백그라운드작업은 디바이스의 제한된 리소스를 사용하고, 배터리를 잡아먹는다. 그래서 폰의 배터리가 빨리달거나 하는 불편한 상황을 겪을 수 있음. 백그라운드에서 진행될 작업이 있는가부터 고민을 해봐야한다고 함. 그리고 그 작업이 지연이 가능한 작업인가? 고민해봐야함. 그럼 SunFlower에서는 어떻게 사용하고 있는가를 봐보자 1. Database를 만들떄 work를 사용함 @Database(entities = [GardenPlanting::class, ..
4. Paging, PagingAdapter
·
안드로이드 jetpack/sunflower
1. PagingDataAdapter을 알아보기 전에 Paging에 대해서 알아보자 페이징은 많은 데이터를 한꺼번에 가지고 오는방식이 아닌 리스너를 통해서 다음 페이지를 요청하면 서버나 내부저장소를 통해서 일정량의 데이터를 가지고 오는방식으로 시스템리소스를 줄일 수 있다. 그냥 구현을 할 수도 있지만 이것을 편하게 해주는 라이브러리라고 한다. 위의 PagingSource와 RemoteMediator ,Pager,PagingData가 무엇인지 알아야함 1)PagingData 한 번의 Load에 의해 만들어지는 페이징 데이터들의 컨테이너임. 한 번에 5개를 가져오면 그 5개를 하나의 페이징 데이터로 만든다?(아닌가?) 2) PagingSource(RxPagingSource :RxJava를 사용하게 되면 이걸..
3.recyclerview(ListAdapter)
·
안드로이드 jetpack/sunflower
우선 @BindingAdapter은 뷰바인딩 할때 알아보도록 하고 어떤 adapter을 썻는지 확인해보자 (1) PagingDataAdapter (2) FragmentStateAdapter (3) ListAdapter 여기서 2번은 뷰페이져에 사용하는 어댑터니 다음에 알아보고 ListAdapter은 자주 사용해 봤는데 PagingDataAdapter은 보긴 했는데 어떻게 쓰는건지 몰라서 안써봤다... 먼저 Adapter란 리사이클러 뷰에서 표시할 뷰들의 set을 바인딩 해준다. 1. ListAdapter ListAdapter는 Adapter와 diff를 제공함 diff는 submit 된 리스트들의 변화를 감지하고 알려준다. AsyncListDiffer를 직접 사용하지 않아도 간편하게 이러한 기능을 제공하..
2.sunflower분석 ( hilt)
·
안드로이드 jetpack/sunflower
1. Hilt를 사용하는 어플이므로 application클래스에 @HiltAndroidApp class MainApplication : Application() HiltAndroidApp를 붙여준다. 2. Application클래스에 Hilt를 붙여주고 다른 Android 클래스에 AndroidEntryPoint를 붙여주면 종속항목을 제공할 수 있다. @AndroidEntryPoint class GardenFragment : Fragment() {..} 위와 같이 안드로이드 클래스에 주석을 사용하게 되면 위의 클래스를 사용하는 클래스에서도 주석을 작성해야 함 위의 프래그먼트를 사용하는 액티비티에도 위와 같은 주석이 있어야 함 3. 아래의 뷰모델의 객체가 생성되는 부분이 oncreateView에도 없다. ..
1. DI 종속성 주입 (sunflower 분석 ,hilt, dagger)
·
안드로이드 jetpack/sunflower
DI Dependency Injection 프로그래밍에 많이 사용되면 방법이며 안드로이드 개발에 적합하다고 함 다음과 같은 이점이 있다고 한다. 1) 코드 재사용 가능 2) 코드 리팩토리 편의성 3) 테스트 편의성 종속성이라고 하니까 implement,extent 이런게 떠오르는데 다른가? 1. 객체를 생성하는 방식 디벨로퍼 페이지에서는 자동차와 엔진을 가지고 설명을 한다. 나도 같은 방식으로 해석해 보자면 만약 우리가 (1) 전기차 와 (2) 가스차를 둘다 이용해 보고 싶은 상황에서 엔진이 전기엔진과 가스 엔진이 있다 1) 객체속에서 객체를 인스턴스하는 방법 class ECar{ private val engine = ElecEngine() fun start(){ engine.start() } } cla..
리워크
'안드로이드 jetpack/sunflower' 카테고리의 글 목록