플로우바인딩 1.0
작년에 우리는 AndroidX 라이브러리를 위한 4개의 새로운 아티팩트를 추가했고, 최소 SDK를 API 14까지 떨어뜨렸으며, 상태 변경을 내보내는 위젯을 위한 새로운 API
InitialValueFlow
및 new API docs을 도입했습니다.오늘 저는 FlowBinding의 1.0 stable release을 공유하게 되어 기쁩니다!
새로운 기능
대부분의 API는 작년 첫 공개 릴리스( ) 이후 동일하게 유지되었지만 지난 14개월 동안 라이브러리에 상당한 개선을 이루었습니다.
새로운 아티팩트
우리는 대부분의 새로운 UI 위젯이 개발되고 있는
flowbinding-material
에 대한 바인딩을 제공하는 데 초점을 맞추었지만 AndroidX 라이브러리를 위한 4개의 새로운 아티팩트도 추가했습니다.flowbinding-activity - AndroidX Activity에서
OnBackPressedDispatcher
에 바인딩 제공flowbinding-lifecycle - 수명 주기 변경 이벤트를 AndroidX Lifecycle에서
Flow<Lifecycle.Event>
로 바꿉니다.flowbinding-preference - AndroidX Preference (Settings)에서
Preference
및 EditTextPreference
에 대한 바인딩을 제공합니다.flowbinding-viewpager - 레거시
flowbinding-viewpager2
아티팩트에 대해 androidx.viewpager.widget.ViewPager
의 바인딩을 백포트합니다. 최소 SDK 14
원래 필요한
minSdkVersion
FlowBinding은 API 21이었습니다. 이는 대부분의 사용자에게 합리적이지만 신흥 시장을 위해 개발하는 사용자에게는 낮은 API 수준에 대한 지원이 여전히 필수적입니다(자세한 내용은 여기 참조).이제
minSdkVersion
를 API 14로 떨어뜨렸습니다.초기 값
Slider의 현재 값(최근에 추가된 Material Component )과 같이 내부적으로 상태를 유지하는 UI 위젯의 경우 현재 값을 수집할 때 즉시 내보내야 하는지 여부를 나타내는 선택 사항
emitImmediately: Boolean
을 제공하는 데 바인딩이 사용되었습니다.@CheckResult
@UseExperimental(ExperimentalCoroutinesApi::class)
fun Slider.valueChanges(emitImmediately: Boolean = false): Flow<Float> = callbackFlow {
...
}
emitImmediately
의 기본값은 false
이며 not everyone agrees입니다.커뮤니티 내에서 논의한 후 상태 변경을 내보내는 바인딩에 대한 새
InitialValueFlow
를 도입하기로 결정했습니다(아이디어를 제공한 Sven Jacobs에게 감사드립니다).An
InitialValueFlow
은 Flow 수집 즉시 위젯의 현재 값(상태)을 내보냅니다.이것은
emitImmediately
의 이전 기본값을 false
에서 true
로 효과적으로 변경했지만 유형 자체에서 동작을 더 명확하게 전달합니다.현재 값의 초기 방출을 건너뛰려면
skipInitialValue()
에서 InitialValueFlow
함수를 호출하십시오.slider.valueChanges()
.skipInitialValue()
.onEach { value ->
// handle value
}
.launchIn(uiScope) // current value won't be emitted immediately
이는 RxBinding의
InitialValueObservable
와도 일치합니다.새 API 문서
FlowBinding에는 많은 아티팩트와 API가 있습니다. 이제 Dokka 1.4에서 제공하는 project website과 함께 각 아티팩트에서 사용할 수 있는 모든 전이적 AndroidX 종속성 및 바인딩을 문서화하는 새 파일new API docs이 있습니다.
무엇 향후 계획?
Jetpack Compose는 분명히 Android용 UI 개발의 미래이며 FlowBinding은 특히 곧 사라지지 않을 현재 세대의 UI 도구 키트를 대상으로 합니다. material-components-android 라이브러리는 많은 새로운 보기 기반 구성 요소가 추가되거나 계획되면서 여전히 활발하게 개발되고 있습니다.
따라서 새로운 머티리얼 디자인 구성요소(예: TimePicker )가 출시되면 AndroidX 바인딩을 유지하고 바인딩을 추가하는 작업을 계속할 계획입니다.
감사!
지난 14개월 동안 FlowBinding을 사용하고, 버그를 보고하고, 기능을 요청하고, 토론에 참여하고, PR을 보내주신 모든 분들께 감사드립니다. 이 모두가 오늘 라이브러리를 통해 달성한 성과에 기여했습니다!
Reference
이 문제에 관하여(플로우바인딩 1.0), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://dev.to/ychescale9/flowbinding-1-0-44h텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)