TCA with UIKit [TCAでわいわいLT会]
by
tatsubee
Link
Embed
Share
Beginning
This slide
Copy link URL
Copy link URL
Copy iframe embed code
Copy iframe embed code
Copy javascript embed code
Copy javascript embed code
Share
Tweet
Share
Tweet
Slide 1
Slide 1 text
Presented by 辰べえ 2024.03.18 Presented by 辰べえ TCA with UIKit
Slide 2
Slide 2 text
辰べえ iOSエンジニア 辰べえ iOSエンジニア 2 自己紹介 ● 23新卒 ● 福岡生まれ 福岡育ち 東京在住 ● 最近やっていること ○ お絵描き ○ テニス ○ iOS
Slide 3
Slide 3 text
UIKitでTCAを使うことを考える 3
Slide 4
Slide 4 text
UIKitでTCAを使うことを考える ● 「TCAはSwiftUIで使うもの」という印象がある 4
Slide 5
Slide 5 text
UIKitでTCAを使うことを考える ● 「TCAはSwiftUIで使うもの」という印象がある ● しかし新規のプロダクトをSwiftUIで実装するならともかく、 以前からあるプロダクトでUIKit→SwiftUIの移行を今すぐに行うことは 容易ではない 5
Slide 6
Slide 6 text
UIKitでTCAを使うことを考える ● 「TCAはSwiftUIで使うもの」という印象がある ● しかし新規のプロダクトをSwiftUIで実装するならともかく、 以前からあるプロダクトでUIKit→SwiftUIの移行を今すぐに行うことは 容易ではない ● じゃあUIKitではTCAはどのように使えるんだろう? 6
Slide 7
Slide 7 text
UIKitでTCAを使うことを考える ● 「TCAはSwiftUIで使うもの」という印象がある ● しかし新規のプロダクトをSwiftUIで実装するならともかく、 以前からあるプロダクトでUIKit→SwiftUIの移行を今すぐに行うことは 容易ではない ● じゃあUIKitではTCAはどのように使えるんだろう? ● 後世、UIKitからSwiftUIに移行することを前提として、あらかじめTCA を導入することも一つの手では? 7
Slide 8
Slide 8 text
UIKitにおけるTCAの基本的な実装 8
Slide 9
Slide 9 text
9 Reducerの実装
Slide 10
Slide 10 text
10 Storeの保持
Slide 11
Slide 11 text
11 Actionの実行
Slide 12
Slide 12 text
12 State変更時
Slide 13
Slide 13 text
注意点 13
Slide 14
Slide 14 text
14 状態の変化によって まとめて実行される
Slide 15
Slide 15 text
15 ←重い処理
Slide 16
Slide 16 text
16 処理の単位で分割! ←重い処理
Slide 17
Slide 17 text
UIKitからSwiftUIへの移行 17
Slide 18
Slide 18 text
UIKitからSwiftUIへの移行 18 UIKitからSwiftUIへの移行が簡単にできるか?
Slide 19
Slide 19 text
UIKitからSwiftUIへの移行 19 UIKitからSwiftUIへの移行が簡単にできるか? →場合による
Slide 20
Slide 20 text
UIKitからSwiftUIへの移行 20 ユーザーが実行するアクションが単純な場合: 移行は比較的簡単
Slide 21
Slide 21 text
UIKitからSwiftUIへの移行 21 アクションが複雑な場合: SwiftUI側に機能が足りていない場合がある
Slide 22
Slide 22 text
まとめ 22 ● UIKitにTCAを採用することができるか? ○ ◎ ○ そもそもUIKitでも使いやすいよう作られている ● 後々、UIKitからSwiftUIに移行しやすいか? ○ ○ ○ 単純な機能(Tap等)であればReducerはそのまま移行できる ○ 複雑な機能(Drag&Drop等)だと、ロジックの改修を必要とする場合がある ■ とはいえ、Reducerの形は大きく変わらないので改修も難しくない(かも)
Slide 23
Slide 23 text
ご清聴 ありがとうございました! 23