TL;DR
- Swift Chat AI Starter는
Swift Chat의 어시스턴트 스타일을 바탕으로 질문을 화면 위에 두고 Claude의 답변을 그 아래에 마크다운으로 스트리밍하는 오픈소스 iPhone 앱임. Xcode 26에서 프로젝트를 실행하고 Anthropic API 키를 입력하면 텍스트 질문과 사진 첨부를 통해 Claude에 질의할 수 있음.AssistantView.swift가 채팅 UI를 구성하고,Conversation.swift가 대화와 토큰 도착에 따른 답변 갱신을 처리함.ClaudeRequest.swift가 사진을 포함한 Messages API 요청을 만들고,ClaudeClient.swift가URLSession과 서버 전송 이벤트(SSE)로 답변을 스트리밍함.- 앱은 낮은 추론 노력 설정의
claude-opus-5-5를 요청하며 서버 측 대체 모델 사용을 선택하지만, 배포 시에는 API 키를 서버에 보관해야 함.
Swift Chat AI Starter
Swift Chat의 어시스턴트 스타일을 기반으로 Claude의 답변을 스트리밍하는 완전한 iPhone 채팅 앱임.- 질문이 화면 위쪽에 표시되고, 답변은 아래에서 마크다운으로 스트리밍되며 Siri와 ChatGPT의 응답 방식과 유사함.
실행 방법
SwiftChatAIStarter.xcodeproj를Xcode 26에서 열고 iPhone 또는 시뮬레이터에서 실행함.- 표시되는 시트에 Anthropic API 키를 붙여 넣음.
- 질문을 입력하고, 더하기 버튼으로 사진을 첨부하면 Claude가 사진을 확인함.
구성 요소
AssistantView.swift:.chatStyle(.assistant)와 몇 가지 수정자를 사용해 전체 UI를 구성함.Conversation.swift: 대화 스레드를 보관하고 답변마다 항목 하나를 추가하며, 토큰이 도착할 때 답변 텍스트를 갱신함.ClaudeRequest.swift: 사진을 포함해 대화 스레드로부터 Messages API 요청을 구성함.ClaudeClient.swift:URLSession을 사용해 서버 전송 이벤트로 답변을 스트리밍함.KeychainStore.swift: API 키를 키체인(Keychain)에 보관함.- UI는 대화 항목을 채팅 메시지로 표시하고, 대기 중 상태와 입력 기능을 설정하며, 전송된 텍스트와 미디어를
Conversation에 전달하는 구조임.
배포 전 확인 사항
- 앱은 API 키를
api.anthropic.com으로 직접 전송함. 개인 iPhone에서 사용하는 경우에는 괜찮지만, 다른 사람이 설치하는 앱에서는 적절하지 않음. - API 앞에 소규모 서버를 두고
ClaudeClient가 해당 서버를 호출하도록 변경해 키를 서버에 보관해야 함. - 요청은 낮은 추론 노력 설정의
claude-opus-5-5를 사용함. - 요청은 서버 측 대체 모델을 선택하는
fallbacks: "default"를 사용함. 이에 따라 안전성 분류기가 거부한 요청은 실패하는 대신 다른 모델로 재시도됨. - 이러한 설정은
ClaudeRequest.swift에서 변경할 수 있음.
라이선스
- 라이선스는 MIT임.
Swift Chat자체도 모든 앱에서 무료로 사용할 수 있으며, 라이선스는 원문에서 안내하는 항목을 참조함.
댓글 (0)
로그인하면 이 기사에 내 생각을 남길 수 있어요