開発期間: 2026年1月22日(約6時間)
開発手法: AI支援型アジャイル開発
プラットフォーム: iOS (SwiftUI)
アプリ名: SWEETS PRO(スイーツ専門ECアプリ)
本プロジェクトを通じて、AIを活用することで開発時間を大幅に短縮できることが実証されました。従来であれば数週間を要する作業を、わずか6時間で完了させることができました。
しかし、AIでは代替できない重要な領域も明確になりました。それはビジネスロジックの設計とユーザーの購買行動に基づく設計思考です。これらは人間の経験、ドメイン知識、創造性が不可欠であり、AIはあくまで補助ツールとして機能します。
フロントエンドは比較的完成度が高いものの、アプリケーション全体としては商用利用できるレベルには達していません。理由は明確です:完全な商用アプリケーションには、堅牢なバックエンドシステム、本番対応データベース、決済システム統合、在庫・注文管理、物流連携、そして包括的なテストが不可欠だからです。
現在のバックエンドは非常にシンプルで、商品情報の提供のみ実装されています。ユーザー管理、注文処理、決済などのAPIは設計段階に留まっており、実際には開発していません。
なぜ完全な商用化をしなかったのか?答えは簡単です:私自身が実際に運営する菓子店を持っていないため、商品を販売する必要がありません。本プロジェクトの真の目的は、AI支援開発の実証実験として、6時間でどこまで開発できるかを検証し、今後の工数見積もりの基準を作ることでした。
もし商用化する場合、バックエンド基盤構築(4-6週間)、決済・物流統合(3-4週間)、テスト・品質保証(3-4週間)、運用準備(2-3週間)で、合計約3-4ヶ月の追加開発が必要と見積もられます。今回の6時間開発は、全体の約10-15%の進捗に相当します。
結論:AIは開発速度を劇的に向上させますが、ビジネス判断や戦略的思考は人間の領域です。最も効果的なアプローチは、AIと人間の協働モデルです。これこそが次世代のソフトウェア開発の姿といえるでしょう。
- コードリポジトリ: https://github.com/pangyhtech/My-fullstack-project/tree/main/sweetspro_v1.0.0
- デモ動画1: https://youtube.com/shorts/GyQNSUCcleA?si=DyLetx0uQb1GFop-
- デモ動画2:https://www.tiktok.com/@pangyhtech/video/7598084230609931528?is_from_webapp=1&sender_device=pc/
目次
プロジェクト概要
本プロジェクトは、AI(Claude)を活用した短期集中型アプリ開発の実証実験として実施されました。洋菓子・和菓子の販売に特化したiOSネイティブアプリケーションを、わずか6時間という限られた時間内で完成させることを目標としています。
プロジェクトの目的
- スピード検証: AIを活用した場合の開発速度の測定
- 品質評価: 短期開発における成果物の品質レベルの確認
- 実用性確認: 実際のビジネスで使用可能なレベルに到達できるか
開発背景
従来のアプリ開発では、企画から設計、実装、テストまで数週間から数ヶ月を要することが一般的です。しかし、AI技術の進化により、要件定義から実装までを大幅に短縮できる可能性が示唆されています。本プロジェクトは、その可能性を実証するために行われました。
実装された主要機能
1. ユーザー認証・管理システム
実装内容:
- ユーザー登録機能(氏名、メール、電話番号、住所など)
- ログイン/ログアウト機能
- プロフィール編集機能
- アカウント削除機能(確認フロー付き)
技術的特徴:
- SwiftUIのEnvironmentObjectを活用したグローバル状態管理
- UserManagerクラスによる集中的なユーザーデータ管理
- バックエンドAPIとの連携(RESTful設計)
実装コード例:
class UserManager: ObservableObject {
@Published var currentUser: User?
@Published var isLoggedIn = false
@Published var favorites: Set<String> = []
func login(email: String, password: String) { /* ... */ }
func register(userData: UserData) { /* ... */ }
func updateProfile(user: User) { /* ... */ }
}
2. 商品表示・検索システム
実装内容:
- ホーム画面のバナースライダー(PageTabView)
- 人気ランキング表示(横スクロール)
- 新着・おすすめ商品グリッド表示
- カテゴリー別商品検索
- 商品詳細ページ(画像、価格、説明、レビュー)
UI/UXの工夫:
- AsyncImageによる非同期画像読み込み
- LazyVGridによる効率的なグリッド表示
- カスタムProductCellコンポーネントの再利用
- スムーズなスクロールとアニメーション
3. ショッピングカート機能
実装内容:
- カートへの商品追加/削除
- 数量変更機能
- 合計金額の自動計算
- カート内容の永続化(将来拡張用)
状態管理:
class AppState: ObservableObject {
@Published var cartItems: [CartItem] = []
var cartTotal: Int {
cartItems.reduce(0) { $0 + ($1.product.price * $1.quantity) }
}
func addToCart(product: Product, quantity: Int) { /* ... */ }
func removeFromCart(id: UUID) { /* ... */ }
func clearCart() { /* ... */ }
}
4. 注文・決済フロー
実装内容:
- 配送先情報の確認
- 配送日時指定(DatePicker統合)
- 決済方法選択(クレジットカード、代引き、Amazon Pay、PayPay)
- 注文確認画面
- 注文成功ページ(高度なアニメーション実装)
注目機能:注文成功ページ:
この機能は特に凝った実装となっており、以下の要素を含みます:
- 円形プログレスバーのアニメーション(0%→100%、1.5秒)
- 成功チェックマークのスプリングアニメーション
- 段階的なコンテンツ表示(タイムライン制御)
- 注文詳細の美しいカードレイアウト
// アニメーションタイムライン
@State private var animationProgress: CGFloat = 0
@State private var showCheckmark = false
@State private var showDetails = false
func startAnimation() {
withAnimation { animationProgress = 1.0 }
DispatchQueue.main.asyncAfter(deadline: .now() + 1.5) {
withAnimation(.spring(response: 0.5, dampingFraction: 0.6)) {
showCheckmark = true
}
}
}
5. 会員ランク・ポイントシステム
実装内容:
- 4段階の会員ランク(レギュラー、シルバー、ゴールド、プラチナ)
- 購入金額に応じた自動ランクアップ
- ポイント獲得・表示機能
- 会員特典の可視化
ビジネスロジック:
enum MembershipTier: String, Codable {
case regular = "レギュラー"
case silver = "シルバー"
case gold = "ゴールド"
case platinum = "プラチナ"
}
func updateMembershipTier() {
switch totalPurchases {
case 0..<10000: membershipTier = .regular
case 10000..<30000: membershipTier = .silver
case 30000..<50000: membershipTier = .gold
default: membershipTier = .platinum
}
}
6. サイドメニュー(ハンバーガーメニュー)
実装内容:
- スワイプで開閉可能なスライドメニュー
- ユーザー情報の表示
- 階層的なメニュー構造
- スワイプジェスチャーでの閉じる機能
技術的実装:
- ZStackを使った重ね合わせレイアウト
- DragGestureによるスワイプ検知
- Animation制御による滑らかな開閉
- @Binding による親子コンポーネント間の状態共有
7. お気に入り機能
実装内容:
- 商品のお気に入り登録/解除
- お気に入り一覧表示
- バックエンドとの同期
8. 注文履歴
実装内容:
- 過去の注文一覧表示
- 注文詳細の確認
- 注文ステータスの表示(処理中、配送中、完了など)
9. サポート機能
実装内容:
- よくある質問(FAQ)ページ
- お問い合わせフォーム
- カテゴリー別のアコーディオン式FAQ
10. 企業情報・法的文書
実装内容:
- 会社概要ページ
- 利用規約
- プライバシーポリシー
- ライセンス情報
- バージョン情報
技術スタック
フロントエンド(iOS)
- 言語: Swift 5.x
- フレームワーク: SwiftUI
- アーキテクチャパターン: MVVM(Model-View-ViewModel)
- 状態管理: @ObservedObject, @EnvironmentObject
- 非同期処理: async/await, URLSession
- 画像読み込み: AsyncImage
バックエンド
- 言語: Python 3.x
- サーバー: HTTPServer (標準ライブラリ)
- API設計: RESTful API
- データ保存: インメモリ(プロトタイプ段階)
プロジェクト構成
sweetspro/
├── SweetsProApp.swift # アプリエントリーポイント
├── Views/ # 画面コンポーネント
│ ├── HomeView.swift
│ ├── CartView.swift
│ ├── CheckoutView.swift
│ ├── OrderSuccessView.swift
│ ├── MembershipView.swift
│ └── ...
├── Components/ # 再利用可能コンポーネント
│ ├── ProductCell.swift
│ ├── ReviewItemView.swift
│ └── ...
├── Models/ # データモデル
│ ├── Product.swift
│ ├── User.swift
│ ├── Order.swift
│ └── ...
├── Managers/ # ビジネスロジック
│ ├── UserManager.swift
│ ├── OrderManager.swift
│ └── AppState.swift
└── server/ # バックエンド
├── server.py
└── images/
開発プロセス
フェーズ1: 基本構造の構築(最初の2時間)
- プロジェクト初期化とファイル構造の設計
- データモデルの定義(Product, User, Order等)
- ホーム画面の実装
- ナビゲーション構造の確立
フェーズ2: コア機能の実装(3-5時間目)
- ショッピングカート機能
- ユーザー認証システム
- 商品詳細ページ
- サイドメニュー実装
フェーズ3: 高度な機能追加(6-7時間目)
- 注文フロー完成
- 会員ランクシステム
- お気に入り機能
- 注文履歴
フェーズ4: バグ修正と洗練(7-8時間目)
- ナビゲーション問題の解決
- UI調整(テキスト配置など)
- アニメーション改善
- エラーハンドリング
直面した課題と解決策
課題1: ナビゲーションスタックの問題
問題: 注文確認ボタンをクリックしても、成功ページに遷移せず空のカートページが表示される。
原因: createOrderAndGetId()関数内でappState.clearCart()を即座に実行したため、ナビゲーションコンテキストが破壊された。
解決策:
// 修正前
Button(action: {
orderNumber = createOrderAndGetId() // ここでカートクリア
navigateToSuccess = true // 遷移失敗
})
// 修正後
Button(action: {
orderNumber = createOrderWithoutClearingCart() // カートは保持
navigateToSuccess = true // 遷移成功
DispatchQueue.main.asyncAfter(deadline: .now() + 0.5) {
appState.clearCart() // 遷移後にクリア
}
})
課題2: 構造体名の重複エラー
問題: InfoRowという名前の構造体が複数のファイルで定義され、コンパイルエラーが発生。
解決策: 用途に応じて明確な名前に変更(DeletionInfoRow, CompanyInfoRowなど)。
課題3: テキストの配置問題
問題: サイドメニューの長いテキストが複数行になった際、2行目が中央揃えになる。
解決策:
Text(title)
.multilineTextAlignment(.leading)
.lineLimit(2)
.fixedSize(horizontal: false, vertical: true)
課題4: 画像が表示されない
問題: 商品画像が読み込まれない。
原因: バックエンドサーバーが起動していなかった。
解決策: python3 server/server.pyでサーバーを起動。
成果物の品質評価
UI/UXの完成度: ★★★☆☆ (3/5)
- 現代的でクリーンなデザイン
- 直感的なナビゲーション
- スムーズなアニメーション
- 一部の細かい調整が必要(文字サイズ、余白など)
機能の完全性: ★★★☆☆ (3/5)
- ECアプリとして必要な基本機能は網羅
- 会員システムや注文フローは実用的
- 決済連携は未実装(モック段階)
コード品質: ★★★☆☆ (3/5)
- MVVMパターンに従った構造
- 適切なコンポーネント分割
- 一部リファクタリングの余地あり
パフォーマンス: ★★★☆☆ (3/5)
- LazyLoadingの活用
- メモリ効率的な実装
- 大規模データでの検証は未実施
AI開発の利点と限界
利点
1. 圧倒的な開発スピード
- 通常2-3週間かかる機能を6時間で実装
- リアルタイムでの問題解決と調整
- 繰り返しタスクの自動化
2. 幅広い技術カバレッジ
- フロントエンド(SwiftUI)
- バックエンド(Python)
- API設計
- データモデリング
- UI/UXデザイン
3. ドキュメンテーション
- 実装と同時に詳細な技術ドキュメントを生成
- コードコメントの自動追加
- 修正履歴の記録
4. ベストプラクティスの適用
- 業界標準のデザインパターン
- アクセシビリティへの配慮
- セキュリティ考慮事項
限界
1. ビジネスロジックの深い理解
- 複雑なビジネスルールには人間の判断が必要
- ドメイン知識の不足
2. クリエイティブなデザイン
- デザインは既存パターンの組み合わせ
- 独創的なUI/UXには限界
3. 最終的な品質保証
- 詳細なテストは人間が必要
- エッジケースの発見
4. プロジェクト管理
- 優先順位の判断
- ビジネス価値の評価
今後の展望
短期的改善(1-2週間)
- 決済API統合: Stripe、PayPay等の実決済システム連携
- データベース導入: FirebaseまたはSupabaseへの移行
- プッシュ通知: 注文状況の通知機能
- 画像最適化: CDN統合と遅延読み込み
中期的拡張(1-2ヶ月)
- レビューシステム強化: 画像投稿、評価フィルター
- 検索機能改善: フルテキスト検索、フィルター
- ソーシャル機能: SNSシェア、友達紹介
- 多言語対応: 英語、中国語サポート
長期的ビジョン(3-6ヶ月)
- AI推薦エンジン: パーソナライズされた商品提案
- ARプレビュー: ARKitを使った商品プレビュー
- サブスクリプション: 定期購入サービス
- Apple Pay統合: シームレスな決済体験
結論
本プロジェクトを通じて、AIを活用すれば6時間で実用的なレベルのショッピングアプリを開発できることが実証されました。完成したアプリケーションは以下の特徴を持っています:
✅ 30以上の画面・機能を実装
✅ MVVMアーキテクチャによる保守性の高い構造
✅ ビジネスロジックを含む実用的な機能
✅ モダンなUI/UXデザイン
✅ 詳細なドキュメントと技術資料
従来の開発手法では数週間から数ヶ月を要していた作業が、AI支援により劇的に短縮されました。ただし、これは人間とAIの協働によって実現されたものであり、AIが単独で完結したわけではありません。
開発者の役割:
- 要件定義と優先順位付け
- アーキテクチャ決定
- 品質基準の設定
- 最終的な判断
AIの役割:
- コード生成とリファクタリング
- バグ修正と最適化
- ドキュメンテーション
- ベストプラクティスの提案
この協働モデルこそが、次世代のソフトウェア開発の姿といえるでしょう。
