トップ 最新 追記

Cocoa練習帳

iOS/iPhone/iPad/watchOS/tvOS/MacOSX/Android プログラミング, Objective-C, Cocoa, Swiftなど

2012|01|02|03|04|05|06|07|08|09|10|11|12|
2013|01|02|03|04|05|06|07|08|09|10|11|12|
2014|01|02|03|04|05|06|07|08|09|10|11|12|
2015|01|02|03|04|05|06|07|08|09|10|11|12|
2016|01|02|03|04|05|06|07|08|09|10|11|12|
2017|01|02|03|04|05|06|07|08|09|10|11|12|
2018|01|02|03|04|05|06|07|08|09|10|11|12|
2019|01|02|03|04|05|06|07|08|09|10|11|12|
2020|01|02|03|04|05|06|07|08|09|10|11|12|
2021|01|02|03|04|05|06|07|08|09|10|11|12|
2022|01|02|03|04|05|06|07|08|09|10|11|12|
2023|01|02|03|04|05|06|07|08|09|10|11|12|
2024|01|02|03|04|05|

2018-01-17 [macOS][iOS]サーバーレスアーキテクチャで悩んでます

今回は、AKIBA.swift 第12回 質疑トーク回! で発表した内容だ。この回は、発表者の課題を参加者とディスカッションして解決するという内容のため、この投稿には結論はないので悪しからず。

作りたいアプリは
  • サーバを避けたい
    • プログラム作成が面倒
    • 維持費がかかる
    • アプリがヒットしてしまい、サーバへのアクセスが増えると、開発者の負担がます
    • 規模が大きくなると、性能問題や、ダウンした際の対応など、課題が出てくる
  • 必要な機能は?
    • データの読み書きの機能が用意されている。
    • バックアップとしても利用できる。
    • 持っている複数の機器で共有できる。
    • 容量制限を超えたら、ユーザに料金の請求が行く。
    • 他ユーザと共有できる機能があると嬉しい。
  • 検討しているサービス
    • iCloudストレージサービス
      • キー値ストレージ
      • ドキュメントストレージ
      • CloudKit
    • Firebase
      • Realtime Database
      • Cloud Firestore
      • Cloud Storage
    • IBM Cloud (Bluemix) は?
    • AWS は?
  • iCloudキー値ストレージ
    • UserDefaultsのクラウド版。
    • ユーザごとに1 MB以内。
    • 指定できるキーは1024個まで。
    • 各キーに対応する値のサイズはそれぞれ1 MB以内。
  • iCloudドキュメントストレージ
    • macOSの場合、~/Library/Mobile Documents/iCloud~バンドルID/ 配下に格納される。
    • Info.plist に NSUbiquitousContainersキー を追加すれば、iCloud Driveに格納される。
      
<key>NSUbiquitousContainers</key>
      
 <dict>
      
 <key>iCloud.com.example.MyApp</key>
      
 <dict>
      
 <key>NSUbiquitousContainerIsDocumentScopePublic</key>
      
 <true/>
      
 <key>NSUbiquitousContainerSupportedFolderLevels</key>
      
 <string>Any</string>
      
 <key>NSUbiquitousContainerName</key>
      
 <string>アプリ名など</string>
      
 </dict>
      
 </dict>
  • iCloud CloudKit
    • 容量制限があり、超えると開発者の負担となる。
    • アプリケーションのモデルの格納先を想定していない。
    • 差分などのデータの受け渡しや、ユーザ間でのデータの共有のためのサービス。
  • Firebase Realtime Database
    • データの保存と同期がリアルタイムで。
    • クロスプラットフォーム(iOSやAndroid)。
    • 料金プラン
      
開発者の負担の上限が設定できる。
      • 無料
        同時に100接続。1GB。10GB/月。
      • 月額固定($25/月)
        
同時に100k接続。2.5GB。20GB/月。
      • 従量課金
        
同時に100k/db。$5/GB。$1/GB。
  • Firebase Cloud Firestore
    • Realtime Databaseの次のデータベース。
    • Realtime Databaseと比較すると、階層的なデータに対応している。
  • Firebase Cloud Strage
    • ストレージ。
    • 共有できる
    • 料金プラン
      • 無料
        
5GB。1GB/日。2万操作/日。5万取得操作/日。
      • 月額固定($25/月)
        
50GB。50GB/日。100k操作/日。25万取得操作/日。
      • 従量課金
        
$0.026/GB。$0.12/GB。$0.05/10k。$0.004/10k。

トップ 最新 追記