SwiftUIのためのバックエンドを構築する方法は?
このチュートリアルでは、Back4Appを使用して、SwiftUIのiOSアプリの完全なバックエンドを構築する方法を学びます。
Parse Swift SDKをSwiftUIプロジェクトに統合し、データベース管理、Cloud Code関数、RESTおよびGraphQL API、ユーザー認証、リアルタイムクエリなどの重要なBack4App機能を活用して、安全でスケーラブルなバックエンドを作成する方法をお見せします。
このアプローチにより、データを安全に保存し、サーバーサイドの操作を自分のインフラを設定することなく実行し、必要に応じてiOSアプリやウェブアプリを簡単にスケールさせることができます。
Back4appの迅速なセットアップと直感的な環境が、独自のサーバーとデータベースを手動で構成するのに比べて、時間と労力を大幅に削減できることもご覧いただけます。
最後には、SwiftUIのバックエンドを構築する方法を理解し、プロダクション環境に拡張したり、カスタムロジックやAPIと統合したりできるようになります。
最小限のオーバーヘッドで、堅牢でスケーラブルなバックエンドを作成することを始めましょう!
- 基本的なSwiftUI開発環境 マシンにXcodeをインストールし、基本的なSwiftUIまたはiOSアプリプロジェクトを設定する必要があります。
始める前に、これらがすべて整っていることを確認してください。Back4appプロジェクトを設定し、ローカルのSwiftUI環境を準備することで、より簡単に進めることができます。
Back4AppでSwiftUIバックエンドを構築する最初のステップは、新しいプロジェクトを作成することです。まだ作成していない場合は、次の手順に従ってください:
- Back4appアカウントにログインする。
- Back4appダッシュボードの「新しいアプリ」ボタンをクリックする。
- アプリに名前を付ける(例:「SwiftUI-Backend-Tutorial」)。
![Document image Document image](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/drXO0UqsgxhFvRDiVmsMb_image.png?format=webp)
プロジェクトが作成されると、Back4appダッシュボードにリスト表示されます。このプロジェクトは、このチュートリアルで説明するすべてのバックエンド設定の基盤となります。
Back4appは、データを管理し、リアルタイム機能を提供し、ユーザー認証を処理するためにParseプラットフォームに依存しています。SwiftUIアプリケーションをBack4appに接続するには、Parse Swift SDKをインストールし、Back4appダッシュボードの資格情報で初期化する必要があります。
Parseキーを取得する: Back4appダッシュボードで、アプリの「アプリ設定」または「セキュリティとキー」セクションに移動して、アプリケーションIDとクライアントキー(またはJavaScriptキー)を見つけてください。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 Package Manager」を使用している場合は、プロジェクトをXcodeで開いて、次に:
- ファイル → パッケージを追加 → URLを入力します https://github.com/netreconlab/Parse-Swift.git.
- 「次のメジャーまで」をバージョンルールから選択し、確認します。
「CocoaPods」を使用している場合は、:
アプリでParseを初期化する。例えば、あなたのアプリ構造体の中で:
このステップを完了することで、SwiftUIフロントエンドとBack4appバックエンドの間に安全な接続が確立されました。すべてのリクエストとデータトランザクションはParse Swift SDKによって処理され、手動のRESTまたはGraphQL呼び出しの複雑さが軽減されます(必要に応じてそれらを使用することもできます)。
Back4appプロジェクトが設定され、Parse Swift SDKが統合されたので、データの保存と取得を開始できます。以下はシンプルな ParseObject の例です。仮に Todo 構造体があるとします:
新しいTodoの保存:
すべてのTodoをクエリ:
また、 Back4appのREST API エンドポイントや GraphQL:
GraphQL:
複数のオプション(Parse Swift SDK、REST、GraphQL)を持つことで、ワークフローに最適なアプローチを選択できます。
デフォルトでは、Parseは スキーマを動的に作成する, ことを許可していますが、より多くの制御のためにBack4appダッシュボードでクラスを定義することもできます。
- 「データベース」セクションに移動する Back4appダッシュボードで。
- 新しいクラスを作成する(例:「Todo」)を作成し、次のような関連するカラムを追加します。 title(String)と isCompleted(Boolean)。
![新しいクラスを作成 新しいクラスを作成](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/iaZ_P-7epc_LSMFIPlaZV_image.png?format=webp)
Back4appはさまざまなデータ型をサポートしています: String, Number, Boolean, Object, Date, File, Pointer, Array, Relation, GeoPoint, そして Polygon. 各フィールドに適切な型を選択できます。
![カラムを作成 カラムを作成](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/DEh9vyxdBTZcslXxkVQMA_image.png?format=webp)
Back4appは、データモデルの設計を手助けする AIエージェント も提供しています:
- アプリダッシュボードから AIエージェント を開きます。
- データモデルを 簡単な言葉で 説明します(例: “新しいToDoクラスのスキーマを作成してください。”)。
- AIエージェントにスキーマを生成させます。
![Document image Document image](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/0snNZwHWzxuXlNu30n7IA_image.png?format=webp)
リレーショナルデータがある場合—例えば、Categoryオブジェクトが複数のTodoアイテムを指している場合—ParseでPointersまたはRelationsを使用できます。例えば:
クエリを実行する際には、includeポインターデータを含めることもできます:
リアルタイムの更新のために、Back4appはライブクエリを提供します。SwiftUIアプリでは、特定のクラスの変更にサブスクライブできます:
- ライブクエリを有効にするには、サーバー設定の下でBack4appダッシュボードを使用します。
- コードでサブスクライブすることができます。
サーバー上でTodoが作成、更新、または削除されるたびに、アプリがリアルタイムで通知を受け取ります。この機能は、即時データ同期が必要な共同作業や動的なアプリに非常に便利です。
Back4appは アクセス制御リスト (ACL) と クラスレベルの権限 (CLP) を提供し、堅牢なデータセキュリティを実現します。これにより、オブジェクトごとまたはクラスごとにデータの読み取りや書き込みを制限でき、認可されたユーザーのみがデータを変更できるようになります。
![Document image Document image](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/PdAyrw1nqA1QQJFuCc-4t_image.png?format=webp)
ACLは個々のオブジェクトに適用されます。たとえば、特定のユーザーのみがTodoを読み書きできるようにするには:
CLPは クラス全体のデフォルトを管理します。たとえば、クラスが公開されているかどうか、または特定の役割のみがアクセスできるかどうかなどです。
- Back4appダッシュボードに移動し、アプリを選択します。
- 「データベース」セクションを開き、クラスを選択します(例: Todo)。
- クラスレベルの権限タブを開きます。
- 「認証が必要」や「アクセス不可」などのデフォルトを設定します。
![Document image Document image](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/MF1Uf7HSJF03Xg6djap9m_image.png?format=webp)
これらの権限は広範なベースラインを設定し、ACLはオブジェクトレベルでセキュリティを微調整することを可能にします。両方を組み合わせることで、強力なセキュリティモデルが確保されます。詳細については、アプリセキュリティガイドラインをご覧ください。
クラウドコードは、サーバーを管理することなく、カスタムサーバーサイドのSwift(またはJavaScript)コードを実行することを可能にします。これは、クライアントから実行すべきでないビジネスロジック、データ検証、トリガー、またはバックエンド統合を追加するのに最適です。
- クラウドコードをのようなファイルに記述します main.js(JavaScript)またはSwiftベースのクラウドコード環境を活用します。
- デプロイをBack4appプロジェクトに行います。コードはParse Serverの環境で実行されるため、自分のサーバーを維持する必要はありません。
- 呼び出すクライアントからSwift SDK、REST、またはGraphQLを介してクラウドコードを呼び出します。
- ビジネスロジック: 複雑なデータ検証、フィールド計算、または外部統合。
- データトリガー: オブジェクトが保存、更新、または削除されたときにロジックを実行します。
- セキュリティ: クライアントからの敏感な操作を保護するために、サーバーサイドで実行します。
以下はサンプル JavaScript Cloud Code(Cloud Codeは主にBack4AppでJSを使用するため)で、テキストの長さを計算します:
- アカウントキーを設定してください:
- デプロイ Cloud Code:
Swiftから:
REST経由:
Back4appは、ParseUserクラスを使用して安全な認証を処理します。パスワードのハッシュ化、セッショントークン、およびデータは自動的に処理され、アプリのロジックに集中できます。
新しいユーザーをサインアップ:
既存のユーザーにログイン:
セッショントークンはParseによって自動的に処理されます。ログアウトするには:
次のサービスとの統合が可能です: Google, Apple, Facebook, など、追加の設定が必要です。詳細については、ソーシャルログインドキュメントを確認してください。
Back4appダッシュボードでメール確認を有効にし、ユーザーが安全にアカウントを回復できるようにパスワードリセットメールを設定します。パスワードリセットのためには:
Parse にはファイルアップロードを扱うための ParseFile が含まれています:
それを ParseObject に添付します:
デフォルトでは、ファイルは公開URLを介してアクセス可能です。 Parse Serverの設定 を使用してファイルのセキュリティを構成できます。 より厳格なファイル管理を行うには、認証されたユーザーまたは指定された役割のみがファイルをアップロードまたは取得できるようにしてください。
クラウドジョブを使用すると、データのクリーンアップやメールの送信などの定期的なタスクをスケジュールして実行できます。
デプロイ後、 スケジュールを設定するには、Back4app ダッシュボードの サーバー設定 > バックグラウンドジョブを参照してください。
![Document image Document image](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/5wG60YnWIST74erryTb-u_image.png?format=webp)
ウェブフックを使用すると、特定のイベントが発生したときに、Back4app アプリが外部サービス(Stripe など)に HTTP リクエストを送信できます。これは、サードパーティツールや他の サーバーサイド統合にフックするのに役立ちます。
- Back4app ダッシュボードの ウェブフックに移動します > その他 > ウェブフック.
- エンドポイントを追加します(例: https://your-service.com/webhook)。
- どのイベント(例:Todoクラスの新しいレコード)がウェブフックをトリガーするかを設定します。
![Webhookの追加 Webhookの追加](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/morUMdwsAbVQ1EmBfUfAA_image.png?format=webp)
たとえば、ユーザーが新しいTodoを作成するたびにSlackメッセージを送信することができます。これにより、外部サービスをBack4appデータと同期させることができます。
「Back4app管理アプリ」は、非技術的なユーザーがデータに対してCRUD操作を行うためのウェブベースの管理インターフェースです。これは、Parse Dashboardとは別のユーザーフレンドリーなUIを提供し、プロダクションでのデータ管理を容易にします。
「アプリダッシュボード > その他 > 管理アプリ」に移動し、「管理アプリを有効にする」をクリックします。
![管理アプリを有効にする 管理アプリを有効にする](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/5BTk1ntDh9JLXurObmm_o_image.png?format=webp)
管理ユーザーを作成, これにより自動的に管理ロールと関連クラスが生成されます。管理インターフェースのサブドメインを選択し、シンプルなポイントアンドクリックUIを介してデータを管理するためにログインします。
![Document image Document image](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/jOFU8C0qiFm6wiVZXS9l0_image.png?format=webp)
この包括的なガイドに従うことで、あなたは以下のことを学びました:
- SwiftUIのバックエンドを構築する方法 をBack4appとParse Swift SDKを使用して。
- データを保存する方法 カスタムクラススキーマとリレーションシップを使用して安全に。
- リアルタイムクエリを統合する方法 (ライブクエリ)で即時データ更新を行う。
- セキュリティ対策を適用する方法 ACLとCLPを使用してデータアクセスを保護し管理する。
- ビジネスロジックを実行する方法 クラウドコードを介して。
- ファイルストレージを扱う方法, 認証、クラウドジョブを使用したバックグラウンドタスクのスケジューリング。
- 統合する方法 ウェブフックを使用して外部サービスとアプリを。
これらのスキルを持っていれば、管理が容易で、安全で、スケールアップの準備が整った iOSアプリ または ウェブアプリ を構築できます。役割ベースの権限、プッシュ通知、または高度なキャッシングなど、より高度な機能を探求してください。他のAPIを統合したり、特定のユースケースに合わせてクラウドコードを調整することもできます。
楽しいコーディング, そして Back4App で素晴らしいアプリを作ることを楽しんでください!
- プロダクション対応の SwiftUI アプリ: このバックエンドを拡張して、より複雑なデータモデル、キャッシング、パフォーマンスの向上を処理します。
- 高度な機能: 専門的な認証、役割ベースのアクセス、またはサードパーティの API 統合(Stripe など)に深く掘り下げます。
- Back4app の公式ドキュメントを探る: サーバーサイドのセキュリティ、ログ分析、そして高度なデータベース調整についての詳細を学びます。
- 追加のチュートリアルをチェック: リアルタイムチャット、位置情報サービス、またはマルチテナントアプリケーション—ここで学んだ方法を外部 API と組み合わせて、洗練された実世界のソリューションを作成します。