분류 전체보기
-
Swift Concurrency - Task (3)Concurrency 2023. 3. 2. 10:48
안녕하세요. 그린입니다🍏 이번 포스팅에서는 Task 세번째 이야기인 Task의 딜레이를 주는 방법을 알아보겠습니다🙌 비동기 Swift Task 딜레이 주기 때때로 비동기 Task의 실행에 있어 어느정도 지연을 주고 싶을때가 있죠! 그럴때 우리가 익숙한 combine이라면 Debounce를 걸어 처리하곤 합니다. 그런데 Task를 사용하는 Swift Concurrency에서는 어떻게 하면 좋을까요? 아주 간단하게 아래와 같이 Task에 제공되는 sleep 메서드를 이용하면 됩니다. Task { // Delay the task by 1 second: try await Task.sleep(nanoseconds: 1_000_000_000) // Perform our operation ... } 요렇게 말이죠! ..
-
Swift Concurrency - Task (2)Concurrency 2023. 2. 27. 08:41
안녕하세요. 그린입니다🍏 이번 포스팅에서는 저번 Task의 역할에 대해 알아봤었다면 Task에서 async/await를 사용할때 실제 Swift에서 메모리 관리가 어떻게 되는지 학습해보겠습니다🙌 이번 학습 자료도 아래 링크를 기반으로 개인적인 이해를 바탕으로한 번역을 토대로 이뤄졌습니다🎉 https://www.swiftbysundell.com/discover/concurrency/ Discover Concurrency on Swift by Sundell Introduced in Swift 5.5, Swift’s built-in concurrency system provides a lightweight, yet highly efficient set of tools for writing concurrent ..
-
Swift Concurrency - Task (1)Concurrency 2023. 2. 24. 08:16
안녕하세요. 그린입니다🍏 이번 포스팅부터는 Swift Concurrency에 대해 체계적으로 학습해보려해요🙋🏻 그래서 제목도 이번이 처음 (1)을 붙였습니다! 앞으로 해볼 학습들은 다 아래 레퍼런스 토대로 제 나름의 번역? 같은 해석을 기반으로 학습함을 말씀드립니다🙌 https://www.swiftbysundell.com/discover/concurrency/ Discover Concurrency on Swift by Sundell Introduced in Swift 5.5, Swift’s built-in concurrency system provides a lightweight, yet highly efficient set of tools for writing concurrent code. That a..
-
UIKit과 SwiftUI에서 텍스트의 자간&행간 조절하기SwiftUI 2023. 2. 20. 20:40
안녕하세요. 그린입니다🍏 이번 포스팅에서는 UIKit과 SwiftUI에서 텍스트의 자간 및 행간을 설정하는 구현을 해보겠습니다🙌 우선 자간과 행간이 뭘까요? 자간은 글자와 글자 사이 간격을 뜻합니다. 즉 Letter Spacing이라고도 많이 표기하며 피그마나 제플린에서 해당 속성 값의 이름도 보통 Letter Spacing으로 표기됩니다. 행간은 줄높이라고도 하며 글자행 사이 간격을 뜻합니다. 타이포그래피에서 인접한 줄 사이의 공간을 의미하며 보통 Line Spacing이라고 명칭합니다. 우리는 Text, TextField, TextView를 자주 사용하면서 이 텍스트 간 자간과 행간을 조절할 일이 많아집니다. 해당 속성을 조절하여 보다 더 보기 좋은 UI를 만들고 사용자들에게 쉽게 인식되도록 해줄 수..
-
UITextView를 SwiftUI에서 커스텀하게 사용하기SwiftUI 2023. 2. 17. 14:00
안녕하세요. 그린입니다🍏 이번 포스팅에서는 SwiftUI에서 텍스트뷰 구현을 위해 기본 제공하는 TextEditor를 사용하지 않고 UIKit 세상의 UITextView를 가져와 입맛대로 텍스트뷰를 커스텀하게 구현해보도록 하겠습니다🙌 왜 TextEditor 안쓰죠!? 우선 현재 기준 iOS 16에서 TextEditor가 분명 쓸만해진것은 사실입니다. 다만 최신 버전을 사용할 수 없는 환경에 처한 여러분들이 더 많을것 같고 저 역시 그렇습니다😭 14,15 버전 기준으로 간단히 짚어보면 우선 SwiftUI의 기본 제공되는 TextEditor에서는 우리가 흔히 사용하는 placeholder를 기본적으로 제공하지 않아 필요하면 overlay로 컨트롤 해줘야합니다. 또 텍스트가 입력되는 칸의 Inset을 조정할때..
-
Get 라이브러리로 심플한 웹 API 클라이언트 구현하기Library 2023. 2. 13. 14:18
안녕하세요. 그린입니다🍏 오늘은 Get이라는 외부 라이브러리에 대해 학습해보겠습니다🙌 우리가 익숙하게 알고 있는 네트워크 통신 당연한 말이지만 클라이언트 개발을 하면서 API 네트워크 통신은 안할래야 안할수가 없습니다. 네트워크 통신을 위해 우리는 기본적으로 애플에서 제공해주는 URLSession을 사용하기도 하고 Alamofire나 Moya와 같은 외부 라이브러리의 도움을 받아 URLSession을 추상화하여 조금 더 쉽게 사용하기도 합니다. 자 그럼 여기다 하나를 더 추가해서 알아보려고 합니다. 그게 바로 오늘 해볼 Get이라는 라이브러리입니다. 구구절절 자세한 Get에 대해 파해쳐보시죠! Get 라이브러리란? Get이라는 라이브러리는 async/await를 사용하여 구축된 간결한 Swift 웹 AP..
-
compare과 ComparisonResultSwift 2023. 2. 8. 09:30
안녕하세요. 그린입니다🍏 이번 포스팅에서는 문자열을 비교하는 Compare이라는 메서드와 그 반환 타입인 ComparisonResult에 대해 학습해보겠습니다🙌 우선 아주 수도 없이 사용하고 있는 Compare이라는 메서드부터 짚고 넘어가볼께요! compare? 파라미터로 지정된 옵션들을 사용해 문자열을 비교하고 범위에 대한 어휘 순서를 반환해줍니다. 여기서 중요한건 어휘 순서입니다. 어휘 순서는 아스키 코드값처럼 A보다 Z가 더 크다고 인식해주죠. 그렇기에 결국 compare 메서드의 역할은 두 문자열을 어휘 순 즉, 정렬 순에 대해 비교해줍니다. 해당 메서드는 NSString의 인스턴스 메서드로 문자열에서 쉽게 사용할 수 있습니다. func compare( _ string: String, option..
-
PopupViewLibrary 2023. 2. 6. 16:27
안녕하세요. 그린입니다🍏 이번 포스팅에서는 PopupView라는 라이브러리에 대해 학습해보겠습니다🙌 SwiftUI에서 플로팅/토스트 메시지 혹은 팝업이나 바텀 시트를 노출해야 될 경우 기본적으로 제공하는 API를 사용하여도 되고 아니면 조금 더 커스텀하게 만들어서 사용해도 되는데 요 것들을 조금 더 편리하게 제공해주는 라이브러리가 있더라구요! 바로 오늘 학습해볼 PopupView입니다🙋🏻 PopupView 단순히 View Modifier로 간단히 사용할 수 있도록 구현되어 있어 우선 사용에 대해 알아보겠습니다. SPM / cocoapods / carthage 모든 방식으로 가져와서 사용할 수 있습니다. 플로팅부터 한번 바로 사용해볼께요! import SwiftUI import PopupView struc..