Agenda › LINE Live Commerce Assistant App › High concurrent auction chat room › New UI framework and architecture and why › SwiftUI › The Composable Architecture (TCA) › Challenge we met 2
KOREA COLOMBIA MEXICO LINE Live Commerce Assistant App Available in this year SINGAPORE THAILAND MALAYSIA THE UNITED STATES INDONESIA JAPAN TAIWAN SPAIN TURKEY 4
Why The Composable Architecture (TCA) Building apps in a consistent and understandable way, with composition, testing, and ergonomics in mind Independent State SwiftUI Style Dependency Prioritized Testability 9
ViewStore The Composable Architecture (TCA) The flow of an independent composable feature (scope) 12 Reducer State Action StoreOf LoginView Dependencie
The Composable Architecture (TCA) Communication between View and Store 15 struct LoginView: View { let store: StoreOf @ObservedObject var viewStore: ViewStoreOf var body: some View { // ... VStack { Button("Login") { viewStore.send(.loginButtonTapped) } .disabled(viewStore.isLoading) } } } ViewStore Reducer State Action StoreOf LoginView
Challenge We Met It’s really good enough, but we do encounter a few challenges › Content offset, if edges get reached and is scrolling › Keyboard presentation/dismissal Scrolling observation Behavior may vary according to iOS version › Extra testing effort Communication between imperative and declarative programming › UI components made for UIKit › e.g. WKWebView 19