クイックスターターズ

Swiftのバックエンドを構築する方法は?

40min

はじめに

このチュートリアルでは、Back4Appを使用してSwiftアプリケーションの完全なバックエンドを構築する方法を学びます。

データベース管理、Cloud Code Functions、RESTおよびGraphQL API、ユーザー認証、リアルタイムクエリ(ライブクエリ)など、Back4Appの重要な機能を統合する方法を説明し、Swiftベースのクライアントアプリとシームレスに通信する安全でスケーラブル、かつ堅牢なバックエンドを作成します。

Back4Appの迅速なセットアップと直感的な環境を活用することで、サーバーやデータベースを手動で構成する場合と比較して、必要な時間と労力を大幅に削減できます。

その過程で、重要な機能、包括的なセキュリティ機能、Cloud Jobsを使用したタスクのスケジューリング、外部統合のためのWebhookの設定など、実践的な経験を得ることができます。

このチュートリアルの終わりまでに、基盤となるバックエンドサービスを本番環境に適したアプリケーションに強化する準備が整い、必要に応じてカスタムロジックやサードパーティAPIを簡単に組み込むことができるようになります。

BaaSプラットフォームを使用することで、バックエンド開発がより効率的な体験に変わる様子を見ていきます。特に迅速なバックエンドやその他のバックエンドアプリを作成する際に役立ちます。それでは始めましょう!

前提条件

このチュートリアルを完了するには、次のものが必要です:

  • Back4Appアカウントと新しいBack4Appプロジェクト Back4Appの始め方。 アカウントをお持ちでない場合は、無料で作成できます。上記のガイドに従ってプロジェクトを準備してください。
  • Swift開発環境 iOSまたはmacOSアプリケーションをSwiftを使用して作成するために、XcodeをIDEとして使用できます。お使いのマシンに最新の安定版Xcodeがインストールされていることを確認してください。
  • Swiftプログラミング言語の理解 Swiftが初めての場合は、公式のSwiftドキュメントまたは初心者向けのチュートリアルを確認してから始めてください。
  • Parse Swift SDK CocoaPodsを使用している場合は、pod 'ParseSwiftOG'をPodfileに追加してください。また、Swift Package Managerを使用している場合は、.package(url: "https://github.com/netreconlab/Parse-Swift.git", from: "5.0.0")を依存関係に追加してください。詳細はParse Swiftドキュメントをお読みください。

始める前に、これらの前提条件がすべて整っていることを確認してください。Back4Appプロジェクトを設定し、ローカルのSwift環境を準備することで、より簡単に進めることができます。

ステップ1 – Back4Appで新しいプロジェクトを作成し、接続する

Back4AppでSwiftバックエンドを構築する最初のステップは、新しいプロジェクトを作成することです。このプロジェクトは、このチュートリアルで説明するすべてのバックエンド設定の基盤となります。Swiftは、Parse Swift SDKを使用することで、新しいバックエンドにシームレスに接続できます。方法を見てみましょう。

新しいプロジェクトを作成する

  1. Back4Appアカウントにログインする
  2. Back4Appダッシュボードの「新しいアプリ」ボタンをクリックする
  3. アプリに名前を付ける(例:「Swift-Backend-Tutorial」)。
Document image


作成後、ダッシュボードに新しいアプリが表示されます。ここで、データベース、クラウド関数、およびバックエンドアプリの他の重要な設定を構成します。

Parse Swift SDKを接続する

Back4AppはParseプラットフォームによって支えられており、データベース、リアルタイム更新、認証などの基盤を提供します。あなたのSwiftアプリケーションは、Parse Swift SDKをインストールして初期化することでBack4Appに接続できます。

Parseキーを取得する: あなたのBack4Appダッシュボードで、アプリの「アプリ設定」または「セキュリティとキー」に移動して、あなたの アプリケーションIDクライアントキーを見つけてください。あなたの ParseサーバーURL も見ることができます(通常は https://parseapi.back4app.com)。

Document image


Parse Swift SDKをインストールする:

  • Swiftパッケージマネージャー (推奨):
Swift

  • CocoaPods:
Ruby


アプリでParseを初期化する:

これをSwiftプロジェクトのメインエントリーポイント(例:AppDelegate.swiftまたはSwiftUIの@main構造体)で行うことができます。例えば:

Swift


この設定により、あなたのSwiftクライアントはBack4Appに安全なリクエストを送信できるようになります。手動のRESTやGraphQL呼び出しを必要とせずにデータ操作を簡素化する堅牢な接続を確立しました(ただし、必要に応じてそれらを使用することもできます)。

ステップ2 – データベースの設定

このステップでは、Back4Appでバックエンドデータベースを構成し、Swiftコードからデータを管理する方法を確認します。Back4AppはParseデータモデルを使用しており、クラスのような構造にオブジェクトを保存できます。SwiftはParse Swift SDKを通じてこれらのクラスと簡単に対話できます。

データモデルの作成

  1. Back4Appダッシュボードの「データベース」セクションに移動します
  2. 新しいクラスを作成します(例:「Todo」)。
  3. 必要なデータのためのカラムを追加します、「title」(String)や「isCompleted」(Boolean)など。
新しいクラスを作成
新しいクラスを作成


オブジェクトを初めて保存する際に、Parse Swift SDKにこれらのカラムを自動的に作成させることもできます。どちらにしても、スキーマは保存するデータと一致している必要があり、アプリがシームレスに処理できるようにする必要があります。

AIエージェントを使用したデータモデルの作成

Back4Appは、データモデルの設計を手助けするAIエージェントを提供しています。

  1. AIエージェントを アプリのダッシュボードまたはメニューから開きます。
  2. 自然言語でデータモデルを 説明します。例えば:「新しいSwiftプロジェクトをToDoクラスのスキーマで作成してください。」
  3. AIエージェントにスキーマを 自動的に作成させます。
Document image


データの読み書き:Parse Swift SDK

Parse Swift SDKを使用して、データを表すためにParseObjectに準拠した構造体を作成できます。例えば、Todoクラスがある場合:

Swift


Todoオブジェクトを作成して保存:

Swift


すべてのTodoアイテムをクエリする:

Swift


データの読み書き: REST API

標準のHTTPリクエストを好む場合は、REST APIを使用できます。たとえば、新しいTodoを作成するには:

Bash


データの読み書き: GraphQL API

GraphQLもサポートされています。Todoを作成するためのサンプルミューテーションは次のとおりです:

GraphQL


ライブクエリの操作

Swiftアプリがリアルタイムの更新を必要とする場合、Back4Appはライブクエリをサポートしています。iOSの場合:

  1. ライブクエリを有効にする あなたのアプリの サーバー設定.
  2. 接続する によって Parse.liveQueryServerURL を指定します:
Swift

  1. ライブ更新に登録する:
Swift


これで、Todoが作成、更新、または削除されるたびに、リアルタイムで更新を受け取ることができます。これは、Swiftバックエンド開発における共同作業や時間に敏感な機能に特に役立ちます。

ステップ 3 – ACL と CLP を使用したセキュリティの適用

ACL と CLP とは何ですか?

Back4App は アクセス制御リスト (ACL)クラスレベルの権限 (CLP) を使用してデータを保護します。ACL はオブジェクトごとの権限を定義でき、CLP はクラス全体のデフォルトのアクセスルールを設定します。

Document image


クラスレベルの権限

Back4App ダッシュボードで:

  1. データベース」に移動し、クラスを選択します(例: “Todo”)。
  2. クラスレベルの権限」を開きます。
  3. 読み取り、書き込み、または公開アクセスの制限を設定します。

アクセス制御リスト (ACL)

SwiftでParseObjectを作成または更新する際に、ACLを設定できます。例えば:

Swift


これにより、指定されたユーザーのみがそのオブジェクトを読み取ったり変更したりできるようになります。ACLとCLPを組み合わせることで、アプリのデータに対する堅牢で層状のセキュリティモデルが形成されます。

ステップ4 – クラウドコード関数の作成

なぜクラウドコードなのか?

クラウドコードを使用すると、クライアントに秘密を公開することなく、サーバー側のSwiftロジック(または元のParse Cloud Codeスタイルを使用する場合はJavaScript)を実行できます。これは、検証、トリガー、スケジュールされたタスクなどに最適です。

例の関数

こちらはJavaScriptベースの例ですが、TypeScriptで作業したり、Swiftから呼び出したりすることもできます。あなたのBack4App Cloud Codeフォルダーに、次のように作成します:main.js:

JS


NPMモジュールをインストールするには、package.jsonファイルに含めてから、main.jsで呼び出すことをお勧めします。デプロイ後、callFunctionを使用してSwiftコードからこれらの関数を呼び出すことができます。

デプロイメント

Cloud Codeを次の方法でデプロイします:

Bash


Back4Appダッシュボードを通じてデプロイすることもできます。Cloud Code > Functionsに移動します。オンラインエディタにコードを貼り付けて、Deployをクリックします。

Swiftからの呼び出し

Swift


ステップ5 – 認証の設定

ユーザー認証の有効化

Back4Appの ダッシュボード では、ユーザーアカウント用のデフォルトの _User クラスが表示されます。必要に応じて、アプリの 認証設定 で追加の認証プロバイダー(Apple、Facebook、Googleなど)をオンにしてください。

サインアップとログイン(Swift)

Swift


ソーシャルログイン

Back4AppはGoogle、Apple、FacebookとのOAuthログインをサポートしています。これらのプロバイダーを 認証 設定ページで構成し、Swiftアプリ内で関連するParse Swift統合コード(例: ParseFacebookUtils または ParseAppleUtils) を使用して認証フローを処理します。詳細については、 ソーシャルログインのドキュメント を参照してください。

ステップ6 – ファイルストレージの処理

ファイルストレージの設定

Back4Appに画像、動画、または任意のファイルを保存できます。Swiftでは、ParseFile:

Swift


次に、このファイルをParseObjectに添付して保存できます。ファイルのURLを取得して、他の場所で表示またはダウンロードします。

セキュリティに関する考慮事項

ファイルアクセスを制限するには、Parse Serverのファイル設定を使用できます。たとえば、認証されたユーザーのみがファイルをアップロードできるようにしたり、Swiftコードで読み取り/書き込みの権限を指定したりできます。

ステップ7 – メール確認とパスワードリセット

なぜ確認とリセットのメールが必要なのか?

ユーザーのメールを検証することで、実際のアクティブなメールボックスを確保します。パスワードリセットは、ユーザーが認証情報を忘れた場合に安全にアカウントアクセスを回復するのに役立ちます。

Back4Appの設定

メール設定」に移動し、「メール認証」を有効にします。認証とリセットフローのためのメールテンプレートを編集してください。

Swiftからのパスワードリセットのトリガー

Swift


ステップ8 – クラウドジョブによるタスクのスケジューリング

クラウドジョブ

Back4Appでサーバーサイドのタスクをスケジュールできます。例えば、古いデータのクリーンアップや週次レポートの送信です。Cloud Codeでジョブを定義し、Back4Appダッシュボードを通じてスケジュールします。

JS


次に、Back4Appの「サーバー設定」 > 「バックグラウンドジョブ」で、毎日または任意の間隔で実行するようにスケジュールできます。

クラウドジョブのスケジューリング
クラウドジョブのスケジューリング


ステップ9 – ウェブフックの統合

ウェブフックとは?

ウェブフックは、特定のイベントが発生するたびにアプリが自動的にデータを外部サービスにPOSTできるようにします。これは、Slack、Stripe、または他のサードパーティAPIとの統合に最適です。

設定

  1. Back4Appダッシュボードで、その他 > ウェブフックに移動します。
  2. ウェブフックエンドポイントを追加します(例:https://example.com/webhook)。
  3. トリガーを選択します(例:「Todo」でのオブジェクト作成)。
ウェブフックの追加
ウェブフックの追加


カスタムロジックの場合、Cloud Codeトリガーで外部URLにリクエストを発行することもできます。

BeforeSave WebHook
BeforeSave WebHook


ステップ10 – Back4App管理パネルの探索

管理パネルとは?

Back4App Admin App」は、非技術的またはサポートスタッフ向けのポイントアンドクリックインターフェースです。データに対してCRUD操作を行うためのシンプルなGUIを提供し、開発環境外でのデータ管理に最適です。

管理アプリの有効化

  1. アプリダッシュボードに移動 > もっと見る > 管理アプリ.
  2. 管理アプリを有効にし、サブドメインを選択します。
  3. 管理ユーザーを作成します。
管理アプリを有効にする
管理アプリを有効にする


一度有効化されると、適切な資格情報を持つ誰でも、コードなしでユーザーフレンドリーなウェブインターフェースからデータを表示および編集できます。

結論

この完全なチュートリアルに従うことで、あなたは Swiftのバックエンドを構築する方法 をBack4Appを使用して学びました。具体的には、あなたは:

  • 安全なバックエンドを作成しました あなたのSwiftアプリのために。
  • クラススキーマとデータ関係を持つ データベースを構成しました。
  • リアルタイムクエリを使用しました (ライブクエリ)で即時更新を行いました。
  • 堅牢なセキュリティを設定しました ACLとCLPを使用して。
  • クラウドコードを使用しました サーバーサイドでカスタムロジックを実行するために。
  • ユーザー認証を実装しました 検証とパスワードリセットを使用して。
  • ファイルアップロードを処理しました 安全に。
  • 自動化されたタスクをスケジュールしました クラウドジョブを使用して。
  • Webhookについて学びました 外部APIを統合するために。
  • 管理パネルを探りました 直接データ管理のために。

あなたは今、Swiftアプリケーションのための機能的でスケーラブルなバックエンドサービスを持っています—より複雑な機能を処理したり、サードパーティサービスに接続したり、より多くのユーザートラフィックに適応したりするために簡単に拡張できます。また、Back4AppのBaaS機能とSwiftのモダンな構文の組み合わせがバックエンド開発をどのように加速できるかを直接見てきました。

次のステップ

  • プロダクション準備が整ったSwiftアプリを構築する UI/UXを具体化することで。
  • 高度な機能を統合する 特殊な認証(役割ベース、SSO)や、ドメイン特有のルールのための追加のCloud Codeロジックなど。
  • 公式のBack4Appドキュメントをチェックする ログ、分析、または高度なセキュリティについての詳細な情報を得るために。
  • 他のチュートリアルを探る リアルタイムチャット、IoTダッシュボード、または位置情報ベースのアプリに関するもの。これらを外部APIと組み合わせて、実世界の課題を解決する。

これがBack4Appを使用してSwiftのバックエンドを構築する方法です!コーディングを楽しんでください!