iOS
Swift에서 GraphQL Apollo iOS 클라이언트 통합 방법
21 분
소개 이 섹션에서는 swift 프로젝트에 apollo ios 클라이언트를 설치하고 이를 사용하여 back4app에서 데이터를 쿼리하는 방법을 배웁니다 전제 조건 이 빠른 시작을 완료하려면 다음이 필요합니다 xcode back4app에서 생성된 앱 back4app에서 parse 앱을 생성하는 방법을 배우려면 새 parse 앱 튜토리얼 을 따르세요 데이터가 저장된 클래스 (그래야 검색할 수 있습니다) 1 xcode 프로젝트에 apollo 클라이언트 추가하기 apollo ios 클라이언트를 통합하는 가장 쉬운 방법은 cocoapods https //cocoapods org/ 를 사용하는 것입니다 통합하려면 다음 단계를 따르세요 xcode 프로젝트를 생성하고 xcodeproj 파일이 있는 동일한 폴더에 podfile이라는 새 파일을 생성합니다 podfile 파일을 수정하고 다음 코드를 추가하세요 문자열 yourprojectnamehere를 프로젝트 이름으로 변경하세요 \# uncomment the next line to define a global platform for your project platform \ ios, '12 0' target 'yourprojectnamehere' do \# comment the next line if you're not using swift and don't want to use dynamic frameworks use frameworks! \# pods for conferenceplanner pod 'apollo' end 파일을 저장하고 터미널을 엽니다 해당 폴더로 이동하여 입력하세요 설치가 완료되면 xcworkspace 형식의 새 파일이 생성됩니다 해당 파일을 xcode로 엽니다 2 스키마 가져오기 graphql 엔드포인트에 대한 스키마를 포함하는 schema json 파일이 필요합니다 전체 스키마를 가져오는 방법은 두 가지가 있습니다 back4app graphql 콘솔 사용하기 apollo 사용하기 두 가지 모두 논의할 것입니다 가장 마음에 드는 것을 선택하세요 2 1 back4app graphql 콘솔로 스키마 가져오기 가져오고자 하는 앱의 graphql 콘솔로 가서, 오른쪽의 스키마 탭 아래에서 다운로드 버튼을 클릭하세요 2 2 apollo로 스키마 가져오기 apollo를 사용하고 싶다면, 먼저 다음을 입력하여 데스크탑 버전을 설치해야 합니다 그런 다음, 헤더의 값을 appid와 masterkey로 바꾸어 다음 명령을 실행하세요 이것은 출력으로 aschema json 파일을 생성합니다 3 schema json 파일을 프로젝트에 추가하세요 다운로드하거나 가져온 schema json 파일을 루트 디렉토리에 있는 프로젝트에 추가하세요 이 폴더는 appdelegate swift 파일이 위치한 동일한 폴더입니다 4 graphql 파일을 생성하세요 이제 파일과 변형을 사용하여 graphql 파일을 생성할 수 있습니다 이 파일은 graphql 확장자를 가져야 하며 apollo가 swift 코드를 생성할 수 있도록 최소한 하나의 쿼리 또는 변형을 포함해야 합니다 유용한 관례는 쿼리, 변형 또는 조각을 사용하는 swift 코드와 함께 \<name> graphql을 생성하여 함께 배치하는 것입니다 파일 트리에 기존의 graphql 파일이 없다면, 매우 간단한 쿼리를 생성하고 파일 트리에 graphql 파일에 추가하여 코드 생성 빌드 단계를 실행할 때 실제로 무언가를 찾을 수 있도록 하세요 그렇지 않으면 코드 생성을 위한 작업이나 조각을 찾을 수 없다는 오류가 발생합니다 여기 parse 사용자를 반환하는 간단한 쿼리 예제가 있습니다 1 query findallusers{ 2 objects{ 3 find user{ 4 count 5 results{ 6 username 7 } 8 } 9 } 10 } schema json 파일과 같은 수준의 target 디렉토리에 해당 파일을 추가하세요 5 코드 생성 빌드 단계 추가 xcode 빌드 프로세스의 일환으로 apollo를 호출할 수 있으며, 이는 schema json 파일을 자동으로 검색하고 업데이트하여 클래스가 변경 사항을 항상 반영하도록 합니다 check and run apollo cli sh 래퍼 스크립트를 호출하여 수행할 수 있습니다 래퍼는 시스템에 설치된 apollo의 버전이 프로젝트의 프레임워크 버전과 호환되는지 확인합니다 이를 확인하지 않으면 프레임워크의 런타임 코드와 호환되지 않는 코드를 생성할 수 있습니다 단계는 다음과 같습니다 애플리케이션 타겟의 build phases 설정 탭에서 + 아이콘을 클릭하고 new run script phase를 선택하세요 생성된 run script의 이름을 generate apollo graphql api로 변경하세요 이 새로운 실행 스크립트를 build phases 목록에서 compile sources 바로 위로 드래그하여 코드가 컴파일되기 전에 실행되도록 하세요 run script에 다음을 추가하세요 xcode 11 beta를 사용하고 있다면, 대신 이 스크립트를 추가하세요 6 api 파일을 빌드하고 타겟에 추가하기 프로젝트를 빌드하면 api swift라는 파일이 타겟 디렉토리에 생성되어야 합니다 생성된 api swift 파일을 타겟으로 드래그하고 “필요한 경우 파일 복사” 체크박스를 해제했는지 확인하세요 api 파일이 포함되어야 하는 모든 타겟을 체크했는지 확인하세요 7 클라이언트 구성하기 이제 viewcontroller swift에서 apollo 구성을 생성하고 appid 및 clientkey 값을 변경하세요 1 let apollo apolloclient = { 2 let configuration = urlsessionconfiguration default 3 configuration httpadditionalheaders = \[ 4 "x parse application id" "yourappidhere", 5 "x parse client key" "yourclientkeyhere" 6 ] 7 8 let url = url(string "https //parseapi back4app com/graphql")! 9 10 return apolloclient( 11 networktransport httpnetworktransport( 12 url url, 13 configuration configuration 14 ) 15 ) 16 }() 8 클라이언트 구성하기 viewdidload에서 apollo 클라이언트의 graphql 쿼리를 호출하세요 1 apollo fetch(query findallusersquery()) { result in 2 guard let data = try? result get() data else { return } 3 print(data objects? finduser results\[0] username) 4 } user 클래스에 사용자가 있다면, 첫 번째 사용자(인덱스 0)가 검색되어야 합니다 선택적 단계 구문 강조 표시 받기 원하는 경우 xcode에서 graphql 구문 강조 표시를 사용할 수 있습니다 이를 달성하려면 다음의 xcode apollo 저장소 https //github com/apollostack/xcode apollo 를 컴퓨터에 복제합니다 현재 실행 중인 경우 xcode를 닫습니다 /library/developer/xcode/ 안에 이러한 폴더를 만들어야 할 수도 있습니다 4\ graphql ideplugin을 /library/developer/xcode/plug ins에 복사합니다 5\ graphql xclangspec을 /library/developer/xcode/specifications에 복사합니다 이 추가 기능을 설치한 후 xcode를 처음 시작할 때 경고가 표시될 수 있습니다 플러그인을 로드하는 데 동의하면 더 이상 이 경고가 표시되지 않습니다