Slide 77
Slide 77 text
AbemaTV, Inc. All Rights Reserved
既存アプリの移行 (差異の例)
77
fun getCanRegisterManager(isTablet: Boolean): Boolean {
return ContentPreviewUtil.canRegisterManager(
isTablet = isTablet,
isJapanRegion = regionStore.isJapan(),
)
}
fun toggleLockManager(isTvPlayable: Boolean): Boolean {
return ContentPreviewUtil.shouldLockManager(
isTvPlayable = isTvPlayable,
networkState = systemStore.networkState,
mode = userStore.contentPreviewAutoPlayMode.value,
)
}
func observeContentPreviewable() -> Observable {
return Observable.combineLatest(
reachabilityRepository.observeNetworkType(),
settingContentPreviewRepository.observeSetting(),
regionRepository.observeRegionPolicy()
)
.map { networkType, setting, regionPolicy -> Bool in
...
}
.distinctUntilChanged()
}
Android iOS
fun observeContentPreviewable(): Flow {
return combine(
networkRepository.observeNetworkState(),
settingContentPreviewRepository.observeSetting(),
regionRepository.observeRegionPolicy()
){ networkState, setting, regionPolicy ->
…
}
…
}
KMM
コードリーディング + 該当範囲の担当に実装についての
ヒアリングを実施し、両 OSのUILogicでの影響も考慮した
上でKMM側のI/Fを決めて実装を進める