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
0
330
SwiftUI×TCAリアーキからみえた コーディング視点の開発者体験
2022.11.10 UB Tech vol.4
https://uzabase-tech.connpass.com/event/263883/
asa
November 10, 2022
Tweet
Share
More Decks by asa
See All by asa
iOSDC2021_LiveStreaming
asa08
1
450
Other Decks in Technology
See All in Technology
君も受託系GISエンジニアにならないか
sudataka
1
370
FastConnect の冗長性
ocise
1
9.6k
ビジネスと現場活動をつなぐソフトウェアエンジニアリング~とあるスタートアッププロダクトの成長記録より~
mizunori
0
210
SA Night #2 FinatextのSA思想/SA Night #2 Finatext session
satoshiimai
1
100
第13回 Data-Centric AI勉強会, 画像認識におけるData-centric AI
ksaito_osx
0
360
まだ間に合う! エンジニアのための生成AIアプリ開発入門 on AWS
minorun365
PRO
4
580
AWSでRAGを実現する上で感じた3つの大事なこと
ymae
3
1k
『AWS Distinguished Engineerに学ぶ リトライの技術』 #ARC403/Marc Brooker on Try again: The tools and techniques behind resilient systems
quiver
0
130
リーダブルテストコード 〜メンテナンスしやすい テストコードを作成する方法を考える〜 #DevSumi #DevSumiB / Readable test code
nihonbuson
11
5.8k
アジャイル開発とスクラム
araihara
0
160
Datadogとともにオブザーバビリティを布教しよう
mego2221
0
130
テストアーキテクチャ設計で実現する高品質で高スピードな開発の実践 / Test Architecture Design in Practice
ropqa
3
710
Featured
See All Featured
Visualizing Your Data: Incorporating Mongo into Loggly Infrastructure
mongodb
44
9.4k
Automating Front-end Workflow
addyosmani
1367
200k
What's in a price? How to price your products and services
michaelherold
244
12k
GraphQLの誤解/rethinking-graphql
sonatard
68
10k
Building Flexible Design Systems
yeseniaperezcruz
328
38k
How To Stay Up To Date on Web Technology
chriscoyier
790
250k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
120k
The Psychology of Web Performance [Beyond Tellerrand 2023]
tammyeverts
45
2.3k
Code Reviewing Like a Champion
maltzj
521
39k
Scaling GitHub
holman
459
140k
Optimizing for Happiness
mojombo
376
70k
The Success of Rails: Ensuring Growth for the Next 100 Years
eileencodes
44
7k
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 心もコードも健全に 健全なコードはエンジニアの心を明るくす パフォーマンスがあがり施策も高速でまわせる 会社もチームも個人も幸せに
ありがとうございました。