Discover companies you will love
株式会社any style / 業務委託(副業)
現在ライブ配信プラットフォームSHOWROOMおよびVTuber推し活アプリ「my dear.」の2社でiOSエンジニアをしております。 iOSの開発経験は3年ほどで、新規実装や外部SDKの組み込み、CI/CDツールの運用、その他保守業務と一連の開発業務を経験しており、本業のSHOWROOMアプリではリードエンジニアを任されております。
エンジニアとして、さまざまな業務経験を積み、価値あるエンジニアとして成長していきたいと思っています。
<会社概要> 会社名 :株式会社any style 事業内容:VTuber推し活アプリ「my dear.」の開発・運営 資本金 :非公開 売上高 :非公開 従業員数:20名
my-dear.アプリでは主要機能となる、VTuberとユーザのチャット画面をSwiftUI / MVVM化する実装を担当しました。 既存ではReduxベースのアーキテクチャをサポートするライブラリReSwiftとチャット画面の実装をサポートするUIKitベースのライブラリMessageKitを使用した実装になっていましたが、ReSwiftがマルチスレッドでの使用をサポートしていない点やMessageKitでの実装が煩雑化している点などがあり、リファクタリングに至りました。 チャット画面は無限スクロール(ページング)機能を保有していたため、SwiftUIでの実装はScrollView+LazyVStackを反転させ、スムーズなスクロールで追加読み込みが表示されるようにしました。 また、メッセージの種類が多く煩雑化しやすい仕様となっていたため、全てのメッセージを1つのenumにまとめて表示情報のModelを簡略化し、各々のメッセージをコンポーネント化することで実装の可読性向上と今後の改修効率向上に貢献しました。
VTuberから提供されるボイスコンテンツをアプリ内通貨で購入する機能の実装を担当しました。ボイスコンテンツ販売にあたり、ホーム画面やVTuberのプロフィール画面を全面的に改修する必要があり、既存ではUIKitにて実装されていた箇所を含め合計6画面ほどをSwiftUI + MVVMにて実装しました。 また、提供されるボイスコンテンツはQRコードから購入ページに遷移する機能を保有しており、QRコードの読み取り機能をAVCaptureSession+AVCaptureMetadataOutputにて実装しました。読み取り範囲が画面全体ではなく、画面内の枠線内のみに限定する必要があったため、AVCaptureMetadataOutput.rectOfInterestにて読み取り範囲を限定し、且つ、周囲の枠線をUIBezierPathにて実装しました。
VTuberとユーザが1対1で通話する、音声通話機能の実装を担当しました。音声通話以外にも通話予約機能や通話待機所機能など、合計7画面ほどの機能をSwiftUI + MVVMにて実装しました。 音声通話についてはAmazon Chime SDKをSwift Packege Managerにて組み込み、また、Amazon Chime SDKが音声通話以外にもビデオ通話や画面共有といったロジックを保有しており、本機能では不要のため最小限のモジュールのみを組み込み、かつ、ロジックを単一クラスにまとめることで最小限の依存関係で運用できるよう設計しました。
<会社概要> 会社名 :SHOWROOM株式会社 事業内容:ライブ配信プラットフォーム事業 / VR・AR事業 資本金 :10,000万円 売上高 :非公開 従業員数:122名
2024年のiOS, iPadOS18リリースを期にOriginal StoreKitならびにverify Receipt APIがDeprecatedとなったため、サーバーサイド含めてiOSアプリの課金フルリニューアル対応を実施しました。 事前調査については、私1人で行い、クライアント側の実装方針のみならずサーバーサイドを含めたシステム要件を作成しました。新実装では、これまで実装されていなかった返金対応の必要性を打診し、アプリの不本意な損失を防ぐことに貢献いたしました。 クライアント側の実装では、課金周りのロジック、例外処理を一つのクラスにまとめUnit Testの実装まで行いました。また、全ての例外で原因究明に必要となる情報を含めてFirebase Crashlitycsにログを送信する構成にし、問い合わせ対応や不具合対応での作業効率向上に寄与できたと考えております。
既存の配信者ランキングの表示がwebViewベースになっており、UI/UX改善の観点からランキング表示をネイティブ化する対応を実施しました。かなり大規模なプロジェクトで、仕様/デザインの作成に1ヶ月ほど費やし、最終的に合計18画面の改修・新規実装となりました。 実装に関しては全てSwiftUI+MVVMにて実装し、Unit Testの実装まで完遂しました。また、デザインで吹き出しのUIやメモリ線付きのバーなど、通常のコンポーネントでは対応できない箇所も多く、SwiftUIのPathを使用して実装しました。 また、SHOWROOMのプロジェクトファイルの規模が大きく、コンパイルに時間がかかりPreviewでの開発効率が悪かったため、SwiftUIのコンポーネントを作成するためのモジュールを作成し、Preview時のコンパイル時間を最小限に留め、開発効率向上に貢献いたしました。
SHOWROOMではAPI Request時のUnit Testをスタブを用いて、実装しておりましが、各Unit Testのモジュールでスタブのリソースファイルが別々に管理されており、且つ、ハードコーディングされていたため、それらの課題を解決するため、スタブ関連のリソースファイルとロジックを1つのモジュールに切り出し、リソースファイルはSwiftGenを使用してハードコーディングせずに使用できるように改善し、Unit Test実装の開発効率向上に貢献いたしました。
View Masashi Yamaguchi's
Full Profile
This information is visible only to Wantedly users or the user’s connections
View past posts
View mutual connections
View Masashi Yamaguchi's full profile