Quickstarters
Feature Overview
How to Build a Backend for tvOS?
40 分
はじめに このチュートリアルでは、 tvos アプリのバックエンドを back4app を使用して構築する方法を学びます。 データベース管理、cloud code functions、rest および graphql api、ユーザー認証、リアルタイム(ライブクエリ)など、back4app の重要な機能を統合して、あなたの apple tv アプリとシームレスに通信する安全でスケーラブルなバックエンドを作成します。 back4app の効率的な環境と迅速なセットアップにより、サーバーやデータベースを手動で構成するのに比べて、時間が大幅に短縮されることがわかります。 その過程で、先進的なセキュリティ機能、クラウドジョブのスケジューリング、webhook 統合など、主要な機能を実際に体験します。 このチュートリアルの終わりまでには、この基盤構造を生産準備が整った tvos アプリに拡張したり、カスタムロジックやサードパーティの api を簡単に組み込む準備が整います。このガイドは、あなたの 高品質 なユーザー体験を apple tv で維持するのにも役立ちます。あなたの xcode プロジェクト と既存の ios 開発 知識を活用してください。 前提条件 このチュートリアルを完了するには、次のものが必要です back4app アカウントと新しい back4app プロジェクト back4app の始め方 https //www back4app com/docs/get started/new parse app アカウントをお持ちでない場合は、無料で作成できます。上記のガイドに従ってプロジェクトを準備してください。 xcode(最新の安定版)をインストール済み swift または swiftui を使用して tvos アプリ を構築します。mac app store から最新の xcode を入手してください。 parse swift sdk あなたの tvos アプリを接続するために parse swift sdk https //github com/netreconlab/parse swift を設定します。 swift と基本的な ios/tvos 開発の概念に精通していること apple tv に不慣れな場合は、まず apple tvos ドキュメント https //developer apple com/tvos/ または初心者向けのチュートリアルを確認してください。 始める前に、これらの前提条件がすべて整っていることを確認してください。back4appプロジェクトを準備し、ローカルのtvos xcodeプロジェクト を設定することで、より簡単に進めることができます。 ステップ1 – back4appで新しいプロジェクトを作成し接続する 新しいプロジェクトを作成する back4appでの tvosアプリのバックエンド を構築する最初のステップは、新しいプロジェクトを作成することです。まだ行っていない場合は、次の手順に従ってください back4appアカウントにログインする back4appダッシュボードの「新しいアプリ」ボタンをクリックする アプリに名前を付ける (例:「tvos バックエンド チュートリアル」)。 作成が完了すると、back4appダッシュボードにプロジェクトが表示されます。この新しいback4appプロジェクトは、このチュートリアルでカバーされるすべてのバックエンド設定の中心です。 parse swift sdkを接続する back4appは parse を利用してデータストレージ、ユーザー認証、リアルタイム機能などを処理します。あなたの tvosアプリ をback4appに接続するには、あなたの xcodeプロジェクト にparse swift sdkをインストールして設定します。 あなたのparseキーを取得する あなたのback4appダッシュボードで、「アプリ設定」または「セキュリティとキー」に移動して、あなたの アプリケーションid と クライアントキー を見つけてください。また、 parseサーバーurl も表示されます—一般的には https //parseapi back4app com です。 parse swift sdkをインストールする あなたのtvosプロジェクトに swiftパッケージマネージャー(推奨) xcodeで、 ファイル → パッケージを追加 を選択します。 parse swiftのgithub urlを入力します https //github com/netreconlab/parse swift git 適切なバージョンまたはメインブランチを選択します。 cocoapods cocoapodsを好む場合は、次の内容をpodfileに追加します pod 'parseswiftog' 次に pod install を実行します。 parseを初期化する には、あなたの appdelegate または @main 構造体で import parseswift import swiftui @main struct mytvosapp app { init() { task { do { try await parseswift initialize( applicationid "your app id", clientkey "your client key", serverurl url(string "https //parseapi back4app com")! ) } catch { print("error initializing parse \\\\(error)") } } } var body some scene { windowgroup { contentview() } } } これにより、あなたの tvosアプリ がback4appバックエンドと通信できるようになり、データを保存したり、クエリを実行したり、ユーザーを認証したり、その他の操作が可能になります。 ステップ2 – データベースの設定 データモデルの作成 あなたのtvosアプリがback4appに接続されたので、データを作成および管理できます。parse swiftでは、 parseobject 構造体を定義します struct gamescore parseobject { var objectid string? var createdat date? var updatedat date? var acl parseacl? var originaldata data? // custom fields var score int? var playername string? } back4appダッシュボードでクラスを手動で定義することもできます 「データベース」に移動 back4appコンソールで。 新しいクラスを作成 (例 「gamescore」)。 関連するカラムを追加 (スコア、プレイヤー名など)。 aiエージェントを使用したデータモデルの作成 back4appのaiエージェントは、スキーマを自動的に設計できます aiエージェントを開く back4appダッシュボードで。 モデルを説明する (例 「タイトルとiscompletedフィールドを持つtodoクラスを作成」)。 適用する そしてaiエージェントにスキーマを生成させる。 sdkを使用したデータの読み書き func savescore() async { var gamescore = gamescore() gamescore score = 1337 gamescore playername = "tvos fan" do { try await gamescore save() print("score saved successfully ") } catch { print("error saving score \\\\(error)") } } func fetchscores() async { let query = gamescore query() do { let results = try await query find() print("fetched scores \\\\(results)") } catch { print("error fetching scores \\\\(error)") } } rest apiを使用したデータの読み書き curl x post \\ h "x parse application id your app id" \\ h "x parse rest api key your rest api key" \\ h "content type application/json" \\ d '{"score" 9000, "playername" "applefan"}' \\ https //parseapi back4app com/classes/gamescore graphql apiを使用したデータの読み書き mutation { creategamescore(input { fields { score 420 playername "swiftie" } }) { gamescore { objectid score playername } } } ライブクエリを使用する(オプション) ライブクエリは、あなたの apple tv インターフェースでリアルタイムの更新を可能にします—特にマルチプレイヤーやリーダーボードアプリに便利です。 ライブクエリを有効にする あなたのアプリの サーバー設定 でback4app上で。 サブスクリプションを初期化する let subscription = gamescore query("score" > 1000) subscribecallback { event in switch event { case created(let score) print("new high score created \\\\(score)") case updated(let score) print("high score updated \\\\(score)") case deleted(let score) print("high score removed \\\\(score)") default break } } ステップ 3 – acl と clp を使用したセキュリティの適用 概要 back4app は、 acls (アクセス制御リスト)と clps (クラスレベルの権限)を使用してデータを保護します。オブジェクトまたはクラスレベルでの読み取り/書き込みルールを定義するために使用します。 クラスレベルの権限 データベースに移動 , クラスを選択します(例:gamescore)。 「セキュリティ」をクリック または「クラスレベルの権限」をクリックします。 誰が読み取り、書き込み、または削除できるかを設定 (例:認証されたユーザーのみ)。 コード内の acls var gamescore = gamescore() gamescore score = 500 // restrict read/write to only the current user var acl = parseacl() if let user = try? await user current() { acl setreadaccess(user user, value true) acl setwriteaccess(user user, value true) } gamescore acl = acl ステップ 4 – クラウドコード関数の作成 なぜクラウドコードなのか? クラウドコードを使用すると、クライアントから重要なロジックを安全なサーバーサイドコードにオフロードできます。これは、ビジネスルール、データ検証、またはtvosアプリ内の秘密を公開せずに行うサードパーティ統合に最適です。 例の関数 あなたの main js parse cloud define("awardbonus", async (request) => { const { objectid, bonus } = request params; const query = new parse query("gamescore"); const gamescore = await query get(objectid, { usemasterkey true }); gamescore increment("score", bonus); await gamescore save(null, { usemasterkey true }); return gamescore; }); デプロイメント back4app cli b4a configure accountkey b4a deploy または back4app dashboard → cloud code → functions → main js を使用します。 swiftからの呼び出し import parseswift func awardbonusscore(objectid string, bonus int) async { do { let result = try await parsecloud callfunction("awardbonus", with \[ "objectid" objectid, "bonus" bonus ]) print("updated score \\\\(result)") } catch { print("error awarding bonus \\\\(error)") } } npmモジュール あなたの package json , 依存関係を追加します { "dependencies" { "axios" "^0 27 0" } } 次に、cloud codeで使用するために main js にそれらをrequireまたはimportします。 ステップ5 – 認証の設定 back4appでのユーザー認証 tvosアプリは、しばしばユーザーデータの同期やログインが必要です。parseの parseuser は、安全なサインアップ、ログイン、セッション、およびロールベースのアクセスを提供します。 struct user parseuser { var objectid string? var createdat date? var updatedat date? var acl parseacl? var originaldata data? // essential var username string? var email string? var emailverified bool? var password string? var authdata \[string \[string string]?]? } サインアップ / ログイン func signupuser() async { var newuser = user() newuser username = "tvuser" newuser password = "secret" newuser email = "user\@example com" do { try await newuser signup() print("sign up successful ") } catch { print("error signing up \\\\(error)") } } func loginuser() async { do { let loggedin = try await user login(username "tvuser", password "secret") print("logged in as \\\\(loggedin username ?? "")") } catch { print("login error \\\\(error)") } } ソーシャルログイン 設定する facebookまたはappleサインイン https //www back4app com/docs/platform/sign in with apple 。次に、アカウントをリンクします try await user link(with apple(idtoken "token", rawnonce "nonce")) ステップ6 – ファイルストレージの取り扱い ファイルストレージの設定 ユーザー画像、ゲームリプレイ、またはアプリ資産を parsefile にアップロードします。 let filedata = data( ) // e g image bytes let file = parsefile(name "preview\ png", data filedata) do { let savedfile = try await file save() print("file uploaded \\\\(savedfile url)") } catch { print("error uploading file \\\\(error)") } 例 オブジェクトにファイルを添付します struct gamemedia parseobject { var objectid string? var createdat date? var updatedat date? var acl parseacl? var originaldata data? var screenshot parsefile? } セキュリティの考慮事項 ファイル参照を保護するためにclpまたはaclを使用します。ファイルの直接urlは、 ファイルセキュリティ https //www back4app com/docs/security/parse security を有効にしない限り、公開アクセス可能です。 ステップ7 – メール確認とパスワードリセット 概要 メール確認は、ユーザーのメールアカウントの所有権を確認するのに役立ちます。パスワードリセットは、アカウントアクセスを回復するための安全でユーザーフレンドリーな方法を提供します。 back4appダッシュボードの設定 アプリ内で → アプリ設定 → メール メール確認 または パスワードリセット を有効にします。 メールテンプレートを カスタマイズします。 コード実装 func requestpasswordreset(for email string) async { do { try await user passwordreset(email email) print("password reset link sent ") } catch { print("error requesting password reset \\\\(error)") } } ステップ8 – クラウドジョブによるタスクのスケジューリング クラウドジョブ 古いデータのクリーンアップや月次更新のメール送信など、定期的なタスクを自動化します parse cloud job("cleanupoldscores", async (request) => { const now = new date(); const thirtydaysago = new date(now 30 24 60 60 1000); const query = new parse query("gamescore"); query lessthan("createdat", thirtydaysago); const oldscores = await query find({ usemasterkey true }); await parse object destroyall(oldscores, { usemasterkey true }); return `deleted ${oldscores length} old scores `; }); 「 back4appダッシュボード → アプリ設定 → サーバー設定 → バックグラウンドジョブ 」で、「cleanupoldscores」を毎日実行するようにスケジュールします。 ステップ9 – ウェブフックの統合 定義 ウェブフック は、back4appアプリが外部サービスにイベントを送信できるようにします。これには、slackへの通知、stripeへの支払い更新、またはサーバーへの分析データの送信が含まれます。 設定 back4appダッシュボードで、「 その他 → ウェブフック → ウェブフックを追加 」を選択します。エンドポイント(例えば、「 https //myserver com/webhook endpoint 」)とトリガー(オブジェクトの更新、新しいレコードなど)を指定します。 例 新しいハイスコアが作成されたときにslackに通知します parse cloud aftersave("gamescore", async (request) => { const score = request object get("score"); await sendtoslack(`a new high score of ${score} was posted!`); }); ステップ10 – back4app管理パネルの探索 どこで見つけるか 「 back4app管理アプリ 」は、データを管理し、crudを実行し、クラスを編集するためのユーザーフレンドリーで、 モデル中心 のダッシュボードです。直接データベースクエリを必要とせずに操作できます。 「 アプリダッシュボード 」→「 その他 」→「 管理アプリ 」を介して有効にします。 機能 有効にすると、チームメンバーやクライアントを招待してデータを管理したり、ログを確認したり、プッシュ通知を調整したりできます。基本的に、あなたの tvosアプリ のバックエンドへの直接ポータルを提供します。 結論 この包括的なチュートリアルに従うことで、あなたは 安全なバックエンドを作成しました あなたの tvos アプリのために back4app を使用して。 データベースを構成しました クラス、データ型、関係を持つ。 リアルタイムクエリを設定しました 即時の変更を反映するために。 acl と clp を通じてセキュリティを適用しました カスタムビジネスロジックと統合のために cloud code を実装しました メール確認とパスワードリセットを通じて認証を有効にしました オプションのセキュリティコントロールを持つファイルアップロードを処理しました 定期的なタスクのために cloud jobs をスケジュールしました 外部サービスと統合するためにウェブフックを使用しました データを管理および監視するために管理パネルを探索しました あなたは今、リッチで 高品質な apple tv 経験を構築するための十分な準備が整いました。あなたの アプリは構築されました 強固な基盤の上に—あなたの tvos アプリ のアイデアを現実にすることを楽しんでください! 次のステップ tvos uiを洗練させる フォーカスベースのナビゲーション、大画面ユーザーフロー、そして app store のベストプラクティスを取り入れましょう。 セキュリティを強化する ロールベースのacl、マルチファクター認証、または高度な暗号化を追加しましょう。 スキルセットを深める オフラインキャッシングやカスタム分析など、より高度なparse swift機能を探求しましょう。 公式ドキュメントを確認する back4appドキュメント https //www back4app com/docs と apple tvosドキュメント https //developer apple com/tvos/ を参照して、より深い知識を得ましょう。 マネタイズ サブスクリプションやペイパービューを検討して、ストリーミングビジネスの可能性を広げましょう。 このガイドの基本をもとに、革新を続け、新しい機能を統合していくことができます。あなたの tvosアプリ を次のレベルに引き上げることを祈っています!