クイックスターターズ

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

39min

はじめに

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

Parse Swift SDKをSwiftUIプロジェクトに統合し、データベース管理、Cloud Code関数、RESTおよびGraphQL API、ユーザー認証、リアルタイムクエリなどの重要なBack4App機能を活用して、安全でスケーラブルなバックエンドを作成する方法をお見せします。

このアプローチにより、データを安全に保存し、サーバーサイドの操作を自分のインフラを設定することなく実行し、必要に応じてiOSアプリウェブアプリを簡単にスケールさせることができます。

Back4appの迅速なセットアップと直感的な環境が、独自のサーバーとデータベースを手動で構成するのに比べて、時間と労力を大幅に削減できることもご覧いただけます。

最後には、SwiftUIのバックエンドを構築する方法を理解し、プロダクション環境に拡張したり、カスタムロジックやAPIと統合したりできるようになります。

最小限のオーバーヘッドで、堅牢でスケーラブルなバックエンドを作成することを始めましょう!

前提条件

  • Back4appアカウントと新しいBack4appプロジェクト Back4appの始め方。 アカウントをお持ちでない場合は、無料で作成できます。上記のガイドに従ってプロジェクトを準備してください。
  • 基本的なSwiftUI開発環境 マシンにXcodeをインストールし、基本的なSwiftUIまたはiOSアプリプロジェクトを設定する必要があります。
  • Swift Package ManagerまたはCocoaPods Parse Swift SDKを追加するために。Parse Swift SDKドキュメント。
  • SwiftとSwiftUIに関する知識 SwiftUIが初めての場合は、始める前にAppleのSwiftUIドキュメント。を確認してください。

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

ステップ1 – Back4appプロジェクトの設定

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

Back4AppでSwiftUIバックエンドを構築する最初のステップは、新しいプロジェクトを作成することです。まだ作成していない場合は、次の手順に従ってください:

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


プロジェクトが作成されると、Back4appダッシュボードにリスト表示されます。このプロジェクトは、このチュートリアルで説明するすべてのバックエンド設定の基盤となります。

Parse Swift SDKを接続する

Back4appは、データを管理し、リアルタイム機能を提供し、ユーザー認証を処理するためにParseプラットフォームに依存しています。SwiftUIアプリケーションをBack4appに接続するには、Parse Swift SDKをインストールし、Back4appダッシュボードの資格情報で初期化する必要があります。

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

Document image


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

Swift Package Manager」を使用している場合は、プロジェクトをXcodeで開いて、次に:

  1. ファイルパッケージを追加 → URLを入力します https://github.com/netreconlab/Parse-Swift.git.
  2. 次のメジャーまで」をバージョンルールから選択し、確認します。

CocoaPods」を使用している場合は、:

Bash


アプリでParseを初期化する。例えば、あなたのアプリ構造体の中で:

Swift


このステップを完了することで、SwiftUIフロントエンドとBack4appバックエンドの間に安全な接続が確立されました。すべてのリクエストとデータトランザクションはParse Swift SDKによって処理され、手動のRESTまたはGraphQL呼び出しの複雑さが軽減されます(必要に応じてそれらを使用することもできます)。

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

データの保存とクエリ

Back4appプロジェクトが設定され、Parse Swift SDKが統合されたので、データの保存と取得を開始できます。以下はシンプルな ParseObject の例です。仮に Todo 構造体があるとします:

Swift


新しいTodoの保存:

Swift


すべてのTodoをクエリ:

Swift


また、 Back4appのREST API エンドポイントや GraphQL:

Curl


GraphQL:

GraphQL


複数のオプション(Parse Swift SDK、REST、GraphQL)を持つことで、ワークフローに最適なアプローチを選択できます。

スキーマ設計とデータ型

デフォルトでは、Parseは スキーマを動的に作成する, ことを許可していますが、より多くの制御のためにBack4appダッシュボードでクラスを定義することもできます。

  1. 「データベース」セクションに移動する Back4appダッシュボードで。
  2. 新しいクラスを作成する(例:「Todo」)を作成し、次のような関連するカラムを追加します。 title(String)と isCompleted(Boolean)。
新しいクラスを作成
新しいクラスを作成


Back4appはさまざまなデータ型をサポートしています: String, Number, Boolean, Object, Date, File, Pointer, Array, Relation, GeoPoint, そして Polygon. 各フィールドに適切な型を選択できます。

カラムを作成
カラムを作成


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

  1. アプリダッシュボードから AIエージェント を開きます。
  2. データモデルを 簡単な言葉で 説明します(例: “新しいToDoクラスのスキーマを作成してください。”)。
  3. AIエージェントにスキーマを生成させます
Document image


リレーショナルデータ

リレーショナルデータがある場合—例えば、Categoryオブジェクトが複数のTodoアイテムを指している場合—ParseでPointersまたはRelationsを使用できます。例えば:

Swift


クエリを実行する際には、includeポインターデータを含めることもできます:

Swift


ライブクエリ

リアルタイムの更新のために、Back4appはライブクエリを提供します。SwiftUIアプリでは、特定のクラスの変更にサブスクライブできます:

  1. ライブクエリを有効にするには、サーバー設定の下でBack4appダッシュボードを使用します。
  2. コードでサブスクライブすることができます。
Swift


サーバー上でTodoが作成、更新、または削除されるたびに、アプリがリアルタイムで通知を受け取ります。この機能は、即時データ同期が必要な共同作業や動的なアプリに非常に便利です。

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

Back4appのセキュリティメカニズム

Back4appは アクセス制御リスト (ACL)クラスレベルの権限 (CLP) を提供し、堅牢なデータセキュリティを実現します。これにより、オブジェクトごとまたはクラスごとにデータの読み取りや書き込みを制限でき、認可されたユーザーのみがデータを変更できるようになります。

Document image


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

ACLは個々のオブジェクトに適用されます。たとえば、特定のユーザーのみがTodoを読み書きできるようにするには:

Swift


クラスレベルの権限 (CLP)

CLPは クラス全体のデフォルトを管理します。たとえば、クラスが公開されているかどうか、または特定の役割のみがアクセスできるかどうかなどです。

  1. Back4appダッシュボードに移動し、アプリを選択します。
  2. データベース」セクションを開き、クラスを選択します(例: Todo)。
  3. クラスレベルの権限タブを開きます。
  4. 「認証が必要」や「アクセス不可」などのデフォルトを設定します。
Document image


これらの権限は広範なベースラインを設定し、ACLはオブジェクトレベルでセキュリティを微調整することを可能にします。両方を組み合わせることで、強力なセキュリティモデルが確保されます。詳細については、アプリセキュリティガイドラインをご覧ください。

ステップ4 – クラウドファンクションの作成とデプロイ

クラウドコードは、サーバーを管理することなく、カスタムサーバーサイドのSwift(またはJavaScript)コードを実行することを可能にします。これは、クライアントから実行すべきでないビジネスロジック、データ検証、トリガー、またはバックエンド統合を追加するのに最適です。

動作の仕組み

  • クラウドコードをのようなファイルに記述します main.js(JavaScript)またはSwiftベースのクラウドコード環境を活用します。
  • デプロイをBack4appプロジェクトに行います。コードはParse Serverの環境で実行されるため、自分のサーバーを維持する必要はありません。
  • 呼び出すクライアントからSwift SDK、REST、またはGraphQLを介してクラウドコードを呼び出します。

典型的な使用例

  • ビジネスロジック: 複雑なデータ検証、フィールド計算、または外部統合。
  • データトリガー: オブジェクトが保存、更新、または削除されたときにロジックを実行します。
  • セキュリティ: クライアントからの敏感な操作を保護するために、サーバーサイドで実行します。

例の関数

以下はサンプル JavaScript Cloud Code(Cloud Codeは主にBack4AppでJSを使用するため)で、テキストの長さを計算します:

main.js


CLIを介してデプロイ

  1. インストール Back4app CLI.
  2. アカウントキーを設定してください:
Bash

  1. デプロイ Cloud Code:
Bash


関数を呼び出す

Swiftから:

Swift


REST経由:

Curl


ステップ5 – ユーザー認証の設定

Back4appにおけるユーザー認証

Back4appは、ParseUserクラスを使用して安全な認証を処理します。パスワードのハッシュ化、セッショントークン、およびデータは自動的に処理され、アプリのロジックに集中できます。

ユーザー認証の設定

新しいユーザーをサインアップ:

Swift


既存のユーザーにログイン:

Swift


セッショントークンはParseによって自動的に処理されます。ログアウトするには:

Swift


ソーシャルログイン統合

次のサービスとの統合が可能です: Google, Apple, Facebook, など、追加の設定が必要です。詳細については、ソーシャルログインドキュメントを確認してください。

メール確認とパスワードリセット

Back4appダッシュボードでメール確認を有効にし、ユーザーが安全にアカウントを回復できるようにパスワードリセットメールを設定します。パスワードリセットのためには:

Swift


ステップ 6 – ファイルストレージの取り扱い

ファイルのアップロードと取得

Parse にはファイルアップロードを扱うための ParseFile が含まれています:

Swift


それを ParseObject に添付します:

Swift


ファイルのセキュリティ

デフォルトでは、ファイルは公開URLを介してアクセス可能です。 Parse Serverの設定 を使用してファイルのセキュリティを構成できます。 より厳格なファイル管理を行うには、認証されたユーザーまたは指定された役割のみがファイルをアップロードまたは取得できるようにしてください。

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

クラウドジョブを使用すると、データのクリーンアップやメールの送信などの定期的なタスクをスケジュールして実行できます。

JS


デプロイ後、 スケジュールを設定するには、Back4app ダッシュボードの サーバー設定 > バックグラウンドジョブを参照してください。

Document image


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

ウェブフックを使用すると、特定のイベントが発生したときに、Back4app アプリが外部サービス(Stripe など)に HTTP リクエストを送信できます。これは、サードパーティツールや他の サーバーサイド統合にフックするのに役立ちます。

  1. Back4app ダッシュボードの ウェブフックに移動します > その他 > ウェブフック.
  2. エンドポイントを追加します(例: https://your-service.com/webhook)。
  3. どのイベント(例:Todoクラスの新しいレコード)がウェブフックをトリガーするかを設定します。
Webhookの追加
Webhookの追加


たとえば、ユーザーが新しいTodoを作成するたびにSlackメッセージを送信することができます。これにより、外部サービスをBack4appデータと同期させることができます。

ステップ9 – Back4app管理パネルの探索

Back4app管理アプリ」は、非技術的なユーザーがデータに対してCRUD操作を行うためのウェブベースの管理インターフェースです。これは、Parse Dashboardとは別のユーザーフレンドリーなUIを提供し、プロダクションでのデータ管理を容易にします。

管理アプリの有効化

アプリダッシュボード > その他 > 管理アプリ」に移動し、「管理アプリを有効にする」をクリックします。

管理アプリを有効にする
管理アプリを有効にする


管理ユーザーを作成, これにより自動的に管理ロールと関連クラスが生成されます。管理インターフェースのサブドメインを選択し、シンプルなポイントアンドクリックUIを介してデータを管理するためにログインします。

Document image


結論

この包括的なガイドに従うことで、あなたは以下のことを学びました:

  • SwiftUIのバックエンドを構築する方法 をBack4appとParse Swift SDKを使用して。
  • データを保存する方法 カスタムクラススキーマとリレーションシップを使用して安全に。
  • リアルタイムクエリを統合する方法 (ライブクエリ)で即時データ更新を行う。
  • セキュリティ対策を適用する方法 ACLとCLPを使用してデータアクセスを保護し管理する。
  • ビジネスロジックを実行する方法 クラウドコードを介して。
  • ファイルストレージを扱う方法, 認証、クラウドジョブを使用したバックグラウンドタスクのスケジューリング。
  • 統合する方法 ウェブフックを使用して外部サービスとアプリを。

これらのスキルを持っていれば、管理が容易で、安全で、スケールアップの準備が整った iOSアプリ または ウェブアプリ を構築できます。役割ベースの権限、プッシュ通知、または高度なキャッシングなど、より高度な機能を探求してください。他のAPIを統合したり、特定のユースケースに合わせてクラウドコードを調整することもできます。

楽しいコーディング, そして Back4App で素晴らしいアプリを作ることを楽しんでください!

次のステップ

  • プロダクション対応の SwiftUI アプリ: このバックエンドを拡張して、より複雑なデータモデル、キャッシング、パフォーマンスの向上を処理します。
  • 高度な機能: 専門的な認証、役割ベースのアクセス、またはサードパーティの API 統合(Stripe など)に深く掘り下げます。
  • Back4app の公式ドキュメントを探る: サーバーサイドのセキュリティ、ログ分析、そして高度なデータベース調整についての詳細を学びます。
  • 追加のチュートリアルをチェック: リアルタイムチャット、位置情報サービス、またはマルチテナントアプリケーション—ここで学んだ方法を外部 API と組み合わせて、洗練された実世界のソリューションを作成します。