こんにちは!!モバイルアプリケーション開発部の中山 龍(@ryu_develop)です!
今年の4月に入社した23新卒社員として、日々楽しくお仕事をさせていただいています
そして、平均年齢が高めのモバアプ部に、社内最年少の社員として新しい風を吹かせられるよう、日々活動しています🔥
そしてこの度、
🎉iOSDC Japan 2023で登壇をさせていただきました🎉
この記事では、iOSDCでChatworkのスポンサーセッションに登壇したことの報告や、登壇してみて感じたことなどを書いていきます。
目次
登壇
Chatwork株式会社はiOSDC Japan 2023のスポンサーをやっており、Day2にセッションを行いました。
登壇前の様子
↓ iOSDC Japan 2023のスポンサーをした話はこちら
Chatworkは iOSDC Japan 2023 のスポンサー&登壇をします! - Chatwork Creator's Note
Chatworkの発表は『SwiftUIに適した新アーキテクチャの導入に挑む』というタイトルで、Blanc(iOSプラットフォームチーム) 兼 モバイルアプリケーション開発部マネージャーの福井さんと、同じくBlanc(iOSプラットフォームチーム)に所属する僕が登壇しました。
福井さんがチームが取り組んできたことに対する内容、僕がSVVSアーキテクチャに関する内容をお話ししました。
以下、発表関連の資料です
プロポーザル
発表資料
発表内で登場するSVVSサンプルコード
内容を5枚のスライドでざっと紹介!
ChatworkのiOSアプリは2011年にリリースされ、12年間で様々な技術変更や新機能の追加を行ってきました。しかし、長期間の開発では技術的な負債が蓄積されます。
そこで昨年、新しいアーキテクチャを導入し、負債の解消に取り組むこととなりました。そして、負債を解消するために、図のような3つのワークを行うなかで、iOSメンバーや技術顧問のkoherさんと議論を重ね、Chatwork独自の新アーキテクチャ『SVVS』が生まれました。
『SVVS』はStore / View / ViewStateの頭文字を取ったものです。
それぞれ
- Store: 状態を管理
- View: 画面を表示
- ViewState: プレゼンテーションロジックを持つ
といった役割があります。
SwiftUI化に重要となるSingle Source of Truthを実現しており、またStoreの状態を起点としてリアクティブな作りとなっています。ユーザーアクションが起きてからViewが更新されるまで、一方通行なデータの流れを実現しています。
SVVSには『リアクティブ』『シンプル』『データフローにフォーカス』という3つの特徴があります。
- リアクティブ
- データの同期処理など本質ではないコードを減らすことで、バグを減らし、それぞれの責務も明確にする
- Storeを単一の情報源としてSingle Source of Turthを実現し、そのデータがリアクティブにViewまで同期されたSwiftUI向けの作り
- シンプル
- 複雑なものよりもバグに強く、変更もしやすい
- 習得コストが低く、PRも小さく作れるため、開発速度向上につながる
- データフローにフォーカス
- Single Source of Truthを実現し、データの不整合が発生するのを防止
- データの流れをを一方通行にし「コアな機能はサーバーとの通信」というChatworkアプリの特性と合うようにしている
内容をざっと紹介しましたが、詳しい部分が気になる方は登壇資料などをご覧ください
プロポーザル
発表資料
発表内で登場するSVVSサンプルコード
登壇してみて…
当日の発表は、オフライン参加の観客130人(福井さん調べ)、ライブ配信先でも多くの方が見てくださっていたようです。
このような多くの方の前で発表するのは初めてでしたが、発表後のAsk the speaker(発表終了後に登壇者と視聴者が会話をすることができる企画)に10人近くの方に来ていただいて質問をいただいたり、考えに共感していただいたり、交流したりすることができました。また、X(旧Twitter)でも多くの反応をいただき、自分の中でとても貴重な経験となりました🙌
来年も機会があればぜひ登壇したいなと思っています。来年こそはプロポーザルが採択されるようにがんばります…🔥
また、思いがけぬ交流が生まれるのもイベントに参加する良さだと感じました!
僕(@ryu_develop)はiOSDC以外にも、Chatwork主催のイベントや名古屋で開催されるイベントでLTをすることもあるので、もし見かけた際にはお気軽にお声がけください🙆♂️
10月に開催するイベントがこちら!
モバイルアプリ部を徹底解剖!DAU100万の『Chatwork』を支えるモバイルチームの現場とは? - connpass
Chatworkのモバイルアプリケーション開発部は一緒に働く仲間を募集しています!
25新卒
iOSエンジニア(中途)
Androidエンジニア(中途)