Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
SwiftUI×TCAリアーキからみえた コーディング視点の開発者体験
Search
asa
November 10, 2022
Technology
390
0
Share
SwiftUI×TCAリアーキからみえた コーディング視点の開発者体験
2022.11.10 UB Tech vol.4
https://uzabase-tech.connpass.com/event/263883/
asa
November 10, 2022
More Decks by asa
See All by asa
iOSDC2021_LiveStreaming
asa08
1
520
Other Decks in Technology
See All in Technology
CyberAgent YJC Connect
shimaf4979
1
170
AIが盛んな時代に 技術記事を書き始めて起きた私の中での小さな変化
peintangos
0
360
需要創出(Chatwork)×供給(BPaaS) フライホイールとMoat 実行能力の最適配置とAI戦略
kubell_hr
0
2.1k
ハーネスエンジニアリング入門
knishioka
0
130
データモデリング通り #5オンライン勉強会: AIに『ビジネスの文脈』を教え込むデータモデリング
datayokocho
0
190
要件定義の精度を高めるための型と生成AIの活用 / Using Types and Generative AI to Improve the Accuracy of Requirements Definition
haru860
0
310
拝啓、あの夏の僕へ〜あなたも知っているApp Runnerの世界〜
news_it_enj
0
220
生成AI時代に信頼性をどう保ち続けるか - Policy as Code の実践
akitok_
0
120
世界の中心でApp Runnerを叫ぶ FINAL
tsukuboshi
0
250
EMから幅を広げるために最近挑戦していること / Recent challenges I'm undertaking to expand my horizons beyond EM
hiro_torii
1
180
Google Cloud Next '26 の裏でこっそりリリースされたCloud Number Registry & Cloud Hub コスト分析 を試してみた
hikaru1001
0
170
Agent の「自由」と「安全」〜未来に向けて今できること〜
katayan
0
340
Featured
See All Featured
Effective software design: The role of men in debugging patriarchy in IT @ Voxxed Days AMS
baasie
0
340
Fashionably flexible responsive web design (full day workshop)
malarkey
408
66k
Prompt Engineering for Job Search
mfonobong
0
290
The browser strikes back
jonoalderson
0
1k
SEO for Brand Visibility & Recognition
aleyda
0
4.5k
How to make the Groovebox
asonas
2
2.2k
Claude Code のすすめ
schroneko
67
220k
The Impact of AI in SEO - AI Overviews June 2024 Edition
aleyda
5
1.1k
Introduction to Domain-Driven Design and Collaborative software design
baasie
1
770
Avoiding the “Bad Training, Faster” Trap in the Age of AI
tmiket
0
140
No one is an island. Learnings from fostering a developers community.
thoeni
21
3.7k
From π to Pie charts
rasagy
0
180
Transcript
SwiftUI×TCAリアーキからみえた コーディング視点の開発者体験 2022.11.10 Maiko Morisaki
00 自己紹介 ©NewsPicks Inc. All Rights Reserved. Maiko Morisaki
iOS Engineer たまに Flutterを書く _asa08_ _asa08_ iOSDC 2019スタッフ 2020登壇(40分でわかるライブ配信)
前話し 目次 01 02 03 04 今は昔… リアーキで 受けた恩恵 心もコードも
健全に
©NewsPicks Inc. All Rights Reserved. 01 前話し
01 前話し コーディング体験ベースの話がしたい 以前はどのような状況だったか リアーキテクチャでのコーディングの体験はどうか SwiftUI
宣言的UIフレームワーク The Composable Architecture(TCA) Redux Likeなシステムアーキテクチャを提供するフレームワーク
©NewsPicks Inc. All Rights Reserved. 02 今は昔… ‐ UI
01 今は昔 ‐ UI コードベース GUI(Xib)ベース
01 今は昔 ‐ UI コードベース GUI(Xib)ベース 赤:Viewの階層構造 黄:レイアウトの設定
青:コンポーネント一覧
01 今は昔 ‐ UI コードベース GUI(Xib)ベース コードをみるとhtmlのような感じになっている 同時に同じxibをいじると勿論競合が発生するが、これを手で直さなけ ればいけない
01 今は昔 ‐ UI コードベース GUI(Xib)ベース コードをみるとhtmlのような感じになっている 同時に同じxibをいじると勿論競合が発生するが、これを手で直さなけ ればいけない
GitHub上でのコードレビューが難しい 同じ画面の同時編集ができない
01 今は昔 ‐ UI コードベース GUI(Xib)ベース コードをみるとhtmlのような感じになっている 同時に同じxibをいじると勿論競合が発生するが、これを手で直さなけ ればいけない
GitHub上でのコードレビューが難しい 同じ画面の同時編集ができない
01 今は昔 ‐ UI コードベース GUI(Xib)ベース コードをみるとhtmlのような感じになっている 同時に同じxibをいじると勿論競合が発生するが、これを手で直さなけ ればいけない
GitHub上でのコードレビューが難しい 同じ画面の同時編集ができない View階層やレイアウト設定の確認が大変
01 今は昔 ‐ UI デザインの印象以上に大変 チーム開発でボトルネックになることがある
01 今は昔 ‐ UI SwiftUI!
©NewsPicks Inc. All Rights Reserved. 02 今は昔… ‐ UnitTest
01 今は昔 ‐ UnitTest UnitTestがあると 既存の複雑なロジックの修正もある程度 の安心がある 何のテストを書くか 意味のあるテストを書くために何をテスト するか明確になっているといい
テストを書くには テストが書ける設計になっている必要が ある
01 今は昔 ‐ UnitTest UnitTestがあると 既存の複雑なロジックの修正もある程度 の安心がある 何のテストを書くか 意味のあるテストを書くために何をテスト するか明確になっているといい
テストを書くには テストが書ける設計になっている必要が ある
01 今は昔 ‐ UnitTest The Composable Architecture!
©NewsPicks Inc. All Rights Reserved. 03 リアーキで受けた恩恵
03 UI 03 リアーキで受けた恩恵 SwiftUI GtiHub上でのレビューが難しい Viewの階層やレイアウトの確認が大変
同じ画面の同時編集ができない 体験向上 体験向上 体験向上
03 UnitTest 03 リアーキで受けた恩恵 The Composable Architecture View
State Action Reducer Environment
03 UnitTest 03 リアーキで受けた恩恵 The Composable Architecture テストが書ける設計になっている
何のテストを書くか明確 体験向上 体験向上 View State Action Environment Reducer
©NewsPicks Inc. All Rights Reserved. 04 心もコードも健全に
04 心もコードも健全に 健全なコードはエンジニアの心を明るくす パフォーマンスがあがり施策も高速でまわせる 会社もチームも個人も幸せに
ありがとうございました。