Jetpack

    [JETPACK개론] WorkManager(4) + 작업진행률 관찰

    [JETPACK개론] WorkManager(4) + 작업진행률 관찰

    WorkManager는 앞서 포스팅했던 내용 이외에도 getWorkInfoByLiveData메소드 중 하나를 사용하여 현재 작업 진행률 정보를 관찰할 수도 있다. CoroutineWorker 객체의 setProgress함수를 사용하여 진행률 정보를 업데이트 할 수 있다. 공식문서를 봐도 getWorkInfoBy..() 또는 getWorkInfoByLiveData() 메소드 중 하나를 사용하여 정보를 관찰할 수 있고 이 메소드는 Data를 반환하는 새 getProgress() 메소드가 있는 WorkInfo의 인스턴스를 반환한다고 나와있다!! 다음 예시를 살펴보자! class WorkManagerTest(context : Context, params : WorkerParameters) : CoroutineW..

    [Android/파고들기] 2화 Android Architecture Components(AAC)

    [Android/파고들기] 2화 Android Architecture Components(AAC)

    파고들기의 제 2화!! 두 번째 이야기! Android Architecture Components(AAC)에 대해서 다뤄보자. 안드로이드 개발을 하다보면 AAC라는 키워드를 자주 보게 된다. 기업들의 채용공고들을 보면 MVVM, AAC에 대한 이해 및 서비스 적용 및 경험이 있는 분을 모집한다는 글도 자주 볼 수 있다. 안드로이드 공식문서를 살펴보면 다음과 같은 안드로이드 앱 아키텍쳐 패턴으로 개발하기를 권장하고 있다. 위와 같이 Android Architecture Components를 활용하여 관심사를 분리하고 개발하기를 권장하고 있다. 안드로이드는 여러 컴포넌트들이 있고, 생명주기가 다르게 얽혀있어 앱을 만들기 위해서는 위와 같은 컴포넌트들을 연결해주어야 하는데 이는 개발자의 역량에 따라서 달라질 ..

    [Compose] Jetpack Compose 들어가며

    [Compose] Jetpack Compose 들어가며

    [서론] 요즘 굉장히 핫한 Jetpack Compose에 관심이 생겨 공부를 하기 시작했다. 신기술을 공부할 때면 기존의 코드와 어떤 점이 달라질까? 라는 설렘이 생기기 시작한다. 지금은 Jetpack Compose를 공부하는 시작하는 단계이지만, 나중에 Compose를 자유자제로 다루기 시작할 때면 여태까지 한 프로젝트를 통째로 리팩토링 해보고 싶다. [Why?] 그럼 이제 Jetpack Compose가 무엇이길래 기업에서 Jetpack Compose로 바꾸려고 할까? 먼저 공식문서에 따르면 Jetpack Compose는 SwiftUI, Flutter와 같은 선언형 UI중의 하나입니다. 라고 나와있다. 기존의 Android의 XML으로 작성하는 방식은 특정 상태에 따라 UI가 어떻게 보여질지에 대해 구..

    [JETPACK개론] WorkManager(1)

    [JETPACK개론] WorkManager(1)

    WorkManager는 공식문서를 확인해보면 지속적인 작업에 권장되는 솔루션이라고 나온다. 앱이 다시 시작되거나 시스템이 재부팅될 때 작업이 예약된 채로 남아 있으면 그 작업은 유지된다고 설명하고 있다. 이렇게 공식문서만 살펴보면 이해가 잘 안되는 경우가 있다. 사용자가 앱을 나가도 오래 걸리는 작업같은 경우에는 앱을 나가버리면 보통 그 작업이 멈춰버린다. 이 때 WorkManager를 사용할 수 있다. 이렇기 때문에 지속적인 작업에 권장되는 솔루션이라고 하는 것이다. 또한 WorkManager는 코루틴을 지원하고, 작업 순서 설정이 가능하다. 예를 들어 A, B작업은 첫 번째로 실행되는 두 번째로 실행되는 상관이 없지만 C라는 작업은 꼭 세 번째에 실행되어야 한다고 가정하였을 때 이 때 작업 순서를 정..

    [JETPACK개론] ROOM(3)

    [JETPACK개론] ROOM(3)

    ROOM드디어 마지막 포스팅!! 이제 전 글에 이어서 LiveData와 RecyclerView, 그리고 Repository이용해서 불러오는 것까지 구현해보자! 먼저 레이아웃에 리사이클러뷰, item 그리고 어댑터클래스부터 먼저 생성해주자. class CustomAdapter(private val dataSet : List) : RecyclerView.Adapter() { class ViewHolder(view : View) : RecyclerView.ViewHolder(view){ val textView : TextView = view.findViewById(R.id.textView) } override fun onCreateViewHolder(parent: ViewGroup, viewType: Int)..