はじめに
株式会社スペースリー iOSエンジニアのHikawa Taisei(@teeeee441)です。普段は不動産業者向け物件撮影アプリを開発しています。
今回は、そのアプリの技術スタックや1人開発での運用について紹介します。
プロジェクト概要
どんなアプリ?
不動産業者向け物件撮影の効率化を実現するiOSアプリケーション
主要機能
- 撮影補助(iPhone標準カメラ・RICOH THETA連携)
- 物件単位での画像・情報管理
- 物件紹介動画の生成
技術スタックと開発環境
- 対応OS: iOS 16以上
- UIフレームワーク: SwiftUI中心(必要に応じてUIKit)
- テストフレームワーク: Swift Testing
- 開発ツール: Xcode、Claude Code(AI支援)
- プロジェクト管理: Jira
- デザイン: Figma
アーキテクチャ設計
基本構造
Android推奨アーキテクチャを参考にした以下のような構成
- UI層: SwiftUI + ViewModel
- ビジネスロジック層: UseCase(オプション)
- データ層: Repository、Service
マルチモジュール
機能単位でのモジュール分割とSandboxアプリによる開発効率と保守性の向上
特徴的な技術実装
外部デバイス連携
RICOH THETAとのWi-Fi接続による360度撮影
動画生成機能
- AVFoundationによる動画処理
- SceneKitを活用したパノラマ画像の球体マッピング
AI機能
CoreMLによる部屋カテゴリの自動推定
オフライン対応
Realmによるデータキャッシングでオフライン対応
主要ライブラリ&フレームワーク
- LocalDB: Realm
- DI: Factory
- ネットワーク: Moya
- 画像キャッシュ: Kingfisher
- 分析・監視: Firebase (Crashlytics等)
- 3D・動画: SceneKit、AVFoundation
テスト
Swift TestingによるUnit Testのみ。
Test Double(主にStub・Spy)を活用したSUTのみを対象とした純粋なUnit Test。
開発プロセス
ブランチ戦略
Git Flowをベースにした3段階構成:
develop: 開発用ブランチpre-release: TestFlight配信用release: 本番リリース用
CI/CD
その他
- コードレビュー: Danger、CodeRabbitによる自動化
開発体制と運用
- チーム規模: 1名での開発・運用
- リリースサイクル: 月1回程度
働き方の自由度
完全リモートワーク
渋谷/大阪オフィスに出社することも可能。
ワーケーションも可能で、実際に私はオーストラリアやアメリカからリモートで勤務した経験もあります!
Slackで気軽に雑談したり、隔週でLT会や雑談会があったりと、リモートワークでも自然に交流できる環境です!
柔軟な勤務時間
コアタイムは11:00〜16:00です。
フレックスタイム制で私用による中抜けも可能なので、私は日中に筋トレをすることもあります。
開発環境の自由度
技術選定の裁量
ビジネス価値と整合性があれば、自身が興味のある技術を積極的に採用可能。技術的な挑戦と事業成長の両立を実現できる環境です。
開発ツールサポート
生産性向上につながるツールは、スピーディーに利用が承認される体制が整っています。
特にAIツールは、CAIOが中心になって積極的に導入を進めています!
私も今までChatGPT, Claude, Gemini, GitHub Copilot, Cline, Cursor, Claude Code, CodeRabbitなど様々なツールを使ってきて、そのありがたさを実感しています。
さいごに
スペースリーでは一緒に働いてくださる方を大募集中です。
iOSエンジニア / 株式会社スペースリー