Swift
-
Result (With. Composable Architecture)Swift 2022. 4. 25. 10:03
안녕하세요. 그린입니다🟢 이번 포스팅에서는 Result에 대해 학습해보겠습니다🙋🏻 더불어 컴포저블 아키텍쳐에서 이런 Result 타입을 어떻게 활용하는지 보시죠! Result? 우선 선언부는 이렇습니다. @frozen enum Result where Failure : Error 일반적인 열거형이며 각 경우에 연결된 값을 포함해 성공 혹은 실패를 나타내는 열거형 타입입니다! Result의 필요성? 우리는 이미 do, catch, try, throws와 같은 에러 처리에 대한 문법을 알고 있다고 가정합시다! 해당 문법들로 에러를 처리할 수 있지만 모든 경우에서 다 처리하기에 어렵고 복잡합니다. 이러한 친구들은 에러의 동기적인 처리를 하는데 도움이 됩니다. 다만 우리는 통신과 같은 상황에서 에러를 비동기 처리..
-
Property WrapperSwift 2022. 4. 21. 10:11
안녕하세요. 그린입니다🟢 이번 포스팅에서는 Swift의 Property Wrapper를 알아보려합니다🙌 Property Wrapper? Swift 5.1에서 처음 소개되어 추가된 기능으로 프로퍼티를 감싸 특별한 타입으로 만들어주는 친구입니다. 뒤에서 천천히 같이 학습해보겠지만 우선 찍먹해보면 프로퍼티에 커스텀한 어떤 로직들을 매번 동일하게 지정해주지 않고 Property Wrapper로 만든 타입으로 프로퍼티를 선언해 동일 로직을 수행하도록 합니다! Property Wrapper는 특히 지역변수에서만 사용가능합니다🙌 아마 다들 많이 보셨을것 같은 @UserDefaults, @State, @Binding 등등 되게 많은 이러한 형태를 띈 친구들이 Property Wrapper라고 볼 수 있습니다. 저는 특..
-
Method SwizzlingSwift 2022. 1. 14. 09:47
안녕하세요. 그린입니다🟢 이번 포스팅에서는 Method Swizzling에 대해 학습해보겠습니다💁🏻 Method Swizzling? 메서드 스위즐링? 스위쯜링? 단어가 너무 생소해요🤔 우선 직역해서 어떤 뜻일까요? ㅋㅋㅋ 이게뭐야.. 더 혼란스러워.. 아마 지금 심정하고 맞을거에요. 스위즐링은 빙글빙글이라고 직역이 나오는 파파고...를 무시한채 아무튼! 보통 프로그래밍에서 스위즐링이라하면 뒤바꾸는걸 의미합니다. 즉 여기서 메서드 스위즐링은 메서드끼리 바꾸는것을 생각하면되요! 이건 단어의 개념이야기이고 Swift에서 더 나아가 다른 언어에서도 메서드 스위즐링이 뭘까요? 런타임 시점에 메서드를 서로 바꿔 동작하게 하는 기능입니다🤭 Object-C에서 다이나믹 디스패치 덕에 런타임에 메서드 호출의 변경이 가능..
-
Swift - MarkdownSwift 2021. 10. 20. 21:52
안녕하세요. 그린입니다🟢 이번 포스팅에서는 Swift의 Markdown에 대해 학습해보겠습니다💁🏻 Markdown은 다들 아실겁니다. 간단히 말하자면 서식 있는 텍스트를 작성하기 위한 공통 언어입니다. 깃헙 리드미에서도 많이 보셨을거에요🧐 그런데 Swift - Markdown은 도대체 무엇인지 알아봐야겠어요..! SwiftUI 3.0으로 업데이트 되면서 즉 iOS15부터 애플에서 Foundation 프레임워크와 SwiftUI에서 이 마크다운을 제공해줍니다!! 얘네들이 마크다운 라이브러리를 만들어버렸어요😁 정말 그럼 딥하게 파고들며 설명하기전에 어떤건지 맛볼까요? 간단한 Markdown의 사용 예시 맛보기 import SwiftUI struct ContentView: View { var body: some..
-
KeyPathSwift 2021. 9. 4. 10:34
안녕하세요. 그린입니다🟢 이번 포스팅에서는 KeyPath에 대해 학습해보겠습니다🧑🏻💻 KeyPath? 아.. 계속 영어로 치기 귀찮은 한국인이라 요기서부터 본문은 키패스라고 타이핑하겠습니다! 키패스를 왜 학습하게 되었나하면 Composable Architecture를 실무에서 사용하면서 하위 리듀서를 상위 리듀서에서 가져와 액션을 구현할때가 있습니다. 음.. 예를들어 모두 홈 모듈에 지도뷰 모듈도 있고 리스트 모듈도 있다고 쳤을때 지도뷰 모듈에서 어떤 에러가 발생하면 홈 모듈에서 얼럿을 띄워줘야 하는 경우를 가정할 수 있습니다. 그러니까 모듈간 종속을 보면 이렇게 되겠네요! 으.. 만들고 보니 징그럽지만 무튼 이렇습니다. 다양한 하위 모듈이 Home 모듈에 속해있죠? 이럴때 홈 모듈에서 하위 모듈의 상..
-
Dictionary.init(uniqueKeysWithValues:)Swift 2021. 8. 31. 19:30
안녕하세요. 그린입니다🟢 이번 포스팅에서는 Dictionary.init(uniqueKeysWithValues:)에 대해 학습해보겠습니다💁🏻 딕셔너리가 뭐에요?? 우선 딕셔너리는 key와 value로 이루어진 데이터를 담는 컨테이너입니다. 특징이라하면 각 value는 고유의 유일한 key와 연결되어 있습니다. 딕셔너리는 array처럼 순서가 있지 않기에 각 물려있는 key값으로 value값을 찾을 수 있습니다. 즉 딕셔너리를 표현한다면 Dictionary로 표현할 수 있습니다📑 그렇다면 딕셔너리의 키값은 고유의 값이니 Hashable 해야겠쬬!? 그런데 우리가 쓰는 딕셔너리의 키값은 대부분 swift에서 기본 제공하는 Int, String, enum 등등일겁니다! 해당 기본제공되는 자료형 타입들은 이미 H..
-
순수함수와 사이드이펙트Swift 2021. 8. 22. 13:29
안녕하세요. 그린입니다🟢 이번 포스팅에서는 정말 정말 간략하게 순수함수와 사이드이펙트에 대해 알아보겠습니다🧐 다들 순수함수와 사이드이펙트는 들어보셨을거라 생각해요! 저도 막연하게 어떤거다~~ 하는것만 알고 제대로 사용하진 못했던것 같아요. 음.. 앱을 개발하면서 객체지향 중심적으로 사고가 박혀있어서인지 순수함수를 쓰려던 부분은 고작해야 클로저로 처리하거나 통신할때 등 틀에 박혀있게 생각했어요. 그러던중 ReactiveX를 공부하고 Composable Architecutre로 구조를 잡아가면서 순수함수와 사이드이펙트에 대해 많이 접하네요😱 우선 간략하게 순수함수와 사이드이펙트에 대해 말해보겠습니다. 순수함수 순수함수는 말그대로 순수한 함수입니다! 즉, 순수함수의 결과값은 항상 동일해야합니다. 외부 요인(사..
-
Safe ArraySwift 2021. 7. 24. 09:19
안녕하세요. 그린입니다🟢 이번 포스팅에서는 배열에 대해 안전하게 조회하고 인덱스를 접근하는 방법에 대해 간략히 알아보겠습니다🙋🏻 배열에 대해 안전하게 접근하지 못할때 아래와 같은 에러를 런타임에서 많이 겪어보셨을겁니다. fatal error: Array index out of range 바로 접근한 배열의 인덱스가 범위 밖, 즉 없다는 에러 메시지입니다. if let등 아래와 같이 옵셔널바인딩을 안전하게 해줬다고 생각했는데 왜 이런 문제가 나타난걸까요? struct Person { let name = "bob" let age = 10 ... } let onePerson = Person() let twoPerson = Person() let people: [Person] = [onePerson, twoPe..