Quickstarters
CRUD Samples
How to Develop a CRUD App for iOS using Swift?
27 분
개요 이 안내서는 ios용 간단한 crud(생성, 읽기, 업데이트, 삭제) 애플리케이션을 구축하는 방법을 안내합니다 back4app을 클라우드 백엔드로 사용하여 프로젝트를 구성하고, 유연한 데이터 모델을 설계하며, swift로 crud 기능을 구현하는 방법을 배웁니다 이 튜토리얼은 ios 앱을 back4app과 통합하는 방법을 보여주며, parse ios sdk 또는 rest api를 활용하여 원활한 데이터 관리와 안전한 인증을 보장합니다 먼저, basic crud app ios 라는 이름의 back4app 프로젝트를 설정합니다 이 프로젝트는 앱을 위한 확장 가능한 비관계형 데이터베이스를 제공합니다 데이터 구조를 정의하기 위해 클래스를 만들고 필드를 수동으로 생성하거나 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 설치 sdk를 swift package manager 또는 cocoapods를 사용하여 통합할 수 있습니다 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)") } } } 클래스 수준 권한(clps) 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 "라는 이름의 프로젝트를 구성하고, items 및 users 클래스를 설계하며, back4app admin app을 사용하여 데이터를 관리했습니다 또한, parse sdk(또는 rest/graphql)를 통해 ios 앱을 연결하고 필수 보안 조치를 구현했습니다 향후 단계 애플리케이션 확장 고급 필터링, 상세 항목 보기 또는 실시간 업데이트와 같은 기능 추가를 고려하세요 백엔드 기능 향상 클라우드 기능, 타사 api 통합 또는 더 세분화된 역할 기반 액세스 제어를 실험해 보세요 전문성 심화 back4app 문서 https //www back4app com/docs 를 방문하고 추가 튜토리얼을 탐색하여 애플리케이션을 더욱 최적화하세요 행복한 코딩과 강력한 ios 애플리케이션 구축 여정에 행운을 빕니다!