내용 다음과 같이 YPImagePicker 를 통해 구현해보자. 사진 라이브러리에서만 이미지를 가져온다. 하나의 사진만 선택할 수 있도록 한다. 이전에 고른 사진이 선택된다. crop 할 수 있는 비율을 커스텀한다. 필터는 사용하지 않는다. 이미지를 따로 저장하지 않는다. 이미지 선택 시와 취소 시에 notification 을 post 한다. 우선, YPImagePicker 를 사용하는 이유 이전에는 crop 에 대한 기능을 기대하며 UIImagePicker 를 사용하였는데 크기를 커스텀할 수 없었습니다. 많은 개발자들의 아쉬움을 여러 글들에서 읽을 수 있었고 다음의 이유로 YPImagePicker 를 선택하였습니다. 원하는 사이즈로 crop 할 수 있는 이미지 라이브러리는 많이 없었고, 그 중 많은 사..
https://github.com/uber/RIBs 내용 RIBs 튜토리얼 2 를 진행하겠습니다! 본 글은 RIBs tutorial 2 를 번역 및 궁금한 내용들을 추가하여 작성하였습니다. iOS Tutorial 2 · uber/RIBs Wiki Note: If you haven't completed tutorial 1 yet, we encourage you to do so before jumping into this tutorial. Goals 이전 튜토리얼에서 LoggedOut RIB 로 구동되는 login form 을 포함하는 앱을 만들었습니다. 이번에는 로그인한 후 게임필드를 표시하도록 앱을 확장할 것입니다. 마지막에는 RIBs 를 unit test 하는 방법을 간력하게 설명하겠습니다. 주..
GitHub - uber/RIBs: Uber's cross-platform mobile architecture framework. Uber's cross-platform mobile architecture framework. - GitHub - uber/RIBs: Uber's cross-platform mobile architecture framework. github.com 내용 RIBs 에 대해서 알아봤으니 튜토리얼을 따라가 보겠습니다. iOS Tutorial 1 · uber/RIBs Wiki 준비 우선 RIBs 를 설치하고, template 을 설치해 주어야 합니다. Installation for iOS CocoaPods To integrate RIBs into your project add the..
내용 RoundCode 오픈소스 라이브러리를 사용해서 QR code 와 reader 를 만들어보자. https://github.com/aslanyanhaik/RoundCode Installation Cocoapods: pod 'RoundCode' Swift Package Manager: File > Swift Packages > Add Package Dependency https://github.com/aslanyanhaik/RoundCode Usage example import framwork import RoundCode Encoding coder 를 만들고 encode 해봅시다.(해당 라이브러리에서는 encode(_:) 가 QR code 로 인코딩하는 메서드입니다.) let image..
내용 서버 통신 시에 네트워크가 유실된 경우 사용자들은 무작정 기다릴 수 밖에 없다. 이때 alert 창과 함께 네트워크 연결 실패에 대해 알려주자! Moya 의 Plugin 을 커스텀해서 대응해보자. Moya Plugin 에 대해서 알아보자 Moya/Plugins.md at master · Moya/Moya Moya plugin 은 다음의 메서드를 호출해서 request 와 response 를 수정하거나 side-effect 에 대해서 수행할 수 있습니다. (prepare) after Moya has resolved the TargetType to a URLRequest. This is an opportunity to modify the request before it is sent (e.g. add ..
내용 Custom Moya Plugin 을 활용해서 Refresh Token 으로 Access Token 갱신하기 서버통신 과정 1️⃣ 모든 서버통신 + 액세스 토큰 2️⃣ 액세스 토큰 만료 o (40x status code) 3️⃣ didReceive 에서 서버통신 (액세스 토큰 + 리프레쉬 토큰) 바디에 담아 보내기 -> 3-1 리프레쉬 토큰 만료 x (200 status code) -> 액세스 토큰, 리프레쉬 토큰 갱신 -> 3-2 리프레쉬 토큰 만료 o (40x status code) 4️⃣ 리프레쉬 토큰, 액세스토큰 삭제 및 로그인 화면으로 보내기 📡 Plugin 커스텀해서 해결하기 Plugins Moya plugins are used to modify requests and responses ..
지금까지 GET, POST 통신만 사용해보았다. DELETE 와 PATCH 도 구현해보자. 먼저 DELETE 와 PATCH 통신에 대해서 알아보자. 🍕 DELETE? 특정 리소스를 삭제. DELETE 는 request body 가 없지만 response body 가 존재한다. 🍕 PATCH? 특정 리소스의 부분만을 수정. PATCH 는 request body 와 response body 가 존재한다. 사진 출처 : HTTP - 위키백과, 우리 모두의 백과사전 🍕 Moya 에서 DELETE, PATCH 구현하기 path 와 method 를 설정하는 과정까지는 순조롭다고 생각한다. 다음의 세가지 통신을 구현해보자. fetchPopoList : GET 통신. deletePopo : URL path 에 정수형을..
따란, URLSession 을 공부하면서 Alamofire 에서는 어떻게 구현했을까? 라는 궁금증에서 시작된 라이브러리 해체쇼 내용 upload task 와 data task 으로 POST 통신을 구현할 수 있다. Alamofire 에서는 어떻게 구현하고 있을까? Multipart/form-data POST 통신을 Alamofire 에서는 어떻게 구현하고 있을까? upload task 와 data task 으로 POST 통신을 구현할 수 있다. Alamofire 에서는 어떻게 구현하고 있을까? URLSessionDataTask 로 URLRequest 에 httpBody 를 설정해서 POST 통신을 할 수 있다. 또한, POST 통신을 목적으로 한 URLSessionUploadTask 를 사용할 수도 있다..
- urlsession
- WidgetKit
- Objective-C
- Algorithm
- github
- MOYA
- Protocol
- MVVM
- Notification
- RxCocoa
- rxswift
- WWDC22
- IOS
- YPImagePicker
- Firebase
- 2022 KAKAO TECH INTERNSHIP
- Swift
- projectsetting
- containerBackground
- Widget
- UserDefaults
- 서버통신
- CloneCoding
- SwiftUI
- OpenSourceLibrary
- APNS
- watchOS
- configurable widget
- WWDC
- async/await
일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- Total
- Today
- Yesterday