iOSアプリ開発の技術選定
✅ 必要な技術スタック
カテゴリ | 技術 | 説明 |
---|---|---|
フロントエンド(iOSアプリ) | Swift | Apple推奨の開発言語 |
SwiftUI / UIKit | UIフレームワーク(最新: SwiftUI、従来: UIKit) | |
Core Location | GPS位置情報取得 | |
MapKit / Google Maps SDK | 地図表示 | |
バックエンド(API & DB) | FastAPI / Django | APIサーバー(FastAPI: 軽量 & 高速 / Django: 管理機能 & 認証) |
PostgreSQL / Firebase Firestore | データベース(RDB or NoSQL) | |
AWS S3 / Firebase Storage | 画像・写真保存 | |
通信(iOS ⇔ バックエンド) | URLSession / Alamofire | API通信(標準: URLSession / 簡単: Alamofire) |
WebSocket(FastAPI) | リアルタイム通信 |
🛠 フロントエンド(iOSアプリ開発)
📌 使用技術
- Swift(言語)
-
SwiftUI(UIフレームワーク)
- iOS 13以下をサポートするなら
UIKit
も選択肢
- iOS 13以下をサポートするなら
- Core Location(位置情報取得)
- MapKit / Google Maps SDK(地図表示)
- CoreData / SQLite(ローカルデータ保存)
- URLSession / Alamofire(API通信)
🌍 位置情報 & 地図
import CoreLocation
import MapKit
-
Core Location
→ ユーザーの現在地を取得 -
MapKit
→ Apple純正の地図表示 -
Google Maps SDK
を使いたい場合は追加でライブラリ導入
🛠 バックエンド(API & データ管理)
📌 選択肢
✅ APIサーバー
技術 | 特徴 |
---|---|
FastAPI | 軽量 & 高速、非同期処理が得意 |
Django REST Framework | 認証や管理機能が充実 |
✅ データベース
技術 | 特徴 |
---|---|
PostgreSQL | スケールしやすいRDB |
Firebase Firestore | NoSQL、スキーマレスで柔軟 |
✅ 画像保存(写真管理)
技術 | 特徴 |
---|---|
AWS S3 | 大規模向け、セキュア |
Firebase Storage | Firebaseと統合が楽 |
🛠 通信(iOS ⇔ バックエンド)
✅ API通信
let url = URL(string: "https://example.com/api")!
var request = URLRequest(url: url)
request.httpMethod = "GET"
URLSession.shared.dataTask(with: request) { data, response, error in
if let data = data {
print(String(data: data, encoding: .utf8) ?? "")
}
}.resume()
-
URLSession
→ 標準API通信 -
Alamofire
を使うとより簡単に記述可能
✅ リアルタイム処理
- WebSocket(FastAPIが得意) を使えばリアルタイム位置共有が可能
🎯 どれを選ぶべき?
機能 | おすすめ |
---|---|
シンプルにローカル保存 | SQLite / CoreData(バックエンド不要) |
クラウド同期したい | Firebase Firestore + Firebase Storage |
カスタムAPIを作る | FastAPI + PostgreSQL |
SNSのように共有する | Django + Django REST Framework |