Quickstarters
CRUD Samples
iOS向けCRUDアプリをSwiftで開発する方法?
25 分
概要 このウォークスルーでは、ios用のシンプルなcrud(作成、読み取り、更新、削除)アプリケーションの構築をガイドします。 back4appをクラウドバックエンドとして使用し、プロジェクトの設定、柔軟なデータモデルの設計、swiftを使用したcrud機能の実装方法を学びます。 このチュートリアルでは、parse ios sdkまたはrest apiを利用して、iosアプリをback4appと統合する方法を示し、スムーズなデータ管理と安全な認証を確保します。 最初に、あなたのアプリのためのスケーラブルで非関係型データベースを提供するback4appプロジェクト— basic crud app ios —を設定します。データ構造を定義するために、クラスとフィールドを手動で作成するか、back4appのaiエージェントを使用します。 次に、データ操作を簡素化するために設計されたドラッグアンドドロップツールである直感的なback4app管理アプリを使用して、バックエンドを管理する方法を探ります。 最後に、iosアプリケーションをバックエンドに接続し、適用可能な場合はparse ios sdkまたはrest/graphql api呼び出しを使用し、安全なユーザー認証を組み込みます。 このガイドの終わりまでに、コアcrud操作を実行し、安全なユーザーサインインとデータ処理を含む、商用利用可能なiosアプリケーションを構築することができます。 主な洞察 効率的なバックエンドを持つios crudアプリケーションを作成する方法を学びます。 スケーラブルなバックエンドを設計し、それをiosアプリとシームレスに接続する方法を理解します。 データの作成、取得、変更、削除を簡素化するためにback4app管理アプリを使用する方法を発見します。 コンテナ化されたデプロイメントのオプションや、iosプロジェクトのさらなる強化を探ります。 前提条件 始める前に、次のことを確認してください アクティブなプロジェクトを持つback4appアカウント。 助けが必要ですか? back4appの始め方 https //www back4app com/docs/get started/new parse app を参照してください。 ios開発環境。 xcode(バージョン12以降)を使用し、開発環境が最新であることを確認してください。 swift、オブジェクト指向プログラミング、rest apiの基本をしっかり理解していること。 詳細については、 swiftのドキュメント https //developer apple com/swift/ を参照してください。 ステップ1 – プロジェクトの設定 新しいback4appプロジェクトの作成 back4appアカウントにログインします。 ダッシュボードから「新しいアプリ」ボタンをクリックします。 プロジェクトに名前を付けます basic crud app ios と入力し、画面の指示に従って設定を完了します。 新しいプロジェクトを作成 プロジェクトが作成されると、ダッシュボードに表示され、バックエンド設定の基盤が整います。 ステップ2 – データモデルの作成 データ構造の定義 このios crudアプリケーションでは、back4appプロジェクト内にいくつかのクラス(コレクション)を確立します。以下は、crud操作をサポートするために必要な主要なクラスとそのフィールドです。 1\ アイテムクラス このクラスは各アイテムに関する情報を保存します。 フィールド データ型 説明 id オブジェクトid 自動生成された一意の識別子。 タイトル 文字列 アイテムの名前またはタイトル。 説明 文字列 アイテムに関する簡単な要約または詳細。 作成日時 日付 アイテムが作成された時刻のマーク。 更新日時 日付 アイテムの最後の更新を示すタイムスタンプ。 2\ ユーザークラス このクラスはユーザーの資格情報と認証データを管理します。 フィールド データ型 説明 id オブジェクトid 自動生成された一意の識別子。 ユーザー名 文字列 ユーザーのユニーク識別子。 メール 文字列 ユーザーのユニークなメールアドレス。 パスワードハッシュ 文字列 安全な認証のための暗号化されたパスワード。 作成日時 日付 アカウントが作成された日時。 更新日時 日付 最新のアカウント更新のタイムスタンプ。 これらのクラスとフィールドをback4appダッシュボードで直接定義できます。 新しいクラスを作成 データ型を選択し、フィールドに名前を付け、デフォルト値を設定し、必要に応じて必須としてマークすることで、列を追加できます。 カラムを作成 スキーマ設定のためのback4app aiエージェントの活用 ダッシュボードに統合されたaiエージェントは、説明からデータスキーマを自動的に生成できます。これにより、セットアップが効率化され、データモデルが必要なすべてのcrud操作をサポートすることが保証されます。 aiエージェントの使用方法 aiエージェントを開く back4appダッシュボードのプロジェクト設定からアクセスします。 データモデルを説明する クラスとそれぞれのフィールドを詳細に説明する包括的なプロンプトを提供します。 レビューと実装 提案されたスキーマを確認し、設定を適用することを確認します。 例のプロンプト 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) このai駆動のアプローチは時間を節約し、iosアプリのための一貫した最適化されたデータ構造を保証します。 ステップ3 – 管理アプリの起動とcrud操作の管理 管理アプリの概要 back4app管理アプリは、バックエンドデータを効率的に管理するためのノーコードインターフェースを提供します。ユーザーフレンドリーなドラッグアンドドロップ機能により、レコードの作成、読み取り、更新、削除のプロセスが簡素化されます。 管理アプリの有効化 「その他」セクションに移動 あなたのback4appダッシュボードで。 「管理アプリ」を選択 をクリックします 「管理アプリを有効にする」。 管理者資格情報を設定 初期管理者アカウントを作成することで、システムロール(例えば、 b4aadminuser )を確立します。 管理アプリを有効にする 有効化後、管理アプリにログインしてデータを管理します。 管理アプリダッシュボード 管理アプリでのデータ管理 管理アプリ内でできること レコードの挿入 「レコードを追加」機能を使用して、新しいエントリを導入します(例:アイテム)。 レコードの確認/編集 レコードを選択して、その詳細を表示したり、フィールドを修正します。 レコードの削除 もはや必要のないエントリを削除します。 この直感的なインターフェースは、バックエンド管理を簡素化し、生産性を向上させます。 ステップ 4 – あなたの ios アプリを back4app に接続する バックエンドの準備が整ったら、次のステップはあなたの ios アプリケーションを back4app にリンクすることです。 オプションa parse ios sdkの利用 parse ios sdkをインストールする: swift package managerまたはcocoapodsを使用してsdkを統合できます。cocoapodsの場合、次の内容をあなたの podfile pod 'parse' アプリでparseを初期化する: appdelegateで、次のコードを挿入してparseを設定します: // appdelegate swift import uikit import parse @uiapplicationmain class appdelegate uiresponder, uiapplicationdelegate { func application( application uiapplication, didfinishlaunchingwithoptions launchoptions \[uiapplication launchoptionskey any]?) > bool { let configuration = parseclientconfiguration { $0 applicationid = "your application id" $0 clientkey = "your ios key" // replace with your ios key $0 server = "https //parseapi back4app com" } parse initialize(with configuration) return true } // } crud操作を実装する: データ操作を処理するためにswiftでサービスクラスを作成します。たとえば、アイテムを取得して表示するサービス: // itemsservice swift import foundation import parse class itemsservice { func fetchitems(completion @escaping (\[pfobject]?) > void) { let query = pfquery(classname "items") query findobjectsinbackground { (objects, error) in if let error = error { print("error retrieving items \\(error localizeddescription)") completion(nil) } else { completion(objects) } } } func additem(title string, description string) { let item = pfobject(classname "items") item\["title"] = title item\["description"] = description item saveinbackground { (success, error) in if success { print("item successfully created ") } else if let error = error { print("creation error \\(error localizeddescription)") } } } func modifyitem(objectid string, newtitle string, newdescription string) { let query = pfquery(classname "items") query getobjectinbackground(withid objectid) { (item, error) in if let item = item { item\["title"] = newtitle item\["description"] = newdescription item saveinbackground { (success, error) in if success { print("item updated ") } else if let error = error { print("update error \\(error localizeddescription)") } } } else if let error = error { print("error finding item \\(error localizeddescription)") } } } func removeitem(objectid string) { let query = pfquery(classname "items") query getobjectinbackground(withid objectid) { (item, error) in if let item = item { item deleteinbackground { (success, error) in if success { print("item deleted ") } else if let error = error { print("deletion error \\(error localizeddescription)") } } } else if let error = error { print("error locating item \\(error localizeddescription)") } } } } オプションb restまたはgraphqlの使用 parse ios sdkがあなたのニーズに合わない場合、rest呼び出しを介してcrud操作を実行できます。たとえば、swiftでrestを使用してアイテムを取得するには import foundation class restclient { func retrieveitems() { guard let url = url(string "https //parseapi back4app com/classes/items") else { return } var request = urlrequest(url url) request httpmethod = "get" request addvalue("your application id", forhttpheaderfield "x parse application id") request addvalue("your rest api key", forhttpheaderfield "x parse rest api key") urlsession shared datatask(with request) { data, response, error in if let error = error { print("error fetching items \\(error localizeddescription)") return } guard let data = data else { return } if let json = try? jsonserialization jsonobject(with data, options \[]) { print("fetched items \\(json)") } } resume() } } 必要に応じて、これらのapiメソッドをswiftクラスに統合してください。 ステップ 5 – バックエンドのセキュリティ アクセス制御リスト (acl) の設定 aclを設定してデータを保護します。たとえば、所有者のみがアクセスできるアイテムを作成するには import parse func createprivateitem(title string, description string, owner pfuser) { let item = pfobject(classname "items") item\["title"] = title item\["description"] = description let acl = pfacl() acl setreadaccess(true, for owner) acl setwriteaccess(true, for owner) acl publicreadaccess = false acl publicwriteaccess = false item acl = acl item saveinbackground { (success, error) in if success { print("private item successfully created ") } else if let error = error { print("error saving item \\(error localizeddescription)") } } } クラスレベルの権限 (clp) back4appダッシュボード内で、クラスのclpを調整してデフォルトのセキュリティ対策を強化します。これにより、認証されたユーザーまたは指定された役割のみが特定のデータにアクセスできるようになります。 ステップ 6 – ユーザー認証の実装 ユーザーアカウントの設定 back4appは、認証を管理するために組み込みのparse userクラスを使用します。iosアプリケーションでは、以下のようにユーザー登録とログインを処理します import parse class authservice { func registeruser(username string, password string, email string) { let user = pfuser() user username = username user password = password user email = email user signupinbackground { (succeeded, error) in if succeeded { print("user registered successfully!") } else if let error = error { print("registration failed \\(error localizeddescription)") } } } func loginuser(username string, password string) { pfuser loginwithusername(inbackground username, password password) { (user, error) in if let user = user { print("logged in as \\(user username ?? "unknown")") } else if let error = error { print("login error \\(error localizeddescription)") } } } } セッション管理、パスワードリセット、その他の認証機能を管理するために、同様のアプローチを実装できます。 ステップ7 – 結論と今後の改善 おめでとうございます! back4appと統合されたiosベースのcrudアプリケーションを正常に構築しました。 「 basic crud app ios 」という名前のプロジェクトを設定し、アイテムとユーザーのクラスを設計し、back4app管理アプリを使用してデータを管理しました。 さらに、parse sdk(またはrest/graphql経由)を通じてiosアプリを接続し、基本的なセキュリティ対策を実装しました。 今後のステップ: アプリケーションを拡張する: 高度なフィルタリング、詳細なアイテムビュー、リアルタイム更新などの機能を追加することを検討してください。 バックエンド機能を強化する: クラウド機能、サードパーティapi統合、またはより詳細な役割ベースのアクセス制御を試してみてください。 専門知識を深める: 「 back4appのドキュメント https //www back4app com/docs を訪れて、アプリケーションをさらに最適化するための追加のチュートリアルを探索してください。 コーディングを楽しんで、堅牢なiosアプリケーションを構築する旅に幸運を祈ります!