전체 글
-
[SwiftUI] Data 로 Lottie 보여주기Swift/SwiftUI 2023. 5. 18. 01:03
struct LottieView: UIViewRepresentable { let data: Data func updateUIView(_ uiView: UIViewType, context: Context) { } func makeUIView(context: Context) -> Lottie.CompatibleAnimationView { let animationView = CompatibleAnimationView(data: data) animationView.contentMode = .scaleAspectFit animationView.play() animationView.loopAnimationCount = .infinity return animationView } }
-
[Swift] Generic 을 사용해서 로그를 편하게 찍기Swift 2023. 5. 13. 14:20
import Foundation struct SomeAPI { static func post() { Network.request(caller: self) } } struct OtherAPI { static func post() { Network.request(caller: self) } } struct Network { static func request(caller: T.Type) { print(String(describing: caller)) } } SomeAPI.post() OtherAPI.post() // 출력 SomeAPI OtherAPI
-
[Swift] Class Type 검사하기 - isMember(of: )Swift 2023. 5. 12. 16:07
class SomeVC: UIViewController { } class OtherVC: UIViewController { } func validate(type: AnyClass) { let controllers = [SomeVC(), OtherVC()] for vc in controllers { print(vc.isMember(of: type)) } } validate(type: SomeVC.self) // 출력값 true false
-
TIL - 비동기에는 비용이 존재한다Swift 2023. 5. 6. 19:22
actor 과 Task 를 공부하면서 다양하게 반복문을 돌려보았다 내 예상에는 비동기가 퍼포먼스적으로 나을줄 알았는데 그렇지 않았다 결과적으로 actor 로 실행된 동기가 가장 빨랐다 아래는 2000번을 반복문 돌리는 동안 소요된 시간이다 Class 동기 1683348764.031726 1683348764.071846 -> 0.04012 Actor 비동기 1683348838.376186 1683348838.429184 -> 0.052998 Actor 동기 1683348994.649622 1683348994.650255 -> 0.000633 Class MainActor 비동기 1683348904.8285599 1683348904.853952 -> 0.0253921 Class MainActor 동기 1683..
-
[Swift] Actor #2 - @MainActor (class 와 같이 사용하기)Swift 2023. 5. 6. 11:57
🎶 인트로 그럼 실제 프로젝트에서는 어떻게 적용하면 좋을까요? ViewModel 등을 ObservableObject 를 상속해야하기에 class 로 만들어주어야합니다. 이때 등장하는 것이 MainActor 입니다. 코드는 아래와 같습니다. class 이지만 actor 채택하는 MainActor 를 따르고 있기 때문에 property 값을 참조할때 순서대로 실행이 됩니다. 💻 예시 코드 import Foundation @MainActor class Counter { var count = 0 func increase(times: Int) { for _ in 1...times { Task { count += 1 print(count) } } } } Task { let counter = await Counter..