ios
-
Swift UI와 Gemini API를 활용한 Chat Bot: 채팅 구현 (2/2)공부/iOS 2024. 3. 19. 18:19
지난 포스트에서 이어서 작성하겠습니다. (코드 전문 포함) 목차 말풍선 모양 만들기 질문을 위한 입력 필드 만들기 채팅 말풍선 생성하기 채팅 메세지 리스트 생성하기 코드 전문 말풍선 모양 만들기 사용자(흰색)가 질문을 하면 gemini(노랑)가 답변하는 형태로 대화가 진행됩니다. 이를 위해 1. 우선, 채팅 말풍선 Shape를 만들어줍니다. 좌측하단, 우측하단, 우측상단을 둥글게 만들어 줍니다. struct ChatBubbleShape: Shape { func path(in rect: CGRect) -> Path { let path = UIBezierPath( roundedRect: rect, byRoundingCorners: [.bottomLeft, .topRight, .bottomRight], cor..
-
Swift UI와 Gemini API를 활용한 Chat Bot: 기능 구현 (1/2)공부/iOS 2024. 3. 13. 00:21
목차 Gemini API? Google API KEY 발급하기 Gemini SDK 설치하기 Gemini API의 4가지 기능 기능 구현하기 Gemini API? 제미나이는 구글과 딥마인드가 개발한 멀티모달 생성형 인공지능 모델입니다. 이 포스트에서는 제미니 API의 주요 기능과 스위프트 앱에서 활용하는 방법에 대해 살펴보겠습니다. 우선, 제미나이 API는 두 가지 형태의 개발 환경을 통해 제공됩니다. 구글 AI 제미나이 API(Google AI Gemini API) 버텍스 AI 제미나이 API(Vertex AI Gemini API) 이 중 구글 AI 제미나이 API는 학습 목적이나 소규모 개발에 적합합니다. 이에 반해 버텍스 AI 제미나이 API는 중규모 이상의 시스템에 적합하며 구글 클라우드 서비스인 ..
-
[SwiftUI] 1. TCA를 왜 도입하는걸까? (MVVM의 운명은?)공부/iOS 2024. 2. 27. 19:14
# TCA? TCA(The Composable Architecture)는 Swift UI에서 떠오르고 있는 아키텍처 중 하나입니다. https://github.com/pointfreeco/swift-composable-architecture 위의 깃허브 레포를 확인해보시면 10.9k의 별(2024.02.27 기준)을 보유하고 있습니다. 어째서 Swift UI의 아키텍처 트랜드가 TCA로 변화하고 있는 것일까요? MVVM 패턴과 TCA 패턴에 대해 알아보며 그 이유를 확인해 봅시다. # MVVM MVVM 간단 소개 MVVM을 설명하기 위해 사용자가 검색창에 특정 키워드를 검색하는 상황을 예로 들겠습니다. 1) 사용자가 입력한 키워드를 ViewModel에 전달합니다. 2) ViewModel은 Model로..
-
[iOS] status code가 200일 때 빈 응답이 들어오는 경우공부/iOS 2024. 2. 17. 15:04
배경 Alamofire로 빈 타입으로 파싱을 시도하던 중에 오류가 발생했다. 응답은 status code는 200으로 들어오고 body가 비어있었는데, responseDecodable에서 "Empty"로 파싱을 시도했지만 inputDataNilOrZeroLength 오류가 발생했다. 해결법 해결법은 간단하게도 emptyResponseCodes 파라미터만 추가하면 됩니다. emptyResponseCodes에 성공시킬 응답코드를 담은 배열을 추가해주면 오류가 해결됩니다. func requestVerificationCode(email: String, completion: @escaping (Result) -> Void) { let urlString = "http://localhost:8080/member/se..
-
[UIKit]키보드 위에 수정 제안을 비활성화하기공부/iOS 2023. 12. 13. 19:27
오류 발생 원인 자동으로 맞춤법 교정해주거나 사용자의 입력을 예측해서 입력을 돕는 기능은 유용하지만 때에 따라 필요하지 않는 경우도 존재합니다. 아래의 코드를 textfield에 추가해주면 아래와 같이 제거할 수 있습니다. textfield.autocorrectionType = .no textfield.spellCheckingType = .no 그러면 다음과 같이 UIKit에서 맞춤법 검사를 무시할 수 있습니다. 코드 사용 예시 import UIKit class PlaneTextField: UITextField { init(placeholder: String) { super.init(frame: .zero) self.placeholder = placeholder self.autocapitalization..