Quickstarters
CRUD Samples
Building a CRUD App with Jetpack Compose?
26 分
概要 このガイドでは、android用のjetpack composeを使用してcrud(作成、読み取り、更新、削除)アプリケーションを開発する方法を学びます。 back4appと統合することで、データ操作を効果的に管理する方法を示します。 プロジェクトは、「 basic crud app jetpackcompose 」という名前のback4appインスタンスを設定することから始まります。これは、堅実なバックエンドインフラストラクチャとして機能します。 特定のコレクションとフィールドを定義することによって、最適なデータベーススキーマを設計する方法を概説します。これは手動で行うことも、back4appのai駆動ツールを活用することもできます。これにより、アプリのデータ構造がシームレスなcrud操作に十分な堅牢性を持つことが保証されます。 次に、データ管理を簡素化するユーザーフレンドリーなドラッグアンドドロップインターフェースであるback4app管理コンソールを設定します。これにより、crudアクションを簡単に実行できます。 最後に、jetpack composeのフロントエンドをback4appに接続します。これには、該当する場合はparse android sdkまたは直接rest api呼び出しを利用し、強力なセキュリティ対策を施した高度なアクセス制御を実施します。 このチュートリアルの終わりまでに、ユーザー認証と安全なデータ処理を備えた基本的なcrud機能をサポートするandroidアプリケーションを持つことになります。 学べること jetpack composeを使用してandroid上にcrudベースのアプリケーションを構築する方法。 back4appを使用してスケーラブルなバックエンドを作成する方法。 データ操作のための直感的なback4app管理コンソールの使用戦略。 parse android sdkまたはrest apiとの統合技術。 前提条件 進む前に、以下の準備が整っていることを確認してください 新しく作成したプロジェクトを持つback4appアカウント。 支援が必要な場合は、 back4appの始め方 https //www back4app com/docs/get started/new parse app を確認してください。 android studioを使用したandroid開発環境。 最新のandroid studioとkotlinがインストールされていることを確認してください。 kotlin、jetpack compose、およびrestful apiに関する知識。 簡単な復習のために、 jetpack composeのドキュメント https //developer android com/jetpack/compose を訪れてください。 ステップ 1 – プロジェクトの開始 back4appプロジェクトの作成 back4appアカウントにサインインします。 ダッシュボードから「新しいアプリ」オプションを選択します。 プロジェクトに名前を付けます basic crud app jetpackcompose として、セットアッププロセスを完了します。 新しいプロジェクトを作成 セットアップが完了すると、プロジェクトはback4appコンソールに表示され、バックエンド構成の基盤が整います。 ステップ 2 – データベーススキーマの作成 データ構造の概要 このcrudアプリでは、いくつかのコレクションを定義します。以下は、必要なフィールドとデータ型を含むサンプルコレクションであり、バックエンドがデータを処理する準備が整っていることを確認します。 1\ コレクション アイテム このコレクションは、各エントリの詳細を保存するために使用されます。 フィールド タイプ 詳細 id オブジェクトid 自動生成された一意の識別子。 タイトル 文字列 アイテムの名前またはタイトル。 説明 文字列 アイテムの簡単な概要。 作成日時 日付 アイテムが追加された時刻。 更新日時 日付 最後の更新のタイムスタンプ。 2\ コレクション ユーザー このコレクションはユーザープロフィールと認証データを管理します。 フィールド タイプ 説明 id オブジェクトid 自動生成された主キー。 ユーザー名 文字列 ユニークユーザー識別子。 メール 文字列 ユーザーのユニークなメールアドレス。 パスワードハッシュ 文字列 セキュリティのための暗号化されたパスワード。 作成日時 日付 アカウント作成のタイムスタンプ。 更新日時 日付 最後のアカウント更新タイムスタンプ。 back4appのダッシュボードを介して新しいクラスを作成し、必要なカラムを指定することで、これらのコレクションとフィールドを手動で追加できます。 新しいクラスを作成 各列をデータ型を選択し、名前を付け、デフォルト値を割り当て、必須かどうかを決定することで設定できます。 列を作成 back4appのaiを活用したスキーマ設定 back4appのaiツールは、希望するコレクションとフィールドを概説するプロンプトを解釈することによって、データベーススキーマの作成を自動化できます。この機能はプロジェクトの設定を大幅に加速します。 aiツールの使い方 aiツールにアクセスする back4appコンソールにログインし、aiセクションに移動します。 スキーマの説明を入力する コレクションとそれに対応するフィールドを概説する詳細なプロンプトを提供します。 レビューと適用 生成後、提案されたスキーマを確認し、プロジェクトに統合します。 aiプロンプトのサンプル create the following collections in my back4app project collection items \ fields \ id objectid (auto generated) \ title string \ description string \ created at date (auto assigned) \ updated at date (auto updated) collection users \ fields \ id objectid (auto generated) \ username string (unique) \ email string (unique) \ password hash string \ created at date (auto assigned) \ updated at date (auto updated) このaiメソッドを使用することで、データベースが正しく構造化され、アプリのニーズに最適化されることが保証されます。 ステップ3 – 管理コンソールの有効化とcrud機能の管理 管理コンソールの紹介 back4appの管理コンソールは、バックエンドデータを簡単に監視および操作できる多用途のノーコードソリューションです。その直感的なインターフェースは、ドラッグアンドドロップのcrud操作をサポートし、データ管理を簡単にします。 管理コンソールの有効化 「その他」セクションに移動 あなたのback4appダッシュボードで。 「管理コンソール」を選択 そして次に選択します 「管理コンソールを有効化」。 管理者の資格情報を設定 最初の管理者ユーザーを登録することで、必要な役割とシステムコレクションも確立されます。 管理アプリを有効化 有効化されたら、管理コンソールにログインしてコレクションを管理します。 管理アプリダッシュボード コンソールを介したcrudアクションの実行 管理コンソール内で、あなたは レコードを追加 コレクション内の「レコードを追加」機能を使用して(例えば、アイテム)、新しいエントリを挿入します。 レコードを表示/編集 任意のレコードをクリックして、そのフィールドを確認または修正します。 レコードを削除 削除オプションを選択して、古いレコードを排除します。 この簡素化されたインターフェースは、バックエンド操作をアクセスしやすく効率的にすることで生産性を向上させます。 ステップ4 – jetpack composeとback4appの接続 バックエンドが設定されたので、jetpack composeで構築したandroidアプリをback4appにリンクする時が来ました。 オプションa parse android sdkの利用 parse sdkの依存関係を追加します: あなたの build gradle ファイルを更新します implementation 'com parse\ parse android\ latest version' アプリケーションクラスでparseを初期化します: アプリケーションクラスを作成または更新します(例: myapplication kt ) // myapplication kt package com example basiccrud import android app application import com parse parse class myapplication application() { override fun oncreate() { super oncreate() parse initialize( parse configuration builder(this) applicationid("your application id") clientkey("your client key") server("https //parseapi back4app com") build() ) } } compose画面でcrudを実装します: 例えば、アイテムをリストする画面を作成します // itemsscreen kt package com example basiccrud import androidx compose foundation layout import androidx compose foundation lazy lazycolumn import androidx compose foundation lazy items import androidx compose material button import androidx compose material text import androidx compose runtime import androidx compose ui modifier import androidx compose ui unit dp import com parse parseobject import com parse parsequery import kotlinx coroutines dispatchers import kotlinx coroutines withcontext @composable fun itemsscreen() { var items by remember { mutablestateof(listof\<parseobject>()) } launchedeffect(unit) { withcontext(dispatchers io) { val query = parsequery getquery\<parseobject>("items") try { val result = query find() items = result } catch (e exception) { e printstacktrace() } } } column(modifier = modifier padding(16 dp)) { text(text = "アイテム", modifier = modifier padding(bottom = 8 dp)) lazycolumn { items(items) { item > row( modifier = modifier fillmaxwidth() padding(8 dp), horizontalarrangement = arrangement spacebetween ) { text(text = item getstring("title") ? "タイトルなし") button(onclick = { / 編集アクションをトリガー / }) { text(text = "編集") } } } } } } オプションb restまたはgraphqlを使用する parse sdkを使用しないことを好む場合は、restful apiまたはgraphqlを使用してback4appと直接対話できます。たとえば、restを介してアイテムを取得するには suspend fun fetchitems() { try { val response = khttp get( url = "https //parseapi back4app com/classes/items", headers = mapof( "x parse application id" to "your application id", "x parse rest api key" to "your rest api key" ) ) // process json response accordingly } catch (e exception) { e printstacktrace() } } 必要に応じて、これらのapi呼び出しをcomposeコンポーネントに統合します。 ステップ5 – バックエンドのセキュリティ アクセス制御リスト(acl)の実装 aclをオブジェクトに割り当てることでデータセキュリティを強化します。たとえば、所有者のみがアクセスできるレコードを作成するには suspend fun createsecureitem(itemdata map\<string, string>, owneruser parseobject) { val item = parseobject("items") item put("title", itemdata\["title"]) item put("description", itemdata\["description"]) // define acl so that only the owner has read/write privileges val acl = parseacl(owneruser) acl publicreadaccess = false acl publicwriteaccess = false item acl = acl try { item save() println("secure item saved successfully") } catch (e exception) { e printstacktrace() } } クラスレベルの権限 (clp) の設定 back4app コンソール内で、各コレクションの clp を調整します。これにより、認可されたユーザーまたは認証されたユーザーのみが機密データにアクセスできるようになります。 ステップ 6 – ユーザー認証の管理 ユーザーアカウントの設定 back4appは、認証管理のためにparseの組み込みuserクラスを利用します。jetpack composeアプリでは、parse sdkを使用してユーザーのサインアップとログインを処理します。 以下は、composeを使用したサインアップ画面の例です // signupscreen kt package com example basiccrud import androidx compose foundation layout import androidx compose material button import androidx compose material outlinedtextfield import androidx compose material text import androidx compose runtime import androidx compose ui modifier import androidx compose ui unit dp import com parse parseuser @composable fun signupscreen() { var username by remember { mutablestateof("") } var email by remember { mutablestateof("") } var password by remember { mutablestateof("") } column(modifier = modifier padding(16 dp)) { outlinedtextfield( value = username, onvaluechange = { username = it }, label = { text("username") }, modifier = modifier fillmaxwidth() ) spacer(modifier = modifier height(8 dp)) outlinedtextfield( value = email, onvaluechange = { email = it }, label = { text("email") }, modifier = modifier fillmaxwidth() ) spacer(modifier = modifier height(8 dp)) outlinedtextfield( value = password, onvaluechange = { password = it }, label = { text("password") }, modifier = modifier fillmaxwidth() ) spacer(modifier = modifier height(16 dp)) button(onclick = { val user = parseuser() user username = username user email = email user setpassword(password) user signupinbackground { e > if (e == null) { println("user registered successfully!") } else { println("registration error ${'$'}{e message}") } } }) { text(text = "sign up") } } } ログインやセッション管理のために、同様の画面を実装できます。ソーシャルサインイン、メール確認、パスワード回復などの追加機能は、back4appのコンソールを通じて管理できます。 ステップ 7 – (該当なし) 注意 このモバイルアプリの文脈では、web経由のデプロイは該当しません。 ステップ 8 – 最終的な考えと次のステップ おめでとうございます!あなたは今、jetpack composeとback4appを使用して完全なcrudアプリケーションを開発しました。 あなたは basic crud app jetpackcompose というプロジェクトを設定し、アイテムとユーザーのための効果的なデータベーススキーマを設計し、データ管理を容易にするためにback4app管理コンソールを利用しました。 さらに、あなたはandroidフロントエンドをback4appと統合し、その過程で堅牢なセキュリティ対策を適用しました。 次は何ですか? compose uiを拡張する 詳細なアイテムビュー、検索機能、ライブデータ更新などの追加機能でアプリケーションを強化します。 バックエンドロジックを追加する cloud functionsを使用したり、サードパーティapiを統合したり、役割ベースのアクセス制御を実装することを検討してください。 さらなる学習 パフォーマンスを最適化し、カスタム統合を探るために、 back4appのドキュメント https //www back4app com/docs や追加のcomposeチュートリアルを探求してください。 このチュートリアルに従うことで、あなたはjetpack composeとback4appを使用してandroidアプリケーションのための安全で効率的なcrudバックエンドを構築するためのツールを手に入れました。コーディングを楽しんでください!