Slide 1

Slide 1 text

スライドトップと
 してご利用ください
 マネーフォワード事業本部 
 山田 太郎
 © Money Forward, Inc. React18と2つのUX
 個人事業主本部 プロダクト開発部 
 石山 怜生
 © Money Forward, Inc.

Slide 2

Slide 2 text

クラウド確定申告
 ReactとRailsを使って開発 
 野球熱上昇中
 石山 怜生
 個人事業主本部 プロダクト開発部 
 © Money Forward, Inc.

Slide 3

Slide 3 text

© Money Forward, Inc. お話しすること
 ・React18の(個人的)目玉機能とその周辺知識 
 ・ReactとUX


Slide 4

Slide 4 text

© Money Forward, Inc. お話しすること
 ・React18の(個人的)目玉機能とその周辺知識 
 ・ReactとUX


Slide 5

Slide 5 text

© Money Forward, Inc. React18と周辺知識
 ・Suspense
 ・Streaming Server Rendering 
 ・Selective Hydration
 ・Streaming HTML
 ・Automatic batching
 ・Transition


Slide 6

Slide 6 text

© Money Forward, Inc. React18と周辺知識
 ・Suspense
 ・Streaming Server Rendering 
 ・Selective Hydration
 ・Streaming HTML
 ・Automatic batching
 ・Transition


Slide 7

Slide 7 text

© Money Forward, Inc. Suspenseとは
 ● Concurrent Renderingを有効にするReactが提供する機能・コンポーネント
 ○ コンポーネントが準備を行っている間、表示する別のコンポーネントを指定で きる


Slide 8

Slide 8 text

© Money Forward, Inc. Suspenseとは


Slide 9

Slide 9 text

© Money Forward, Inc. Suspenseが変えたこと
 ● JSXの記述を「Viewに関するものだけ」にすることがもっと容易になる
 ● ユーザーに対して少しでも早く「表示できるところから」表示させる
 


Slide 10

Slide 10 text

© Money Forward, Inc. CSR・SSR
 Client Side Rendering
 ● クライアントで画面の描画・更新を行うためサクサク
 ● インターネット環境が悪かったり、バンドルサイズが大きくなると表示に時間がかかる
 Server Side Rendering *
 ● JSの読み込みをしている間に、クライアントにページを先に返す
 ● JSが読み込まれるまでに表示されるHTMLは触っても何も変化が起きない
 * SPAやReact界隈で言うところのSSR

Slide 11

Slide 11 text

© Money Forward, Inc. Hydration
 ● SSRによって描画しているHTMLにイベントのアタッチを行う
 ● これにより、アプリケーションがインタラクティブになる


Slide 12

Slide 12 text

© Money Forward, Inc.

Slide 13

Slide 13 text

© Money Forward, Inc.

Slide 14

Slide 14 text

© Money Forward, Inc.

Slide 15

Slide 15 text

© Money Forward, Inc. 1箇所読み込みが遅いと全体に影響が出る


Slide 16

Slide 16 text

© Money Forward, Inc. Streaming HTML
 ● ユーザーに部分的に早くコンテンツを見せるようにする
 ○ Streaming SSRとも言われている 


Slide 17

Slide 17 text

● 読み込みが終わったところから部分的にハイドレートを行えるようになった
 ● 全体のハイドレートを待つ必要がなくなった
 ● ユーザーのアクションによってハイドレートの順序が変わる
 © Money Forward, Inc. Selective Hydration


Slide 18

Slide 18 text

© Money Forward, Inc. Selective Hydration


Slide 19

Slide 19 text

© Money Forward, Inc. Selective Hydration


Slide 20

Slide 20 text

© Money Forward, Inc. Selective Hydration
 


Slide 21

Slide 21 text

© Money Forward, Inc. Selective Hydration


Slide 22

Slide 22 text

© Money Forward, Inc. Selective Hydration


Slide 23

Slide 23 text

© Money Forward, Inc. React18と周辺知識
 ・Suspense
 ・Streaming Server Rendering 
 ・Selective Hydration
 ・Streaming HTML
 ・Automatic Batching
 ・Transition


Slide 24

Slide 24 text

© Money Forward, Inc. Batching
 ● Reactが複数の状態更新をまとめてくれる機能


Slide 25

Slide 25 text

© Money Forward, Inc. Automatic Batching
 ● 非同期処理・イベントハンドラーで状態を更新した時のレンダリングが1度だけにな る


Slide 26

Slide 26 text

© Money Forward, Inc. Automatic Batching


Slide 27

Slide 27 text

© Money Forward, Inc. Automatic Batching


Slide 28

Slide 28 text

© Money Forward, Inc. React18と周辺知識
 ・Suspense
 ・Streaming Server Rendering 
 ・Selective Hydration
 ・Streaming HTML
 ・Automatic Batching
 ・Transition


Slide 29

Slide 29 text

© Money Forward, Inc. ● 「すぐに反映しなくてもいい」と伝える手段
 Transition


Slide 30

Slide 30 text

© Money Forward, Inc. Transition


Slide 31

Slide 31 text

© Money Forward, Inc. Transition


Slide 32

Slide 32 text

© Money Forward, Inc. まとめ
 分割によってUXを改善


Slide 33

Slide 33 text

© Money Forward, Inc. お話しすること
 ・React18の(個人的)目玉機能とその周辺知識 
 ・ReactとUX


Slide 34

Slide 34 text

© Money Forward, Inc. Reactから見た「ユーザー」とは?


Slide 35

Slide 35 text

© Money Forward, Inc. ● アプリケーションを使う人
 ● 開発者


Slide 36

Slide 36 text

© Money Forward, Inc. 共通するものを提供している


Slide 37

Slide 37 text

© Money Forward, Inc. 直感的ユーザー体験


Slide 38

Slide 38 text

© Money Forward, Inc. 直感的ユーザー体験
 
 ● 開発者 → コードを読んだり書いたりする時に直感的に理解できる 
 ● ユーザー → 操作をする時、直感的に扱うことができる 
 


Slide 39

Slide 39 text

© Money Forward, Inc. 直感的ユーザー体験(ユーザー視点)
 これまで
 ● どこか1箇所で重い処理があると全体への反映に時間がかかっていた 
 React18
 ● ユーザーとアプリケーションの一体感が上がった 
 ○ データ取得開始からすぐにHTMLが表示される 
 ○ 重い処理を後回しにできる
 ○ 興味のあるところから操作できるようになる 


Slide 40

Slide 40 text

React18
 ● Suspenseにより不要になった
 © Money Forward, Inc. これまで
 ● ローディングやエラーによる条件分岐が必要だった 
 ユーザー体験の改善(開発者視点)


Slide 41

Slide 41 text

Functional Component&Hooks
 ・状態・ロジックとビューの分離
 © Money Forward, Inc. 過去から見るユーザー体験の改善(開発者視点)
 Class Component
 ・ライフサイクル、ロジック・状態とビューが共存しているため可読性が低い 


Slide 42

Slide 42 text

React Hook Form
 ・Hooksベースで開発されている
 ・無駄なレンダリングを抑制している 
 © Money Forward, Inc. ReduxForm
 ・Reduxでフォームの値を管理する 
 ・フォームの入力ごとにdispatchが走るので無駄が多い 
 過去から見るユーザー体験の改善(開発者視点)


Slide 43

Slide 43 text

© Money Forward, Inc. User Focus


Slide 44

Slide 44 text

© Money Forward, Inc.

Slide 45

Slide 45 text

© Money Forward, Inc.

Slide 46

Slide 46 text

No content

Slide 47

Slide 47 text

© Money Forward, Inc. ユーザーフォーカスして良いプロダクトを提供する
 メンバー募集中です!!!!


Slide 48

Slide 48 text

ありがとうございました