2023年7月、EtsyのApp Updatesチームは、UpdatesフィードをDealsに改編し、クーポンとセールのハブにすることを目指しました。このチームは、新しいタブをスクラッチから作成することを検討し、Swift UIやTuistのようなモダンな技術を使用することを想定していました。
野心と現実のバランスをとりつつ、チームはハイブリッドアプローチを採用し、Swift UIをモジュラーディベロップメントとプレビューアビリティのために使用し、既存のUIKitコードベースと統合してナビゲーションや他の機能を実現しました。
Swift UIのモジュラリティにより、ビューを再利用可能なコンポーネントに分割し、Tuistを使用した効率的なプレビューを可能にすることができました。
明確かつ効率的なAPIパースィングのために、Decodableモデルを実装し、ビューコンストラクションとオプショナルのハンドリングを簡素化しました。
複雑なビューのためのモックデータ作成を簡素化するために、プレビューenumを導入し、APIサポートが完了する前にモジュールを構築することができました。
しかし、既存のコードベースとのインターフェースは、特にナビゲーションやお気に入りのように、問題を生じました。
これに対処するために、チームは、ナビゲーションの責任をメインターゲットに返し、Swift UIのcallAsFunction()機能を維持するカスタム@Environment構造体、DealsActionを作成しました。
環境オブジェクトは、他の機能、例えばお気に入り、ショップのフォロー、パフォーマンスメトリクスのログにも使用されました。
このハイブリッドアプローチにより、チームはモダンな技術の利点を活用しながら、レガシーコードベースの制約を尊重し、サイバー・ウィークのデッドライン前に製品を成功裏にリリースすることができました。
etsy.com
How We Built The Deals Tab in Swift UI
Create attached notes ...
