1
/
5

【TECH BLOG】ZOZOFIT iOSアプリ開発の全貌

はじめに

こんにちは、計測プラットフォーム開発本部アプリ部の中岡、永井、東原です。私たちのチームではZOZOMAT、ZOZOGLASSといった既存の計測機能の改善と、新規計測アプリの研究開発を担当しています。

その新規計測アプリとして、ZOZOFITというボディーマネジメントサービスを2022年の夏に米国でローンチしました。この記事では、ZOZOFITのiOSアプリを新規開発するにあたって、どのような技術要素を取り入れたかについてご紹介します。

目次

  • はじめに
  • 目次
  • ZOZOFITとは
  • 計測機能とその実装・統合
    • 計測機能について
    • 計測機能の実装・統合について
  • iOSアプリの技術要素
    • 使用技術
    • 対応OS
    • UIフレームワーク
    • CI/CD
    • パッケージ管理
    • その他ツール
    • アーキテクチャ
    • プロジェクト構成
  • 今後の課題
  • おわりに

ZOZOFITとは

ZOZOFITは、ZOZOグループのZOZO Apparel USA, Inc.が提供するボディーマネジメントサービスであり米国でサービス提供をしています。

初代ZOZOSUITよりも大幅に計測精度を向上させたZOZOSUITを着用し、専用のスマートフォンアプリを利用することで手軽に3Dボディースキャンを行い、計測データをトラッキングできます。

計測可能な箇所は、肩幅、胸囲、腕周囲、ウエスト周囲、ヒップ周囲、太もも周囲、ふくらはぎ周囲の7箇所であり、体脂肪率も測定されます。計測データは下の画像のようにアプリ上で確認でき、過去のデータとの比較やグラフ表示が可能です。また、目標の管理機能によりそれぞれの計測部位について目標を設定でき、達成状況を確認できます。


図1:ZOZOFIT iOSアプリ


開発についてはグループ会社であるZOZO New Zealandと協業して進めています。プロジェクト全体の話は下記の記事がありますので、ぜひご覧ください。


ZOZOFITプロジェクトから学んだ!海外×新規事業の進め方|ZOZO DEVELOPERS BLOG
はじめまして。計測プラットフォーム開発本部計測プロデュース部の谷川です。 ...
https://technote.zozo.com/n/n46f7acdd866d/


計測機能とその実装・統合

計測プラットフォーム開発本部アプリ部の永井です。ここでは、ZOZOFITの主要機能である計測機能の詳細と、その計測機能がiOSアプリへどのように実装・統合されているかについて説明します。


計測機能について

まずは、計測機能がどのようなものかをユーザー視点で説明していきます。

計測は、スーツを着用したユーザーの全身をスマートフォンの背面カメラで360度撮影することによって行われます。以下の図は、アプリ内のチュートリアルで使われているものです。


図2:計測方法


このように計測時、ユーザーはスマートフォンをスタンドに立てかけ、そこから2mほど離れた場所に立つ必要があります。そして、その場で体を0時から12時まで回転させながら、合計12枚の写真を撮影します。

計測の最中、ユーザーには背面カメラが向けられていて画面を見ることができないため、計測を進めるための案内はすべて音声により行われます。

そうして案内に沿って計測を完了させると、アプリ上で全身の3Dモデルと計測データを見ることできます。以下の図は実際のアプリ画面です。


図3:計測結果


このように自身の身体の気になる部位について、いろいろな角度から3Dモデルを見たり、計測データの変化をグラフで追ったりできます。


計測機能の実装・統合について

計測機能の実装・統合の説明にあたって、先に計測機能のアルゴリズムを紹介します。詳細は伏せますが、簡略化すると以下のようになります。



このアルゴリズムはZOZO New Zealandが開発したC++ライブラリによって提供されており、その中で、OpenCVやMediaPipeのような画像処理・機械学習のライブラリが使われています。MediaPipeはソースコードが公開されており、利用したい機能をZOZOFIT向けにカスタマイズできることから採用に至りました。

また、計測結果の3Dモデル描画は、WebGL(Three.js)で実装されたものをWeb Viewで表示する仕組みとなっており、iOSアプリではWKWebViewが使われています。

計測機能がこのような実装となっている大きな理由は、クロスプラットフォームのためです。ZOZOFITはAndroid・iOSの2つのプラットフォームでアプリを展開しており、主要機能である計測機能については両プラットフォームで共通のものを提供することが重要でした。そのためネイティブとは切り離された、両プラットフォームに対応する技術を用いて実装されています。

ZOZOFITに限らず、これまでのZOZOMATやZOZOGLASSといった計測プロダクトでもクロスプラットフォームは大きな関心事でした。これまでの計測プロダクトについては下記の記事がありますので、興味があればぜひご覧ください。


ZOZOMATのクロスプラットフォーム3D - ZOZO TECH BLOG
ZOZOMAT とは何でしょうか?オンラインで靴を購入する際に、サイズが合わないという問題を解決する仕組みです。1台のスマートフォンと紙製のZOZOMATだけで、正確に足のサイズを測れます。足をスキャンすると、高精度の3Dモデルが生成されます。最適なサイズの靴も表示されるので、すぐに靴を購入できます。 こんにちは!ZOZOテクノロジーズの@kapsy1312 ...
https://techblog.zozo.com/entry/zozomat-cross-platform-3d/


ZOZOGLASSのクロスプラットフォーム設計 - ZOZO TECH BLOG
こんにちは、AndroidエンジニアのAndyです。これまでにZOZOSUIT、ZOZOMAT、ZOZOGLASSのアプリ機能開発に取り組んできました。 ZOZOGLASS は肌の色を計測するデバイスで、オンラインでファンデーションを購入する際の手助けをします。ZOZOGLASSのユーザーは下図のような専用の眼鏡をかけ、アプリを使用して顔の肌の色を計測します。 ...
https://techblog.zozo.com/entry/zozoglass-cross-platform/


さて、以下の図は、計測機能がどのように統合されているかを示したものです。

続きはこちら

株式会社ZOZOからお誘い
この話題に共感したら、メンバーと話してみませんか?
株式会社ZOZOでは一緒に働く仲間を募集しています
3 いいね!
3 いいね!

同じタグの記事

今週のランキング

株式会社 ZOZOさんにいいねを伝えよう
株式会社 ZOZOさんや会社があなたに興味を持つかも