Swiftのバックエンドを構築する方法は?
このチュートリアルでは、Back4Appを使用してSwiftアプリケーションの完全なバックエンドを構築する方法を学びます。
データベース管理、Cloud Code Functions、RESTおよびGraphQL API、ユーザー認証、リアルタイムクエリ(ライブクエリ)など、Back4Appの重要な機能を統合する方法を説明し、Swiftベースのクライアントアプリとシームレスに通信する安全でスケーラブル、かつ堅牢なバックエンドを作成します。
Back4Appの迅速なセットアップと直感的な環境を活用することで、サーバーやデータベースを手動で構成する場合と比較して、必要な時間と労力を大幅に削減できます。
その過程で、重要な機能、包括的なセキュリティ機能、Cloud Jobsを使用したタスクのスケジューリング、外部統合のためのWebhookの設定など、実践的な経験を得ることができます。
このチュートリアルの終わりまでに、基盤となるバックエンドサービスを本番環境に適したアプリケーションに強化する準備が整い、必要に応じてカスタムロジックやサードパーティAPIを簡単に組み込むことができるようになります。
BaaSプラットフォームを使用することで、バックエンド開発がより効率的な体験に変わる様子を見ていきます。特に迅速なバックエンドやその他のバックエンドアプリを作成する際に役立ちます。それでは始めましょう!
このチュートリアルを完了するには、次のものが必要です:
- Swift開発環境 iOSまたはmacOSアプリケーションをSwiftを使用して作成するために、XcodeをIDEとして使用できます。お使いのマシンに最新の安定版Xcodeがインストールされていることを確認してください。
- 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環境を準備することで、より簡単に進めることができます。
Back4AppでSwiftバックエンドを構築する最初のステップは、新しいプロジェクトを作成することです。このプロジェクトは、このチュートリアルで説明するすべてのバックエンド設定の基盤となります。Swiftは、Parse Swift SDKを使用することで、新しいバックエンドにシームレスに接続できます。方法を見てみましょう。
- Back4Appアカウントにログインする。
- Back4Appダッシュボードの「新しいアプリ」ボタンをクリックする。
- アプリに名前を付ける(例:「Swift-Backend-Tutorial」)。
![Document image Document image](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/drXO0UqsgxhFvRDiVmsMb_image.png?format=webp)
作成後、ダッシュボードに新しいアプリが表示されます。ここで、データベース、クラウド関数、およびバックエンドアプリの他の重要な設定を構成します。
Back4AppはParseプラットフォームによって支えられており、データベース、リアルタイム更新、認証などの基盤を提供します。あなたのSwiftアプリケーションは、Parse Swift SDKをインストールして初期化することでBack4Appに接続できます。
Parseキーを取得する: あなたのBack4Appダッシュボードで、アプリの「アプリ設定」または「セキュリティとキー」に移動して、あなたの アプリケーションID と クライアントキーを見つけてください。あなたの ParseサーバーURL も見ることができます(通常は https://parseapi.back4app.com)。
![Document image Document image](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/F9teHXd_M8ERn1OPGirbi_image.png?format=webp)
Parse Swift SDKをインストールする:
- Swiftパッケージマネージャー (推奨):
- CocoaPods:
アプリでParseを初期化する:
これをSwiftプロジェクトのメインエントリーポイント(例:AppDelegate.swiftまたはSwiftUIの@main構造体)で行うことができます。例えば:
この設定により、あなたのSwiftクライアントはBack4Appに安全なリクエストを送信できるようになります。手動のRESTやGraphQL呼び出しを必要とせずにデータ操作を簡素化する堅牢な接続を確立しました(ただし、必要に応じてそれらを使用することもできます)。
このステップでは、Back4Appでバックエンドデータベースを構成し、Swiftコードからデータを管理する方法を確認します。Back4AppはParseデータモデルを使用しており、クラスのような構造にオブジェクトを保存できます。SwiftはParse Swift SDKを通じてこれらのクラスと簡単に対話できます。
- Back4Appダッシュボードの「データベース」セクションに移動します。
- 新しいクラスを作成します(例:「Todo」)。
- 必要なデータのためのカラムを追加します、「title」(String)や「isCompleted」(Boolean)など。
![新しいクラスを作成 新しいクラスを作成](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/iaZ_P-7epc_LSMFIPlaZV_image.png?format=webp)
オブジェクトを初めて保存する際に、Parse Swift SDKにこれらのカラムを自動的に作成させることもできます。どちらにしても、スキーマは保存するデータと一致している必要があり、アプリがシームレスに処理できるようにする必要があります。
Back4Appは、データモデルの設計を手助けするAIエージェントを提供しています。
- AIエージェントを アプリのダッシュボードまたはメニューから開きます。
- 自然言語でデータモデルを 説明します。例えば:「新しいSwiftプロジェクトをToDoクラスのスキーマで作成してください。」
- AIエージェントにスキーマを 自動的に作成させます。
![Document image Document image](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/0snNZwHWzxuXlNu30n7IA_image.png?format=webp)
Parse Swift SDKを使用して、データを表すためにParseObjectに準拠した構造体を作成できます。例えば、Todoクラスがある場合:
Todoオブジェクトを作成して保存:
すべてのTodoアイテムをクエリする:
標準のHTTPリクエストを好む場合は、REST APIを使用できます。たとえば、新しいTodoを作成するには:
GraphQLもサポートされています。Todoを作成するためのサンプルミューテーションは次のとおりです:
Swiftアプリがリアルタイムの更新を必要とする場合、Back4Appはライブクエリをサポートしています。iOSの場合:
- ライブクエリを有効にする あなたのアプリの サーバー設定.
- 接続する によって Parse.liveQueryServerURL を指定します:
- ライブ更新に登録する:
これで、Todoが作成、更新、または削除されるたびに、リアルタイムで更新を受け取ることができます。これは、Swiftバックエンド開発における共同作業や時間に敏感な機能に特に役立ちます。
Back4App は アクセス制御リスト (ACL) と クラスレベルの権限 (CLP) を使用してデータを保護します。ACL はオブジェクトごとの権限を定義でき、CLP はクラス全体のデフォルトのアクセスルールを設定します。
![Document image Document image](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/PdAyrw1nqA1QQJFuCc-4t_image.png?format=webp)
Back4App ダッシュボードで:
- 「データベース」に移動し、クラスを選択します(例: “Todo”)。
- 「クラスレベルの権限」を開きます。
- 読み取り、書き込み、または公開アクセスの制限を設定します。
SwiftでParseObjectを作成または更新する際に、ACLを設定できます。例えば:
これにより、指定されたユーザーのみがそのオブジェクトを読み取ったり変更したりできるようになります。ACLとCLPを組み合わせることで、アプリのデータに対する堅牢で層状のセキュリティモデルが形成されます。
クラウドコードを使用すると、クライアントに秘密を公開することなく、サーバー側のSwiftロジック(または元のParse Cloud Codeスタイルを使用する場合はJavaScript)を実行できます。これは、検証、トリガー、スケジュールされたタスクなどに最適です。
こちらはJavaScriptベースの例ですが、TypeScriptで作業したり、Swiftから呼び出したりすることもできます。あなたのBack4App Cloud Codeフォルダーに、次のように作成します:main.js:
NPMモジュールをインストールするには、package.jsonファイルに含めてから、main.jsで呼び出すことをお勧めします。デプロイ後、callFunctionを使用してSwiftコードからこれらの関数を呼び出すことができます。
Cloud Codeを次の方法でデプロイします:
Back4Appダッシュボードを通じてデプロイすることもできます。Cloud Code > Functionsに移動します。オンラインエディタにコードを貼り付けて、Deployをクリックします。
Back4Appの ダッシュボード では、ユーザーアカウント用のデフォルトの _User クラスが表示されます。必要に応じて、アプリの 認証設定 で追加の認証プロバイダー(Apple、Facebook、Googleなど)をオンにしてください。
Back4AppはGoogle、Apple、FacebookとのOAuthログインをサポートしています。これらのプロバイダーを 認証 設定ページで構成し、Swiftアプリ内で関連するParse Swift統合コード(例: ParseFacebookUtils または ParseAppleUtils) を使用して認証フローを処理します。詳細については、 ソーシャルログインのドキュメント を参照してください。
Back4Appに画像、動画、または任意のファイルを保存できます。Swiftでは、ParseFile:
次に、このファイルをParseObjectに添付して保存できます。ファイルのURLを取得して、他の場所で表示またはダウンロードします。
ファイルアクセスを制限するには、Parse Serverのファイル設定を使用できます。たとえば、認証されたユーザーのみがファイルをアップロードできるようにしたり、Swiftコードで読み取り/書き込みの権限を指定したりできます。
ユーザーのメールを検証することで、実際のアクティブなメールボックスを確保します。パスワードリセットは、ユーザーが認証情報を忘れた場合に安全にアカウントアクセスを回復するのに役立ちます。
「メール設定」に移動し、「メール認証」を有効にします。認証とリセットフローのためのメールテンプレートを編集してください。
Back4Appでサーバーサイドのタスクをスケジュールできます。例えば、古いデータのクリーンアップや週次レポートの送信です。Cloud Codeでジョブを定義し、Back4Appダッシュボードを通じてスケジュールします。
次に、Back4Appの「サーバー設定」 > 「バックグラウンドジョブ」で、毎日または任意の間隔で実行するようにスケジュールできます。
![クラウドジョブのスケジューリング クラウドジョブのスケジューリング](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/5wG60YnWIST74erryTb-u_image.png?format=webp)
ウェブフックは、特定のイベントが発生するたびにアプリが自動的にデータを外部サービスにPOSTできるようにします。これは、Slack、Stripe、または他のサードパーティAPIとの統合に最適です。
- Back4Appダッシュボードで、その他 > ウェブフックに移動します。
- ウェブフックエンドポイントを追加します(例:https://example.com/webhook)。
- トリガーを選択します(例:「Todo」でのオブジェクト作成)。
![ウェブフックの追加 ウェブフックの追加](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/morUMdwsAbVQ1EmBfUfAA_image.png?format=webp)
カスタムロジックの場合、Cloud Codeトリガーで外部URLにリクエストを発行することもできます。
![BeforeSave WebHook BeforeSave WebHook](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/fXvy4eRzabyWmN80OMyqW_image.png?format=webp)
「Back4App Admin App」は、非技術的またはサポートスタッフ向けのポイントアンドクリックインターフェースです。データに対してCRUD操作を行うためのシンプルなGUIを提供し、開発環境外でのデータ管理に最適です。
- アプリダッシュボードに移動 > もっと見る > 管理アプリ.
- 管理アプリを有効にし、サブドメインを選択します。
- 管理ユーザーを作成します。
![管理アプリを有効にする 管理アプリを有効にする](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/5BTk1ntDh9JLXurObmm_o_image.png?format=webp)
一度有効化されると、適切な資格情報を持つ誰でも、コードなしでユーザーフレンドリーなウェブインターフェースからデータを表示および編集できます。
この完全なチュートリアルに従うことで、あなたは Swiftのバックエンドを構築する方法 をBack4Appを使用して学びました。具体的には、あなたは:
- 安全なバックエンドを作成しました あなたのSwiftアプリのために。
- クラススキーマとデータ関係を持つ データベースを構成しました。
- リアルタイムクエリを使用しました (ライブクエリ)で即時更新を行いました。
- 堅牢なセキュリティを設定しました ACLとCLPを使用して。
- クラウドコードを使用しました サーバーサイドでカスタムロジックを実行するために。
- ユーザー認証を実装しました 検証とパスワードリセットを使用して。
- ファイルアップロードを処理しました 安全に。
- 自動化されたタスクをスケジュールしました クラウドジョブを使用して。
- Webhookについて学びました 外部APIを統合するために。
- 管理パネルを探りました 直接データ管理のために。
あなたは今、Swiftアプリケーションのための機能的でスケーラブルなバックエンドサービスを持っています—より複雑な機能を処理したり、サードパーティサービスに接続したり、より多くのユーザートラフィックに適応したりするために簡単に拡張できます。また、Back4AppのBaaS機能とSwiftのモダンな構文の組み合わせがバックエンド開発をどのように加速できるかを直接見てきました。
- プロダクション準備が整ったSwiftアプリを構築する UI/UXを具体化することで。
- 高度な機能を統合する 特殊な認証(役割ベース、SSO)や、ドメイン特有のルールのための追加のCloud Codeロジックなど。
- 公式のBack4Appドキュメントをチェックする ログ、分析、または高度なセキュリティについての詳細な情報を得るために。
- 他のチュートリアルを探る リアルタイムチャット、IoTダッシュボード、または位置情報ベースのアプリに関するもの。これらを外部APIと組み合わせて、実世界の課題を解決する。
これがBack4Appを使用してSwiftのバックエンドを構築する方法です!コーディングを楽しんでください!
![Doc contributor](https://s3.amazonaws.com/archbee-animals/cat.png)