Quickstarters
CRUD Samples
iOS向けCRUDアプリをObjective-Cで構築する方法?
25 分
概要 このウォークスルーでは、objective cを使用してios向けのシンプルなcrud(作成、読み取り、更新、削除)アプリケーションを作成する方法を発見します。 データを管理するためにback4appをバックエンドとして利用し、iosアプリとのスムーズな統合を確保します。このガイドでは、back4appプロジェクトの設定から、parse ios sdkを使用した基本的なcrud操作の実装まで、すべてをカバーします。 最初に、「 basic crud app ios 」というタイトルのback4appプロジェクトを設定します。このプロジェクトはデータリポジトリとして機能し、itemsやusersなどのクラスを使用して柔軟なデータモデルを設計することができます。これらのクラスはback4appダッシュボードで手動で定義するか、統合されたaiエージェントを活用してプロセスを簡素化することができます。 バックエンドの設定が完了したら、それをobjective cのiosアプリケーションに統合します。このチュートリアルには、parse sdkを初期化し、crud操作を実行し、安全なユーザー認証を実装するためのコード例が含まれています。 このチュートリアルの終わりまでに、基本的なcrud機能と安全なユーザー管理を行う、商用利用可能なiosアプリケーションを構築することができます。 重要な概念 objective cを使用して堅牢なバックエンドを持つios crudアプリを開発する方法を学びます。 back4appを使用してスケーラブルなバックエンドを設計し、統合する方法を理解します。 効率的なデータ管理のためにback4appの管理アプリを活用します。 parse ios sdkを使用してaclとユーザー認証による安全なデータ処理を実装します。 前提条件 始める前に、次のことを確認してください アクティブなプロジェクトを持つback4appアカウント。 助けが必要ですか? back4appの始め方 https //www back4app com/docs/get started/new parse app を参照してください。 設定されたios開発環境を持つxcodeがインストールされている。 このチュートリアルはobjective cとios開発に精通していることを前提としています。 オブジェクト指向プログラミングとrest apiの基本的な理解。 必要に応じて、 objective cのドキュメント https //developer apple com/library/archive/documentation/cocoa/conceptual/programmingwithobjectivec/introduction/introduction html を復習してください。 ステップ 1 – プロジェクトの初期化 back4app プロジェクトの作成 back4app アカウントにログインします。 ダッシュボードの「新しいアプリ」ボタンをクリックします 。 プロジェクトに名前を付けます basic crud app ios と画面の指示に従って設定を完了します。 新しいプロジェクトを作成 作成が完了すると、プロジェクトがダッシュボードに表示され、アプリのデータ管理の基盤となります。 ステップ 2 – データモデルの作成 データ構造の設定 この ios crud アプリでは、back4app プロジェクト内で主要なクラスを定義する必要があります。以下は主なクラスとそのフィールドです 1\ アイテムクラス このクラスは各アイテムの詳細を保存します。 フィールド データ型 目的 id オブジェクトid 自動生成された一意の識別子。 タイトル 文字列 アイテムの名前。 説明 文字列 アイテムの簡単な要約。 作成日時 日付 アイテムが作成されたタイムスタンプ。 更新日時 日付 最後の更新のタイムスタンプ。 2\ ユーザークラス このクラスはユーザーの資格情報と認証を管理します。 フィールド データ型 目的 id オブジェクトid 自動生成された識別子。 ユーザー名 文字列 ユーザーのためのユニークなユーザー名。 メール 文字列 ユーザーのユニークなメールアドレス。 パスワードハッシュ 文字列 安全に保存されたユーザーパスワード。 作成日時 日付 アカウント作成のタイムスタンプ。 更新日時 日付 最終変更タイムスタンプ。 これらのクラスはback4appダッシュボードを介して設定できます。 新しいクラスを作成 データ型を選択し、フィールドに名前を付け、デフォルト値を割り当て、必須フィールドにマークを付けることでフィールドを追加します。 カラムを作成 back4app aiエージェントを使用したスキーマ設計 統合されたaiエージェントは、あなたの説明に基づいてデータスキーマを自動的に構築できます。この機能はセットアッププロセスを簡素化し、データモデルがアプリの要件を満たすことを保証します。 aiエージェントの使用方法 aiエージェントにアクセスする back4appダッシュボードを開き、プロジェクト設定内のaiエージェントに移動します。 データモデルの詳細を記入する 必要なクラスとフィールドを説明するプロンプトを入力します。 レビューと確認 aiがスキーマ提案を生成したら、それをレビューし、変更を適用することを確認します。 例のプロンプト create the following classes in my back4app project 1\) class items \ fields \ id objectid (auto generated) \ title string \ description string \ createdat date (auto generated) \ updatedat date (auto updated) 2\) class users \ fields \ id objectid (auto generated) \ username string (unique) \ email string (unique) \ passwordhash string \ createdat date (auto generated) \ updatedat date (auto updated) この方法は時間を節約し、データ構造の一貫性を確保します。 ステップ3 – 管理アプリの有効化とデータ管理 管理アプリの概要 back4appの管理アプリは、バックエンドデータを管理するためのユーザーフレンドリーでノーコードのインターフェースを提供します。ドラッグアンドドロップ機能を使用すると、レコードを簡単に作成、表示、変更、削除できます。 管理アプリの有効化 「その他」メニューに移動 あなたのback4appダッシュボードで。 「管理アプリ」を選択 をクリックし、 「管理アプリを有効にする」。 管理アカウントを設定 初期の資格情報を設定することで、 b4aadminuser のようなシステムロールも構成されます。 管理アプリを有効にする 有効化後、管理アプリにログインしてデータを効率的に管理します。 管理アプリダッシュボード 管理アプリを通じたcrud操作の管理 管理アプリ内で、あなたは レコードを追加 クラス内で「レコードを追加」をクリックして新しいデータを挿入します。 レコードを編集 任意のレコードを選択してそのフィールドを表示または更新します。 レコードを削除 もはや必要のないエントリを削除します。 この簡素化されたインターフェースは、データ管理タスクを大幅に簡素化します。 ステップ 4 – あなたのiosアプリケーションをback4appに接続する バックエンドが設定されたら、次のステップはparse ios sdkを使用してあなたのiosアプリをback4appと統合することです。 オプションa:objective cでparse ios sdkを利用する parse sdkを含める: xcodeプロジェクトにparseフレームワークを追加します。次の内容を追加することでcocoapodsを使用できます podfile pod 'parse' アプリのappdelegateでparseを初期化する あなたの appdelegate m を開き、 application\ didfinishlaunchingwithoptions メソッドに初期化コードを追加します // appdelegate m \#import \<parse/parse h> \ (bool)application (uiapplication )application didfinishlaunchingwithoptions (nsdictionary )launchoptions { \[parse initializewithconfiguration \[parseclientconfiguration configurationwithblock ^(id\<parsemutableclientconfiguration> configuration) { configuration applicationid = @"your application id"; configuration clientkey = @"your ios key"; configuration server = @"https //parseapi back4app com"; }]]; return yes; } objective cでcrudメソッドを実装する: サービスクラスを作成します。例えば、 itemsservice m 、crud操作を処理するために: // itemsservice m \#import "itemsservice h" \#import \<parse/parse h> @implementation itemsservice \ (void)createitemwithtitle (nsstring )title description (nsstring )description { pfobject item = \[pfobject objectwithclassname @"items"]; item\[@"title"] = title; item\[@"description"] = description; \[item saveinbackgroundwithblock ^(bool succeeded, nserror error) { if (succeeded) { nslog(@"item created successfully "); } else { nslog(@"error creating item %@", error localizeddescription); } }]; } \ (void)fetchitemswithcompletion (void (^)(nsarray items, nserror error))completion { pfquery query = \[pfquery querywithclassname @"items"]; \[query findobjectsinbackgroundwithblock ^(nsarray objects, nserror error) { completion(objects, error); }]; } \ (void)updateitemwithobjectid (nsstring )objectid newtitle (nsstring )newtitle newdescription (nsstring )newdescription { pfquery query = \[pfquery querywithclassname @"items"]; \[query getobjectinbackgroundwithid\ objectid block ^(pfobject item, nserror error) { if (item) { item\[@"title"] = newtitle; item\[@"description"] = newdescription; \[item saveinbackgroundwithblock ^(bool succeeded, nserror error) { if (succeeded) { nslog(@"item updated successfully "); } else { nslog(@"error updating item %@", error localizeddescription); } }]; } else { nslog(@"error fetching item %@", error localizeddescription); } }]; } \ (void)deleteitemwithobjectid (nsstring )objectid { pfquery query = \[pfquery querywithclassname @"items"]; \[query getobjectinbackgroundwithid\ objectid block ^(pfobject item, nserror error) { if (item) { \[item deleteinbackgroundwithblock ^(bool succeeded, nserror error) { if (succeeded) { nslog(@"item deleted successfully "); } else { nslog(@"error deleting item %@", error localizeddescription); } }]; } else { nslog(@"error fetching item %@", error localizeddescription); } }]; } @end オプションb restまたはgraphqlの利用 parse sdkを使用したくない場合は、restful api呼び出しを通じてback4appと対話できます。たとえば、restを介してアイテムを取得するには \#import \<foundation/foundation h> @interface restclient nsobject \+ (void)fetchitems; @end @implementation restclient \+ (void)fetchitems { nsurl url = \[nsurl urlwithstring @"https //parseapi back4app com/classes/items"]; nsmutableurlrequest request = \[nsmutableurlrequest requestwithurl\ url]; \[request sethttpmethod @"get"]; \[request setvalue @"your application id" forhttpheaderfield @"x parse application id"]; \[request setvalue @"your rest api key" forhttpheaderfield @"x parse rest api key"]; nsurlsessiondatatask datatask = \[\[nsurlsession sharedsession] datataskwithrequest\ request completionhandler ^(nsdata data, nsurlresponse response, nserror error) { if (error) { nslog(@"error fetching items %@", error localizeddescription); } else { nsstring result = \[\[nsstring alloc] initwithdata\ data encoding\ nsutf8stringencoding]; nslog(@"response %@", result); } }]; \[datatask resume]; } @end プロジェクトのニーズに最も適したアプローチを選択してください。 ステップ 5 – バックエンドのセキュリティ アクセス制御リスト (acl) の設定 データを保護するために、オブジェクトの acl を設定します。たとえば、所有者のみに表示されるアイテムを作成するには \#import \<parse/parse h> \ (void)createprivateitemwithtitle (nsstring )title description (nsstring )description owner (pfuser )owner { pfobject item = \[pfobject objectwithclassname @"items"]; item\[@"title"] = title; item\[@"description"] = description; pfacl acl = \[pfacl aclwithuser\ owner]; \[acl setpublicreadaccess\ no]; \[acl setpublicwriteaccess\ no]; item acl = acl; \[item saveinbackgroundwithblock ^(bool succeeded, nserror error) { if (succeeded) { nslog(@"private item created "); } else { nslog(@"error saving item %@", error localizeddescription); } }]; } クラスレベルの権限 (clp) の設定 back4app ダッシュボードを使用して clp を調整し、認証されたユーザーのみが特定のクラスにアクセスできるようにします。 ステップ 6 – ユーザー認証の実装 ユーザーアカウントの管理 back4app は、ユーザー認証を管理するために parse のネイティブユーザークラスを活用しています。ios アプリケーションでは、次のように登録とログインを実装できます \#import \<parse/parse h> @interface authservice nsobject \+ (void)signupwithusername (nsstring )username password (nsstring )password email (nsstring )email; \+ (void)loginwithusername (nsstring )username password (nsstring )password; @end @implementation authservice \+ (void)signupwithusername (nsstring )username password (nsstring )password email (nsstring )email { pfuser user = \[pfuser user]; user username = username; user password = password; user email = email; \[user signupinbackgroundwithblock ^(bool succeeded, nserror error) { if (succeeded) { nslog(@"user successfully registered!"); } else { nslog(@"sign up error %@", error localizeddescription); } }]; } \+ (void)loginwithusername (nsstring )username password (nsstring )password { \[pfuser loginwithusernameinbackground\ username password\ password block ^(pfuser user, nserror error) { if (user) { nslog(@"user logged in %@", user username); } else { nslog(@"login failed %@", error localizeddescription); } }]; } @end このアプローチは、セッション管理、パスワードリセット、追加の認証機能にも拡張されます。 ステップ7 – 結論と今後の方向性 おめでとうございます!あなたはobjective cを使用して、back4appと完全に統合されたios crudアプリケーションを成功裏に構築しました。 このガイドを通じて、あなたは「 basic crud app ios 」というプロジェクトを設定し、アイテムとユーザーのためのコアクラスを設計し、admin appを使用してバックエンドを管理しました。 さらに、parse ios sdkを使用してアプリを接続し、crud操作を実装し、aclでデータを保護しました。 次のステップ: アプリケーションを拡張する: 高度な検索、詳細なアイテムビュー、またはリアルタイム更新などの追加機能を組み込みます。 バックエンド機能を強化する: クラウド機能を探求し、サードパーティapiを統合するか、役割ベースのアクセス制御を洗練させます。 専門知識を深める: さらなる洞察とチュートリアルのために、 back4appのドキュメント https //www back4app com/docs を訪問してください。 コーディングを楽しんで、ios crudプロジェクトの成功を祈っています!