분류 전체보기(189)
-
[UIHostingController] UIKit 프로젝트에서 SwiftUI 적용해보기
1️⃣ SwiftUI를 UIKit 프로젝트에서 사용한다고? 왜?SwiftUI는 날이 갈수록 발전하고 있다.처음 iOS 개발을 배울 때만 하더라도 기존 대부분의 프로젝트는 UIKit를 사용하고 있었고, SwiftUI는 그저 생긴 지 얼마 되지 않은 (왜 사용하는지 필요성을 못 느낀) Second User Interface Framework에 불과했는데,내가 군대를 다녀온 불과 몇 년 사이에 (애플도 매년 UIKit에 비해 더 적극적으로 업데이트를 해주는 등) SwiftUI는 많은 발전과 안정화를 거듭하며 앞으로 더 밝은 전망을 보이고 있다."그럼 이제 UIKit 프로젝트를 SwiftUI로 갈아 엎으면 되는 건가?""UIKit 공부 때려치우고 이제 SwiftUI 써야겠다!"실제로 UIKit에서 SwiftUI..
2024.08.07 -
[Design Pattern] 내가 보려고 정리하는 Swift 디자인 패턴 (8) - 어댑터 패턴(Adapter Pattern)
1️⃣ 어댑터 패턴(Adapter Pattern)이 뭐야?💡 어댑터 패턴(Adapter Pattern)은 서로 호환되지 않던 인터페이스(protocol)를 변환시켜 함께 작동할 수 있도록 만드는 구조 패턴(Structural Pattern)이다.위의 말이 무슨 말인지 잘 이해가 안된다면 아래와 같이 이해해 보는 건 어떨까?기존에 사용하고 있던 규격이 이미 있는 상황에서, 새롭게 사용하려는 시스템의 규격이 기존 규격과 맞지 않는다면? -> 어댑터(Adapter)라는 변환 도구를 중간에 두어 기존 규격과 새로운 규격을 함께 사용할 수 있도록 만드는 것이 바로 어댑터 패턴이다.어댑터 패턴에서 반복적으로 사용하는 용어는 아래 네 가지다.Target (Interface = Protocol) : 기존 시스템이 사..
2024.08.05 -
[Swift] 자네 열거형(enum)을 CaseIterable로 사용해본 적이 있는가?
CaseIterable | Apple Developer DocumentationA type that provides a collection of all of its values.developer.apple.com혹시 Swift 코드에서 선언된 열거형(enum)을 보다가 CaseIterable이라는 키워드를 본 적이 있나?CaseIterable을 직관적으로 해석해보면,Case(열거형의 각 case) + Iterable(반복 가능한)의 합성어로 "열거형의 각 case를 반복 가능하게 사용할 수 있다"라고 해석된다.이란 말이 조금 부자연스러워서 다르게 해석해 보면, Iterable을 , = 즉, 열거형의 각 Case를 Sequence Data의 형태로 사용할 수 있다는 것을 의미한다고 해석하면 더 와닿을 수..
2024.08.05 -
[iOS] Clean Architecture + MVVM + Observable 사용해서 날씨앱 리팩토링하기
⚠️ 해당 글은 Robert C. Martin의 너무도 유명한 책과 Oleh Kudinov라는 분의 Medium 글 Clean Architecture and MVVM on iOS를 참고해서 작성했습니다.번역 또는 프로젝트의 목적, 그리고 저의 부족한 이해력 때문에 일부 잘못된 내용이 있을 수 있다는 점. 전제하고 읽어주시면 감사하겠습니다 (잘못된 개념 제보 및 질문 댓글로 얼마든지 환영입니다:) ^__^ + 아 그리고 글이 조금 깁니다...어쩌다보니.. GitHub - mini-min/Clean-Architecture-iOS: 🍎 날씨앱 클론코딩으로 공부하는 클린 아키텍처 (feat. Robert C. Ma🍎 날씨앱 클론코딩으로 공부하는 클린 아키텍처 (feat. Robert C. Martin) - ..
2024.07.28 -
[UIButton] UIButton의 모든 것! (UIButtonConfiguration, ConfigurationUpdateHandler, UIAction)
1️⃣ HIG (Human Interface Guidelines) 살펴보기 : Button이란?Button은 앱에서 사용자가 어떤 특정한 동작이나 작업을 시작하는 방법을 제공하는 가장 기본 중에 기본이 되는 Component다.가장 기본이 되는 Component이다 보니 HIG에서는 버튼을 사람들이 사용하기 쉬우며, 버튼의 목적이 직관적으로 드러나야 한다고 설명하고 있다. (최소 44 x 44 이상의 히트 영역을 권장 + 텍스트나 심볼을 (동시 또는 필요에 따라) 사용할 수 있다.)일반적으로 버튼은 세 가지 속성(Style + Content + Role)을 결합해서 사용자에게 그 기능을 명확하게 전달하게 되는데, 자세한 내용은 아래와 같다.1. Style : 버튼 사이즈, 색상, 모양(shape)을 기반..
2024.07.24