【 iOS祭り 】ヒットプロダクトを開発!iOSエンジニアが語る自社プロダクト開発の難しさ
© KAUCHE, Inc.複業メンバーと共に創るカウシェKatsuya Kato
View Slide
© KAUCHE, Inc. 2目次● 自己紹介● カウシェのサービス、組織の特徴● 複業メンバーと共に創るときの課題● 対策● まとめ
© KAUCHE, Inc.自己紹介● モバイルアプリエンジニア○ iOS/Androidともに黎明期からアプリ開発を行う○ 前職ではUnityでの開発も行う○ Flutterも少々● 2022年9月に一人目の正社員iOSエンジニアとして入社○ 入社エントリ○ 実装はもちろんのこと今まで他のメンバーに助けてもらっていたところを徐々に整えていっている3
© KAUCHE, Inc.カウシェの紹介4
© KAUCHE, Inc. 5カウシェの紹介
© KAUCHE, Inc.カウシェの組織の特徴● 複業メンバーが多い○ 自ら働く環境を楽しみ、熱量を最大化する「自律・自燃型組織」を目指し、様々な雇用形態のメンバーが活躍● 創業当初からスピードを出すために複業メンバーに助けてもらっている● 複業から正社員になるメンバーもいる● 先月(2022年8月)まで正社員iOSエンジニアが一人もいなかった※複業にはフリーランスも含む6※2022年8月時点
© KAUCHE, Inc. 7複業メンバーと共に創るときの課題
© KAUCHE, Inc. 8複業メンバーと共に創るときの課題● 複業メンバーの稼働時間が限られている● 非同期コミュニケーションが主体になってしまう
© KAUCHE, Inc. 9対策● 複業メンバーのアウトプットを最大化できるよう環境を整える● 開発の助けになるドキュメントを用意する● 開発効率を上げるDesignKit、MockKitを準備する
© KAUCHE, Inc. 10複業メンバーのアウトプットを最大化できるよう環境を整える
© KAUCHE, Inc. 11複業メンバーのアウトプットを最大化できるよう環境を整える● M1 MaxなMacを貸与○ ただしフルタイムに近い稼働に限る○ ビルド時間、Xcodeのプレビュー表示などを少しでも速く、軽く● 複業でも自分事にしてもらえるよう会社の情報をオープンにする○ 自律・自燃を目指している○ 会社に関する情報は全て Notion上で公開されており複業メンバーも閲覧可能
© KAUCHE, Inc. 12開発の助けになるドキュメントを用意する
© KAUCHE, Inc. 13開発の助けになるドキュメントを用意する● 些細なことでもNotionに記載する○ iOSチームとしての方針を周知する○ PRで書いたTipsも他の人が気が付かないと勿体ない○ Slackでの議論で終わると流れてそのタイミングで居なかった人が見逃してしまう○ 新規メンバーのオンボーディングにも役立つ
© KAUCHE, Inc. 14DesignKit / MockKit
© KAUCHE, Inc. 15カウシェのモジュール構成※一部UIKitもあるが大半がSwiftUIで作られている
© KAUCHE, Inc. 16カウシェのモジュール構成※一部UIKitもあるが大半がSwiftUIで作られている
© KAUCHE, Inc. 17DesignKit
© KAUCHE, Inc. 18DesignKit● DesignKitとは○ カウシェのデザインコンポーネントを保持○ Colors、Styles、UI Componentsを有する● 目的○ 開発の効率化○ プレビューでどのようなコンポーネントかすぐに分かる■ 何がすでにあるかというコミュニケーションが省ける■ DesignKitのコンポーネントの一覧を Notionなどに作成することや、UIを確認するアプリを作ることも検討したが費用対効果を考えてプレビューだけにした
© KAUCHE, Inc. 19DesignKit
© KAUCHE, Inc. 20MockKit
© KAUCHE, Inc. 21MockKit● MockKitとは○ カウシェのモックデータを定義する○ APIのレスポンス等をモックする● 目的○ モックデータをプレビュー、 UnitTestで共用して効率化○ それぞれで用意すると似たようなデータが重複し、開発効率も悪くなる○ プロダクションコードから切り離す● 色んなパターンのモックデータを用意することでプレビューで複数パターンの表示を確認できる○ UI仕様の把握をXcode上でプレビューで確認できる
© KAUCHE, Inc. 22MockKit
© KAUCHE, Inc. 23まとめ● 課題○ 複業メンバーの稼働時間が限られている○ 非同期コミュニケーションが主体になってしまう● 対策○ ドキュメントやXcodeのプレビューなどの仕組みを使って仕様把握やコミュニケーションの効率化を図った
© KAUCHE, Inc. 24https://enjoy-working.kauche.com/product