Submit Search
Upload
The Composable Architecture [iOS内定者輪読会]
•
0 likes
•
21 views
Takuma Osada
Follow
The Composable Architectureについての説明
Read less
Read more
Engineering
Report
Share
Report
Share
1 of 32
Download now
Download to read offline
Recommended
エンジニア vs ディレクターの戦いに終止符を!日々を穏やかに過ごすコツ教えます
エンジニア vs ディレクターの戦いに終止符を!日々を穏やかに過ごすコツ教えます
Yuka Masaki
Google I/O 2017 報告会 in 石巻 「API.AIを知ろう!」
Google I/O 2017 報告会 in 石巻 「API.AIを知ろう!」
SENSY Inc
女ゴコロを形にする!現役女性ディレクターが語る女子にウケるサービス作りとは?
女ゴコロを形にする!現役女性ディレクターが語る女子にウケるサービス作りとは?
Yuka Masaki
やはりお前らのiOS7対応は間違っている
やはりお前らのiOS7対応は間違っている
今城 善矩
Potatotips3 hoshi gaki_akira_iwaya
Potatotips3 hoshi gaki_akira_iwaya
Akira Iwaya
女子にうけるUIはどうやって作られるか?ネイルブックのデザインプロセス大公開!
女子にうけるUIはどうやって作られるか?ネイルブックのデザインプロセス大公開!
Yuka Masaki
「変化と戦うロガー開発(iOS_App_Extensions編)」#yjdsw4
「変化と戦うロガー開発(iOS_App_Extensions編)」#yjdsw4
Yahoo!デベロッパーネットワーク
ノンコーディングで LINE Bot 開発! Azure Logic Apps × Azure Cognitive Services ×LINE メッセー...
ノンコーディングで LINE Bot 開発! Azure Logic Apps × Azure Cognitive Services ×LINE メッセー...
典子 松本
Recommended
エンジニア vs ディレクターの戦いに終止符を!日々を穏やかに過ごすコツ教えます
エンジニア vs ディレクターの戦いに終止符を!日々を穏やかに過ごすコツ教えます
Yuka Masaki
Google I/O 2017 報告会 in 石巻 「API.AIを知ろう!」
Google I/O 2017 報告会 in 石巻 「API.AIを知ろう!」
SENSY Inc
女ゴコロを形にする!現役女性ディレクターが語る女子にウケるサービス作りとは?
女ゴコロを形にする!現役女性ディレクターが語る女子にウケるサービス作りとは?
Yuka Masaki
やはりお前らのiOS7対応は間違っている
やはりお前らのiOS7対応は間違っている
今城 善矩
Potatotips3 hoshi gaki_akira_iwaya
Potatotips3 hoshi gaki_akira_iwaya
Akira Iwaya
女子にうけるUIはどうやって作られるか?ネイルブックのデザインプロセス大公開!
女子にうけるUIはどうやって作られるか?ネイルブックのデザインプロセス大公開!
Yuka Masaki
「変化と戦うロガー開発(iOS_App_Extensions編)」#yjdsw4
「変化と戦うロガー開発(iOS_App_Extensions編)」#yjdsw4
Yahoo!デベロッパーネットワーク
ノンコーディングで LINE Bot 開発! Azure Logic Apps × Azure Cognitive Services ×LINE メッセー...
ノンコーディングで LINE Bot 開発! Azure Logic Apps × Azure Cognitive Services ×LINE メッセー...
典子 松本
スマートファクトリーを支えるIoTインフラをつくった話
スマートファクトリーを支えるIoTインフラをつくった話
Keigo Suda
仮想サーバは、もう不要?!今からIoTやるなら「サーバレス・コンピューティング」
仮想サーバは、もう不要?!今からIoTやるなら「サーバレス・コンピューティング」
真吾 吉田
Line Creators Studio Android With Kotlin
Line Creators Studio Android With Kotlin
LINE Corporation
I os*ble簡単プロトタイピング
I os*ble簡単プロトタイピング
Takahiro Yamamoto
VIPER アーキテクチャによる iOS アプリの設計
VIPER アーキテクチャによる iOS アプリの設計
Yuichi Adachi
Designer's Design Talk「デザインの基礎」
Designer's Design Talk「デザインの基礎」
典子 松本
福井スマートフォンハッカソン Titanium Mobileの紹介
福井スマートフォンハッカソン Titanium Mobileの紹介
Mori Shingo
RFC Viewer開発を通して学ぶ!! iOS開発のパターン化
RFC Viewer開発を通して学ぶ!! iOS開発のパターン化
幸雄 村上
Visual Studio Code のこれまでとこれから at OSC 2021 Online/Spring
Visual Studio Code のこれまでとこれから at OSC 2021 Online/Spring
Issei Hiraoka
SORACOM Conference "Discovery" 2018 | E1. Wioで始めるIoTプロトタイプ開発 〜実践事例のご紹介〜
SORACOM Conference "Discovery" 2018 | E1. Wioで始めるIoTプロトタイプ開発 〜実践事例のご紹介〜
SORACOM,INC
Core Graphics on watchOS 2
Core Graphics on watchOS 2
Shuichi Tsutsumi
Rosecar
Rosecar
Yoshinori Hayashi
はじめてのAzure Sphere
はじめてのAzure Sphere
Tomokazu Kizawa
Einsteinvision - object detection を試してみよう
Einsteinvision - object detection を試してみよう
Salesforce Developers Japan
Developers Festa Sapporo 2019 | 今日から取り組めるIoT と「IoT ライブデモ5連発」
Developers Festa Sapporo 2019 | 今日から取り組めるIoT と「IoT ライブデモ5連発」
SORACOM,INC
MYQLO〜あなたの拡張クローゼット〜
MYQLO〜あなたの拡張クローゼット〜
Ryota Aoki
ソニーのディープラーニングツールで簡単エッジコンピューティング
ソニーのディープラーニングツールで簡単エッジコンピューティング
Ryohei Kamiya
日本Androidの会中国支部第23回勉強会資料
日本Androidの会中国支部第23回勉強会資料
Yuki Yamakido
中国のスマホ市場
中国のスマホ市場
Namito Satoyama
ソースが書けなくてもAndroidアプリをクリック(GUI)開発したい
ソースが書けなくてもAndroidアプリをクリック(GUI)開発したい
Yukio Saito
More Related Content
Similar to The Composable Architecture [iOS内定者輪読会]
スマートファクトリーを支えるIoTインフラをつくった話
スマートファクトリーを支えるIoTインフラをつくった話
Keigo Suda
仮想サーバは、もう不要?!今からIoTやるなら「サーバレス・コンピューティング」
仮想サーバは、もう不要?!今からIoTやるなら「サーバレス・コンピューティング」
真吾 吉田
Line Creators Studio Android With Kotlin
Line Creators Studio Android With Kotlin
LINE Corporation
I os*ble簡単プロトタイピング
I os*ble簡単プロトタイピング
Takahiro Yamamoto
VIPER アーキテクチャによる iOS アプリの設計
VIPER アーキテクチャによる iOS アプリの設計
Yuichi Adachi
Designer's Design Talk「デザインの基礎」
Designer's Design Talk「デザインの基礎」
典子 松本
福井スマートフォンハッカソン Titanium Mobileの紹介
福井スマートフォンハッカソン Titanium Mobileの紹介
Mori Shingo
RFC Viewer開発を通して学ぶ!! iOS開発のパターン化
RFC Viewer開発を通して学ぶ!! iOS開発のパターン化
幸雄 村上
Visual Studio Code のこれまでとこれから at OSC 2021 Online/Spring
Visual Studio Code のこれまでとこれから at OSC 2021 Online/Spring
Issei Hiraoka
SORACOM Conference "Discovery" 2018 | E1. Wioで始めるIoTプロトタイプ開発 〜実践事例のご紹介〜
SORACOM Conference "Discovery" 2018 | E1. Wioで始めるIoTプロトタイプ開発 〜実践事例のご紹介〜
SORACOM,INC
Core Graphics on watchOS 2
Core Graphics on watchOS 2
Shuichi Tsutsumi
Rosecar
Rosecar
Yoshinori Hayashi
はじめてのAzure Sphere
はじめてのAzure Sphere
Tomokazu Kizawa
Einsteinvision - object detection を試してみよう
Einsteinvision - object detection を試してみよう
Salesforce Developers Japan
Developers Festa Sapporo 2019 | 今日から取り組めるIoT と「IoT ライブデモ5連発」
Developers Festa Sapporo 2019 | 今日から取り組めるIoT と「IoT ライブデモ5連発」
SORACOM,INC
MYQLO〜あなたの拡張クローゼット〜
MYQLO〜あなたの拡張クローゼット〜
Ryota Aoki
ソニーのディープラーニングツールで簡単エッジコンピューティング
ソニーのディープラーニングツールで簡単エッジコンピューティング
Ryohei Kamiya
日本Androidの会中国支部第23回勉強会資料
日本Androidの会中国支部第23回勉強会資料
Yuki Yamakido
中国のスマホ市場
中国のスマホ市場
Namito Satoyama
ソースが書けなくてもAndroidアプリをクリック(GUI)開発したい
ソースが書けなくてもAndroidアプリをクリック(GUI)開発したい
Yukio Saito
Similar to The Composable Architecture [iOS内定者輪読会]
(20)
スマートファクトリーを支えるIoTインフラをつくった話
スマートファクトリーを支えるIoTインフラをつくった話
仮想サーバは、もう不要?!今からIoTやるなら「サーバレス・コンピューティング」
仮想サーバは、もう不要?!今からIoTやるなら「サーバレス・コンピューティング」
Line Creators Studio Android With Kotlin
Line Creators Studio Android With Kotlin
I os*ble簡単プロトタイピング
I os*ble簡単プロトタイピング
VIPER アーキテクチャによる iOS アプリの設計
VIPER アーキテクチャによる iOS アプリの設計
Designer's Design Talk「デザインの基礎」
Designer's Design Talk「デザインの基礎」
福井スマートフォンハッカソン Titanium Mobileの紹介
福井スマートフォンハッカソン Titanium Mobileの紹介
RFC Viewer開発を通して学ぶ!! iOS開発のパターン化
RFC Viewer開発を通して学ぶ!! iOS開発のパターン化
Visual Studio Code のこれまでとこれから at OSC 2021 Online/Spring
Visual Studio Code のこれまでとこれから at OSC 2021 Online/Spring
SORACOM Conference "Discovery" 2018 | E1. Wioで始めるIoTプロトタイプ開発 〜実践事例のご紹介〜
SORACOM Conference "Discovery" 2018 | E1. Wioで始めるIoTプロトタイプ開発 〜実践事例のご紹介〜
Core Graphics on watchOS 2
Core Graphics on watchOS 2
Rosecar
Rosecar
はじめてのAzure Sphere
はじめてのAzure Sphere
Einsteinvision - object detection を試してみよう
Einsteinvision - object detection を試してみよう
Developers Festa Sapporo 2019 | 今日から取り組めるIoT と「IoT ライブデモ5連発」
Developers Festa Sapporo 2019 | 今日から取り組めるIoT と「IoT ライブデモ5連発」
MYQLO〜あなたの拡張クローゼット〜
MYQLO〜あなたの拡張クローゼット〜
ソニーのディープラーニングツールで簡単エッジコンピューティング
ソニーのディープラーニングツールで簡単エッジコンピューティング
日本Androidの会中国支部第23回勉強会資料
日本Androidの会中国支部第23回勉強会資料
中国のスマホ市場
中国のスマホ市場
ソースが書けなくてもAndroidアプリをクリック(GUI)開発したい
ソースが書けなくてもAndroidアプリをクリック(GUI)開発したい
The Composable Architecture [iOS内定者輪読会]
1.
第11回 CyberAgent21卒内定者iOS輪読会 CyberAgent21卒内定者iOS輪読会-iOSアプリ設計パターン⼊⾨ by@ostk0069 1
2.
今回は番外編です TheComposableArchitectureについて⾏います CyberAgent21卒内定者iOS輪読会-iOSアプリ設計パターン⼊⾨ by@ostk0069 2
3.
今回の話ではTheComposableArchitectureは⻑いので 本家でもよく出てくるTCAとして記すこととします CyberAgent21卒内定者iOS輪読会-iOSアプリ設計パターン⼊⾨ by@ostk0069 3
4.
発表者はTCAについてプロジェクトととしての運⽤経験はないのでマサカリをする際 には⼗分に配慮した上で⾏っていただけると助かります CyberAgent21卒内定者iOS輪読会-iOSアプリ設計パターン⼊⾨ by@ostk0069 4
5.
今回話すこと 理解する上で必要な知識 主な概要や誕⽣経緯 5つの特徴 登場するClassの役割 導⼊することのメリット・デメリット サンプルコードを⾒る CyberAgent21卒内定者iOS輪読会-iOSアプリ設計パターン⼊⾨ by@ostk0069 5
6.
今回話さないこと ⻑期的に使うことのメリデメ 細かい圏論的な話 僕の経験はry-ittoとハッカソンの時に使ったことがあるぐらいです CyberAgent21卒内定者iOS輪読会-iOSアプリ設計パターン⼊⾨ by@ostk0069 6
7.
理解する上で必要な知識 CyberAgent21卒内定者iOS輪読会-iOSアプリ設計パターン⼊⾨ by@ostk0069 7
8.
必要な知識 Combine(UIKit+RxSwiftもある⼀応ある) DI iOSで⽤いる設計ほぼ全て 特にReduxやFlux CyberAgent21卒内定者iOS輪読会-iOSアプリ設計パターン⼊⾨ by@ostk0069 8
9.
あると理解がはやいもの ElmArchitecture Vuex ⽐較的考えが似ている、または開発者がそれにinspireされて作ってる CyberAgent21卒内定者iOS輪読会-iOSアプリ設計パターン⼊⾨ by@ostk0069 9
10.
主な概要 CyberAgent21卒内定者iOS輪読会-iOSアプリ設計パターン⼊⾨ by@ostk0069 10
11.
⼆⼈の有名な開発者によって作られた BrandonWilliams StephenCelis どちらもKickStarterのmaincontributerとして有名。snapshottestingとかも作ってる。 CyberAgent21卒内定者iOS輪読会-iOSアプリ設計パターン⼊⾨ by@ostk0069 11
12.
動画が多数存在するのでとりあえず⾒てない⼈は⾒た⽅がいいかも https://www.pointfree.co/collections/composable-architecture/a-tour-of-the- composable-architecture/ep100-a-tour-of-the-composable-architecture-part-1 TCAの理解以外にも⾊々考え⽅を学べそうなコンテンツ(英語レベル⾼め) CyberAgent21卒内定者iOS輪読会-iOSアプリ設計パターン⼊⾨ by@ostk0069 12
13.
5つの特徴 CyberAgent21卒内定者iOS輪読会-iOSアプリ設計パターン⼊⾨ by@ostk0069 13
14.
StateManagement Composition SideEffect Testable Ergonomics CyberAgent21卒内定者iOS輪読会-iOSアプリ設計パターン⼊⾨ by@ostk0069 14
15.
StateManagement 状態管理をReduxやFluxのように⾏う CyberAgent21卒内定者iOS輪読会-iOSアプリ設計パターン⼊⾨ by@ostk0069 15
16.
Composition コンポーネント思考 FatなReducerが作成されない(Reducerの分割) CyberAgent21卒内定者iOS輪読会-iOSアプリ設計パターン⼊⾨ by@ostk0069 16
17.
SideEffect サービスにおける副作⽤に耐えうる設計になってる 副作⽤(apiのfetch,遅延処理とか) (PublisheのPublisherが内部で作成されてる) CombineのPublisherに準拠してるため実現できてる CyberAgent21卒内定者iOS輪読会-iOSアプリ設計パターン⼊⾨ by@ostk0069 17
18.
Testable 書くべきテストコードの明確化 Action->Reducerをテストすることがメインになる サンプルコードも豊富 CyberAgent21卒内定者iOS輪読会-iOSアプリ設計パターン⼊⾨ by@ostk0069 18
19.
Ergonomics 簡略化(?) 僕はまだこれを実感できてない CyberAgent21卒内定者iOS輪読会-iOSアプリ設計パターン⼊⾨ by@ostk0069 19
20.
登場するClassの役割 CyberAgent21卒内定者iOS輪読会-iOSアプリ設計パターン⼊⾨ by@ostk0069 20
21.
Action enumで定義されたユーザーのアクション Reducer Actionを受け取りEffectを呼び出すorStateに流す役割 Effect CombineのPublisher Actionへ接続する State 受け取った値をViewに反映させる Store Action,Reducer,Effect,Stateの集合体 Environment Dependencyを保持する CyberAgent21卒内定者iOS輪読会-iOSアプリ設計パターン⼊⾨ by@ostk0069 21
22.
CyberAgent21卒内定者iOS輪読会-iOSアプリ設計パターン⼊⾨ by@ostk0069 22
23.
導⼊することのメリット・デメリット CyberAgent21卒内定者iOS輪読会-iOSアプリ設計パターン⼊⾨ by@ostk0069 23
24.
メリット 状態管理の明確な責務の切り分け 設計に関する議論がチームで⾏いやすくなる modulararchitectureの適⽤のしやすさ 採⽤につながる Combine理解してなくてもなんとなくで書き始められる テストを書くことの難易度が下がる CyberAgent21卒内定者iOS輪読会-iOSアプリ設計パターン⼊⾨ by@ostk0069 24
25.
デメリット 設計として制約が多い ライブラリとしての依存をしないといけない(⾃作でも問題ない) CombineをラップしてるのでCombineへの理解とiOS13以上ではないと使えない UIKitのサンプルも存在する 実務でやるのであればCombineの理解(ソースコードの理解)は必須 別の設計への乗り換えはそこそこしんどそう ⻑期プロジェクトになることが決まってないサービス チームのレベル感次第では崩壊する 特性を理解せずに導⼊するにはむしろマイナスが発⽣する可能性も CyberAgent21卒内定者iOS輪読会-iOSアプリ設計パターン⼊⾨ by@ostk0069 25
26.
サンプルコードを⾒る CyberAgent21卒内定者iOS輪読会-iOSアプリ設計パターン⼊⾨ by@ostk0069 26
27.
BasicUsage https://github.com/pointfreeco/swift-composable-architecture#basic-usage Effectがどんな感じか理解しやすい TestStoreも⾒てみると良さそう Todos https://github.com/pointfreeco/swift-composable- architecture/tree/main/Examples/Todos 親コンポーネントと⼦コンポーネントの関係性が⾒れるので良さそう CyberAgent21卒内定者iOS輪読会-iOSアプリ設計パターン⼊⾨ by@ostk0069 27
28.
WithViewStore SwiftUIのView storeを初期値に持ち、viewStoreに変換する ViewStore ObservedObject ViewStoreを購読してViewを変更できる CyberAgent21卒内定者iOS輪読会-iOSアプリ設計パターン⼊⾨ by@ostk0069 28
29.
その他 CyberAgent21卒内定者iOS輪読会-iOSアプリ設計パターン⼊⾨ by@ostk0069 29
30.
結構他にも似たような設計を提唱しているものはある Harvest bow-arch VueFlux CyberAgent21卒内定者iOS輪読会-iOSアプリ設計パターン⼊⾨ by@ostk0069 30
31.
質問&議論 CyberAgent21卒内定者iOS輪読会-iOSアプリ設計パターン⼊⾨ by@ostk0069 31
32.
次回は第13章&CAの設計です! CyberAgent21卒内定者iOS輪読会-iOSアプリ設計パターン⼊⾨ by@ostk0069 32
Download now