Androidのバックエンドを構築する方法は?
このチュートリアルでは、Back4Appを使用して、完全なバックエンドを構築する方法を学びます。 Android (Java) アプリケーションのために。
データベース管理、Cloud Code Functions、RESTおよびGraphQL API、ユーザー認証、リアルタイムクエリ(ライブクエリ)など、Back4Appの重要な機能を統合する方法を説明し、Androidクライアントとシームレスに通信する安全でスケーラブル、かつ堅牢なバックエンドを作成します。
Back4Appの迅速なセットアップと直感的な環境が、サーバーやデータベースを手動で構成するのに比べて、時間と労力を大幅に削減できることもわかります。
その過程で、Cloud Jobsを使用したタスクのスケジューリングや、外部統合のためのWebhookの設定など、主要な機能に関する実践的な経験を得ることができます。
このチュートリアルの終わりまでには、この基盤となるセットアップを本番環境に適したアプリケーションに拡張する準備が整い、必要に応じてカスタムロジックやサードパーティAPIを簡単に組み込むことができるようになります。
このチュートリアルを完了するには、次のものが必要です:
- 基本的なAndroid (Java) 開発環境 これを使用して設定できます。Android Studioまたは同様のツール。最新のAndroid SDKがインストールされていることを確認してください。
- Java (バージョン8以上) Androidプロジェクトをコンパイルして実行するにはJavaが必要です。
始める前に、これらの前提条件がすべて整っていることを確認してください。Back4Appプロジェクトを設定し、ローカルのAndroid環境を準備しておくと、より簡単に進めることができます。
Back4AppでAndroidバックエンドを構築する最初のステップは、新しいプロジェクトを作成することです。まだ作成していない場合は、次の手順に従ってください:
- Back4Appアカウントにログインする.
- 「新しいアプリ」ボタンをクリックする Back4Appダッシュボードで。
- アプリに名前を付ける(例:「Android-Backend-Tutorial」)。
![Document image Document image](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/drXO0UqsgxhFvRDiVmsMb_image.png?format=webp)
プロジェクトが作成されると、Back4Appダッシュボードにリスト表示されます。このプロジェクトは、このチュートリアルで説明するすべてのバックエンド設定の基盤となります。
Back4Appは、データを管理し、リアルタイム機能を提供し、ユーザー認証を処理するためにParseプラットフォームに依存しています。AndroidアプリケーションをBack4Appに接続するには、Parse Android 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 SDKをインストールする あなたのAndroidプロジェクトにこれらの行を追加することで module-level build.gradle:
Jitpackリポジトリが必要な場合は、あなたの root build.gradle:
あなたのAndroidアプリケーションでParseを初期化する: カスタム Application クラスを作成する(例: App.java) そして AndroidManifest.xmlを設定する:
次に、このカスタム Application クラスをあなたの AndroidManifest.xml:
このステップを完了することで、あなたのAndroidフロントエンドとBack4Appバックエンドの間に安全な接続が確立されました。すべてのリクエストとデータトランザクションはこのSDKを通じて安全にルーティングされ、手動のRESTまたはGraphQL呼び出しの複雑さが軽減されます(必要に応じてそれらを使用することもできます)。
Back4Appプロジェクトが設定され、Parse SDKがAndroidアプリに統合されたので、データの保存と取得を開始できます。レコードを作成して保存する一般的な方法は、ParseObjectクラスを使用することです:
データをクエリするには:
また、Back4AppのREST APIエンドポイントを使用することもできます:
Back4Appはまた、GraphQLインターフェースを提供しています:
これらの多様なオプションにより、Parse Android SDK、REST、またはGraphQLを通じて、開発プロセスに最適な方法でデータ操作を統合できます。
デフォルトでは、Parseは スキーマを動的に作成することを許可します, ただし、より多くの制御のためにBack4Appダッシュボードでクラスとデータ型を定義することもできます。
- Back4Appダッシュボードの「データベース」セクションに移動します。
- 新しいクラスを作成します(例:「GameScore」)および関連するカラムを追加します。
![新しいクラスを作成 新しいクラスを作成](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/iaZ_P-7epc_LSMFIPlaZV_image.png?format=webp)
Back4Appはさまざまなデータ型もサポートしています: 文字列, 数値, ブール値, オブジェクト, 日付, ファイル, ポインタ、配列、リレーション, ジオポイント, およびポリゴン. 各フィールドに適切な型を選択できます。
![カラムを作成 カラムを作成](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オブジェクトを指すGameScoreオブジェクト—ParseでPointersまたはRelationsを使用できます。例えば:
クエリを実行する際、ポインタデータを含めることができます:
リアルタイムの更新のために、Back4AppはLive Queriesを提供します。Androidアプリから特定のクラスの変更にサブスクライブできます:
- ライブクエリを有効にするには、Back4Appダッシュボードのアプリのサーバー設定で行います。
- コード内でライブクエリを初期化する必要があります。
Androidでは、通常、Parse LiveQuery Androidライブラリを使用してサブスクライブします。手順は他のプラットフォームと似ていますが、LiveQueryClientを統合します。
次に:
購読することで、新しいレコードが作成、更新、または削除されるたびにリアルタイム通知を受け取ります。この機能は、複数のユーザーがページを更新せずに最新のデータを確認する必要があるコラボレーション型または動的なアプリに特に価値があります。
Back4App は、アクセス制御リスト (ACL) と クラスレベルの権限 (CLP)を提供することで、セキュリティを真剣に考えています。これらの機能により、オブジェクトまたはクラスごとにデータの読み取りや書き込みを制限でき、認可されたユーザーのみがデータを変更できるようになります。
![Document image Document image](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/PdAyrw1nqA1QQJFuCc-4t_image.png?format=webp)
ACLは個々のオブジェクトに適用され、どのユーザー、役割、または一般の人々が読み取り/書き込み操作を行うことができるかを決定します。例えば:
![ACLを編集 ACLを編集](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/3YNfxEcv7CKdLC6ca8my6_image.png?format=webp)
CLPは、クラス全体のデフォルトの権限を管理します。たとえば、クラスが一般に読み取り可能または書き込み可能か、または特定の役割のみがアクセスできるかどうかです。
- Back4appダッシュボードに移動, アプリを選択し、データベースセクションを開きます。
- クラスを選択(例: “GameScore”)。
- クラスレベルの権限タブを開きます。
- デフォルトを設定します。
![Document image Document image](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/MF1Uf7HSJF03Xg6djap9m_image.png?format=webp)
これらの権限はベースラインを設定し、ACLは個々のオブジェクトの権限を微調整します。堅牢なセキュリティモデルは通常、CLP(広範な制限)とACL(オブジェクトごとの細かい制限)を組み合わせます。詳細については、アプリセキュリティガイドラインをご覧ください。
Cloud Codeは、サーバー側でカスタムJavaScriptコードを実行できるParse Server環境の機能です。サーバーやインフラを管理する必要はありません。Cloud Codeを書くことで、Back4Appのバックエンドを追加のビジネスロジック、バリデーション、トリガー、そしてParse Server上で安全かつ効率的に実行される統合で拡張できます。
クライアントから送信されたテキスト文字列の長さを計算するシンプルなCloud Code関数:
- Back4App CLI:
- ダッシュボード: アプリのダッシュボードに移動し、Cloud Code > Functions. コードをmain.jsにコピー/ペーストし、Deployをクリックします。
![Document image Document image](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/pGxBQFBhk4prMc8Ub-uho_image.png?format=webp)
Parse SDKを使用してAndroid(Java)から:
REST(レスト)またはGraphQLを介して呼び出すこともできます。この柔軟性により、AndroidフロントエンドやRESTまたはGraphQLをサポートする他のクライアントにカスタムロジックを統合できます。
Back4Appは、Parse Userクラスを認証の基盤として活用しています。デフォルトでは、Parseはパスワードのハッシュ化、セッショントークン、セキュアストレージを処理します。これにより、複雑なセキュリティフローを手動で設定する必要がありません。
Javaを使用したAndroidアプリケーションで、新しいユーザーを作成できます:
既存のユーザーにログインします:
RESTを介したログインは次のようになります:
成功したログインの後、Parseはユーザーオブジェクトに保存された セッショントークン を作成します。現在ログインしているユーザーを確認できます:
ログアウトすることができます:
Back4appとParseは、 Googleや Facebookのような一般的なOAuthプロバイダーと統合できます。たとえば、 Facebookログインを設定するには、 Facebook App IDを構成し、Android用の専用Parse FacebookUtilsを使用します。詳細な手順は異なるため、 ソーシャルログインのドキュメントを参照してください。
メール確認とパスワードリセットを有効にするには:
- Back4Appダッシュボードのメール設定に移動します。
- メール確認を有効にする。
- 送信元アドレスを構成するとメールテンプレート。
これにより、ユーザーのメールが有効であることが確認され、安全なパスワード回復方法が提供されます。
Parseには、ファイルアップロードを処理するための ParseFileクラスが含まれており、Back4appは安全に保存します:
オブジェクトにファイルを添付する:
ファイルのURLを取得する:
Parse Serverは、匿名ユーザーまたは認証されたユーザーがファイルをアップロードできるかどうかを制御するなど、ファイルアップロードのセキュリティを管理するための柔軟な設定を提供します。より高度な設定については、ドキュメントを確認してください。
メールを確認することで、新しいユーザーがサインアップに使用したメールアドレスを所有していることを確認します。パスワードリセットにより、ユーザーは安全にアカウントを回復できます。
- メール確認を有効にする: アプリのダッシュボードで、メール設定に移動します。
- パスワードリセットを有効にする: パスワードリセットのメールフローを設定します。
Javaでのパスワードリセットのトリガー:
Back4Appのクラウドジョブを使用して、古いデータのクリーンアップや毎日のメール送信などの定期的なタスクをスケジュールします。例:
それをBack4Appダッシュボード > アプリ設定 > サーバー設定 > バックグラウンドジョブでスケジュールします。
![クラウドジョブのスケジューリング クラウドジョブのスケジューリング](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/5wG60YnWIST74erryTb-u_image.png?format=webp)
ウェブフックは、特定のイベントが発生したときに、Back4Appアプリが外部サービスにHTTPリクエストを送信できるようにします。例えば、Stripeのようなサードパーティサービスにデータを送信することができます。
- ウェブフックに移動し、Back4Appダッシュボード > その他 > WebHooksを選択します。
- 外部エンドポイントでウェブフックを追加します。
- 関連イベントのためにトリガーを設定します。
![ウェブフックの追加 ウェブフックの追加](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/morUMdwsAbVQ1EmBfUfAA_image.png?format=webp)
「Back4app管理アプリ」は、非技術的ユーザー向けに設計されたウェブベースの管理インターフェースです。コードを書くことなく、迅速なCRUD操作と日常的なデータ管理を可能にします。
- 「アプリダッシュボード」に移動し、 > その他 > 「管理アプリ」を選択し、「管理アプリを有効化」をクリックします。
![管理者アプリを有効にする 管理者アプリを有効にする](https://images.archbee.com/yD3zCY-NNBBIfd0uqcfR5/5BTk1ntDh9JLXurObmm_o_image.png?format=webp)
最初の管理者ユーザーを作成し、サブドメインを設定すると、データ管理用のWeb UIが利用可能になります。
この包括的なチュートリアルに従うことで、あなたは:
- 安全なバックエンドを作成しました(Android(Java)アプリ用のBack4App上)。
- データベースを構成しました。クラススキーマ、データ型、関係を含みます。
- リアルタイムクエリを統合しました(ライブクエリ)で即時データ更新を実現しました。
- セキュリティ対策を適用しました。ACLとCLPを使用してデータアクセスを保護および管理します。
- クラウドコードを実装しました。サーバー側でカスタムビジネスロジックを実行します。
- ユーザー認証を設定しました。メール確認とパスワードリセットをサポートします。
- ファイルのアップロードを管理しました。オプションのファイルセキュリティコントロールを含みます。
- クラウドジョブをスケジュールしました。自動化されたバックグラウンドタスクのために。
- Webhookを使用して外部サービスと統合しました。
- Back4App管理パネルを探索しました。データ管理のために。
堅牢なAndroidフロントエンド(Java)と強力なBack4Appバックエンドを備え、機能豊富でスケーラブルかつ安全なアプリケーションを開発する準備が整いました。より高度な機能を探求し、ビジネスロジックを統合し、Back4Appの力を活用して、サーバーとデータベースの管理にかかる無数の時間を節約してください。コーディングを楽しんでください!
- 本番環境向けのAndroidアプリを構築する このバックエンドを拡張して、より複雑なデータモデル、キャッシング戦略、パフォーマンス最適化を処理します。
- 高度な機能を統合する 専門的な認証フロー、役割ベースのアクセス制御、または外部API(支払いゲートウェイなど)など。
- Back4appの公式ドキュメントをチェックする 高度なセキュリティ、パフォーマンス調整、ログ分析についての詳細な情報を得るために。
- 他のチュートリアルを探る リアルタイムチャットアプリケーション、IoTダッシュボード、または位置情報ベースのサービスに関するもの。ここで学んだ技術をサードパーティのAPIと組み合わせて、複雑な実世界のアプリケーションを作成できます。
![Doc contributor](https://s3.amazonaws.com/archbee-animals/cat.png)