Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Sign up for free
Menu
Search
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Features
All features
Private URLs
Password Protection
Custom URLS
Scheduled publishing
Remove Branding
Restrict embedding
Deck Collections
Notes
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Explore
Featured decks
Featured speakers
Programming
Technology
Storyboards
Pricing
Search
Sign in
Sign up for free
TCAってなに? Swift愛好会 vol.91 @dely
Search
am2525nyan
January 21, 2025
92
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
TCAってなに? Swift愛好会 vol.91 @dely
am2525nyan
January 21, 2025
More Decks by am2525nyan
See All by am2525nyan
Walletはチケットだけじゃない?オリジナルのプロフィールカードをつくってみる
am2525nyan
0
440
SwiftWasmを使ってみた@Okinawa.Swift
am2525nyan
0
15
CA TechLoungeの4月LT会スライド
am2525nyan
0
12
Featured
See All Featured
It's Worth the Effort
3n
188
29k
Claude Code どこまでも/ Claude Code Everywhere
nwiizo
68
59k
Dealing with People You Can't Stand - Big Design 2015
cassininazir
367
27k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
130k
Into the Great Unknown - MozCon
thekraken
41
2.8k
"I'm Feeling Lucky" - Building Great Search Experiences for Today's Users (#IAC19)
danielanewman
230
23k
Building a Modern Day E-commerce SEO Strategy
aleyda
45
9.3k
Building AI with AI
inesmontani
PRO
1
1.3k
The SEO identity crisis: Don't let AI make you average
varn
0
590
Google's AI Overviews - The New Search
badams
0
1.6k
The Organizational Zoo: Understanding Human Behavior Agility Through Metaphoric Constructive Conversations (based on the works of Arthur Shelley, Ph.D)
kimpetersen
PRO
0
500
Agile Leadership in an Agile Organization
kimpetersen
PRO
0
290
Transcript
TCAを初心者が 使ってみた Swift愛好会 vol.91 @dely
ABOUT ME さき(細沼咲希) 🏫デジハリ一年生 👩💻CA TechLounge 💗開発/ネイル/ハッカソン/天月さん/ポケカ 😻ラブライブμ's→Aqours→Liella 約1ヶ月で全部見ました! 👀ビンゴが下手です
💻Swift/Ruby on Rails/Flutter/php SwiftUI>UIKit Swift歴 2年ちょっと twitter(新X)
アプリの状態管理大変だなー
初めて作ったSwi f tUI のアプリ
そんな時にはTCA!!!
Client T C A は 、 The Composable Architectureの略 Point-Free
が 提 供 す る 、 Apple の プ ラ ッ ト フ ォ ー ム 向 け の ア プ リ ケ ー シ ョ ン ア ー キ テ ク チ ャ を 提 供 す る オ ー プ ン ソ ー ス フ レ ー ム ワーク。 TCAとは! 一 貫 性 が あ り 、 明 確 で 、 再 利 用 可 能 か つ テ ス ト 可 能 な 設 計 を 目 指 しています
Client TCAとは! State, Action, Reducer, Store の4つ!
Client TCAとは! アプリの状態管理を簡単に見やすくシンプルに 行える!
簡単なカウントアプリを作ってみよう! ⚠️フォントは可愛いです
Client 簡単なカウントアプリを作ってみよう! State 状態の管理をしてくれる変数の格納場所
Client 簡単なカウントアプリを作ってみよう! Acti on アプリ全ての操作やイベントなどを 定義する
Client 簡単なカウントアプリを作ってみよう! Reducer Viewから受け取ったアクションなどをも とに、アプリケーションの状態を変化さ せる方法を書いて新しい状態を返す 純粋関数
Client 簡単なカウントアプリを作ってみよう!
Client 簡単なカウントアプリを作ってみよう!
View Client 図 Action Reducer State ユーザーの操作 Action APIClientなど Viewの再描画
Effectを実行 結果に応じて、 Actionを発行 Stateを更新
Client 状態管理が見やすくどこで値が変わったのか わかりやすくなった! 使ってみたメリット 🔥
Client 状態管理が見やすくどこで値が変わったのか わかりやすくなった! MVVMと比較してViewModel が肥大化するのを防 げた! 使ってみたメリット 🔥
Client 使ってみたメリット 🔥 状態管理が見やすくどこで値が変わったのか わかりやすくなった! MVVMと比較してViewModel が肥大化するのを防 げた! preview用にmockが挿入できたので、実際にAPI 通信を行うことなく表示できた!
使ってみたメリット 🔥 依存関係を本番、テスト、プレビューで自動で 切り替えてくれるツール Dependency Key
使ってみたメリット 🔥 preview用にmockが挿入できたので、実際にAPI 通信を行うことなく表示できた!
Client 使ってみたデメリット 💧 学習コストが高い!
Client 使ってみたデメリット 💧 学習コストが高い! 常にアップデートされているので、気づいたら、 非推奨になっていた!ってことがよくある
Client 使ってみたデメリット 💧 学習コストが高い! 常にアップデートされているので、気づいたら、 非推奨になっていた!ってことがよくある 個人の小さめなアプリでは書く量が多くなってし まう
まとめ 学習コスト高いし書き方の正解がわからなくて 困った!
まとめ 学習コスト高いし書き方の正解がわからなくて 困った! CA TechLoungeでTCAを使った共同開発に入れ てもらった 公式のサンプルを見たり
まとめ 公式ドキュメントみたらなんとかなる
Thank You! zennの記事