申し込みアプリにおけるSwiftUI化についての話

274 Views

November 15, 24

スライド概要

profile-image

よろしくお願いします

シェア

またはPlayer版

埋め込む »CMSなどでJSが使えない場合

ダウンロード

関連スライド

各ページのテキスト
1.

KINTOかんたん申し込みアプリにおける SwiftUI化についての話 KINTOテクノロジーズ iOSチーム 中口翔太 2024/11/15

2.

自己紹介 Name 中口翔太 Career 5年営業→5年エンジニア KINTOテクノロジーズは21年12月より Now チームリーダ業を勉強中 ©KINTO Corporati on. All rights reserved. 2

3.

注意 細かい技術の話はあまり出てきません ©KINTO Corporati on. All rights reserved. 3

4.

KINTOテクノロジーズのiOSアプリに関するご紹介 TOYOTA公式ナビで乗り 換え案内とおでかけ情報 を完全ガイド • UIKit(+SwiftUI) • MVVM • Combine • Bitrise (+GitHub Actions) ©KINTO Corporati on. All rights reserved. 気分に合う写真やタグか ら観光スポットをおすす めするAIアプリ • SwiftUI • TCA • Xcode Cloud (+GitHub Actions) 契約内容の確認、ドライ ブサポートやクルマの アップグレードまで 気になるクルマをサクサ ク検討&申し込み • UIKit • SwiftUI(+UIKit) • VIPER • Redux(独自開発) • Combine • Xcode Cloud • Xcode Cloud (+GitHub Actions) (+GitHub Actions) 4

5.

KINTO ONE とは https://kinto-jp.com/kinto_one/ ©KINTO Corporati on. All rights reserved. 5

6.

KINTOかんたん申し込みアプリとは Webにあったサービスを モバイルアプリならではの UI/UXを活かして 作られたアプリになります https://kinto-jp.com/entry_app/ ©KINTO Corporati on. All rights reserved. 6

7.

KINTOかんたん申し込みアプリを作るきっかけ とある2023年のお話 こんなプロトタイプ作ってみました いいね、どれくらいで作ったの? 2週間くらいです 製品版はどれくらいでできるの 2-3ヶ月くらいです じゃあやろう ©KINTO Corporati on. All rights reserved. 7

8.

当時のアーキテクチャ選定 UIKit 2023年に新規でiOSアプリを作るなら?? SwiftUI ©KINTO Corporati on. All rights reserved. 8

9.

当時のアーキテクチャ選定 UIKit 2023年に新規でiOSアプリを作るなら?? • 短納期 • SwiftUIに明るいメンバー不在 SwiftUI ©KINTO Corporati on. All rights reserved. 9

10.

SwiftUIへの移行:第1波 ファーストリリース 2023年9月 ©KINTO Corporati on. All rights reserved. SwiftUI化移行したい 2024年3月 10

11.

SwiftUIへの移行:第1波 やる やらない リーダーとして 自信無し、、 新メンバー多い・ リソース不足 興味 SwiftUIへの明確な 必要性なし SwiftUIに精通した メンバー不在 ©KINTO Corporati on. All rights reserved. 11

12.

SwiftUIへの移行:第1波 SwiftUI化はまだ先と判断 ©KINTO Corporati on. All rights reserved. 12

13.

SwiftUIへの移行:第2波 ファーストリリース 2023年9月 ©KINTO Corporati on. All rights reserved. SwiftUI化移行したい 2024年3月 再SwiftUI化移行したい 2024年8月 13

14.

SwiftUIへの移行:第2波 やる やらない チーム状況 有識者の加入 不安 情熱 興味 ©KINTO Corporati on. All rights reserved. 14

15.

SwiftUIへの移行:第2波 SwiftUI化をすると決断 ©KINTO Corporation. All rights reserved. 15

16.

SwiftUI化 けど目的を間違えてはいけない 技術的好奇心でSwiftUI化したい、が目的となってしまってはダメ 将来のメンテナンス性をあげたい • デファクトスタンダードに追随する • Combineが複雑 ©KINTO Corporati on. All rights reserved. 16

17.

SwiftUI化 けど目的を間違えてはいけない アプリの質が落ちてしまう 作業の優先順位を間違える これまでと同水準以上の質を担保する 追加機能はこれまでと同じペースで ©KINTO Corporation. All rights reserved. 17

18.

SwiftUI化への道:アーキテクチャ ライブラリは使いたくない ViewModelは使いたくない • ライブラリのアップデートを気にしなくて • SwiftUIはすでにbinding機能を有している はいけない • サポートが終了したら。。。。 • SwiftUIの良さが活かしきれない • SwiftUIの良さは最大限活かしたい • TCAは、それはそれで課題あり ©KINTO Corporati on. All rights reserved. 18

19.

SwiftUI化への道:アーキテクチャ ViewModelは使いたくない MVアーキテクチャを採用 ライブラリは使いたくない • ライブラリのアップデートを気にしなくて はいけない • サポートが終了したら。。。。 • SwiftUIはすでにbinding機能を有している • SwiftUIの良さが活かしきれない • SwiftUIの良さは最大限活かしたい • TCAは、それはそれで課題あり ©KINTO Corporation. All rights reserved. 19

20.

SwiftUI化への道:MVアーキテクチャ View Model APIなど \すごくシンプル/ ©KINTO Corporati on. All rights reserved. 20

21.

SwiftUI化への道:MVアーキテクチャ • シンプルになり、将来的なメンテナンス性の向上につながる(Combine脱却) • ライブラリに依存しない • SwiftUIの機能を最大限に発揮できる ©KINTO Corporation. All rights reserved. 21

22.

SwiftUI化への道:進め方 まず個別のViewをSwiftUI化する or まず画面遷移に関する部分をSwiftUI化する ©KINTO Corporati on. All rights reserved. 22

23.

SwiftUI化への道:進め方 まず個別のViewをSwiftUI化する or まず画面遷移に関する部分をSwiftUI化する • 経験上、画面遷移にまつわる部分が後々に躓くことが多かった • 遷移を管理するViewが UIKitのままだと、個別の Viewを SwiftUI化したのに それを(臨時的に) UIKitにwrapするケースが多く発生する ©KINTO Corporation. All rights reserved. 23

24.

SwiftUI化への道:これから • iOS15を切っていきたい →SwiftUIはiOSのVerが上がるたびにどんどん使いやすくなる • チーム全体としてSwiftUIのレベルを上げていきたい →チームでモブプロ、ペアプロ、などを取り入れて底上げをしていきたい →チーム内でのSwiftUIコーディング規約などを整備したり、ナレッジ共有を行っていきたい ©KINTO Corporati on. All rights reserved. 24

25.

SwiftUI化への道:これから • iOS15を切っていきたい →SwiftUIはiOSのVerが上がるたびにどんどん使いやすくなる まだまだ歩き始めたばかり • チーム全体としてSwiftUIのレベルを上げていきたい →チームでモブプロ、ペアプロ、などを取り入れて底上げをしていきたい →チーム内でのSwiftUIコーディング規約などを整備したり、ナレッジ共有を行っていきたい ©KINTO Corporation. All rights reserved. 25

26.

Thank you!