본문 바로가기

분류 전체보기42

[H.I.G] Typograpy - Dynamic Type apple의 Human Interface Guideline의 Typography 중 Dynamic Type 부분을 읽고 정리했습니다. Dynamic Type Dynamic Type으로 설정된 글씨는 글씨를 전반적으로 키우거나 줄일 때, 그에 맞춰서 글씨 크기가 변하도록 할 수 있습니다. 만일 어떤 글씨를 동적으로 조정하지 않고 10pt로 설정한 상태에서 개발을 한다면 사용자가 글씨를 크게 보고 싶어도 볼 수가 없습니다. 반면에 dynamic type으로 설정한 글씨는 글씨를 크게 보고 싶거나, 작게보고 싶은 사용자에게 더 높은 사용자 경험을 줄 수 있으니 앱을 기획, 디자인, 개발할 때 모두 참고하여 개발하는 것이 좋을 것 같습니다. H.I.G에서도 각 상황에 따른 폰트 크기가 나와있지만 눈으로 대강의 .. 2021. 9. 15.
[Swift] 메모리 참조, ARC, Strong Reference Cycle 이해하기 이번 글에서는 Swift 언어에서 메모리를 관리하는 방식인 ARC에 대해 알아보고, 메모리 관리 시 주의해야 할 메모리 누수를 피하는 방법에 대해 자세히 알아보도록 하겠습니다. -1. (일반론) Reference Counting - 메모리를 관리하는 방법 -2. ARC (Automatic Reference Counting) - Swift의 메모리 관리방법 -3. ARC에서 주의해야 할 메모리 누수문제 - Strong Reference Cycle -4. Strong Reference Cycle 문제를 예방하려면? 1. (일반론) Reference Counting - 메모리를 관리하는 방법 메모리는 한정적이므로 필요한 객체는 메모리에 올리고, 더 이상 사용하지 않는 객체는 메모리에서 해제하는 등의 메모리 관.. 2021. 9. 1.
Key-Value Observing 사용하기 요즘 MVVM을 개인 프로젝트에 적용하다 보니 observable pattern을 익혀나가고 있습니다. 그러다 보니.. Key-Value Observing 방식이 어떻게 사용되는지 간단히 이해하고자 간단히 정리해보았습니다. Key - Value Observing 이란? Key-Value Observing(KVO)는 프로퍼티나 다른 객체의 변화를 객체에 알릴 수 있는 Cocoa programming pattern입니다. NSObject를 상속받은 클래스에서만 Key-Value Observing을 사용할 수 있습니다. 앞으로는 Key-Value Observing을 KVO로 부르겠습니다. KVO를 사용하기 위해 프로퍼티에 Annotation 붙이기 KVO는 ObjectiveC의 런타임에 의존하기 때문에, @o.. 2021. 8. 25.
[Swift] final 키워드 이해하기 최근에 모 코테를 봤는데..거의 기술면접같은 질문을 보고..😂 Swift라는 언어에 대한 이해가 부족한 것 같아 차근차근 정리해보려고 합니다. 이번에는 final 키워드에 대해 정리해보았습니다. 1. final 의 개념 final 키워드는 상속을 막고자 할 때 사용합니다. 상속을 막고자 하는 method, property 등의 앞에 final 을 붙여 사용하게 됩니다. (Ex) final var, final func, final class func, and final subscript 또한 class 전체에 final 키워드를 붙여 클래스 전체에 대한 상속을 막을 수도 있습니다. (final class) 만일 final 키워드가 붙어있는 것을 상속하여 하면 compile-time-error가 나게 됩니다.. 2021. 8. 15.
[Swift] Dictionary 사용하기 안녕하세요. 알고리즘 문제를 풀 때 Swift에서 딕셔너리 삭제를 어떻게 해야 할지 하다 찾다 Swift에서 딕셔너리 사용법을 정리해보았습니다. 주요 내용: Dictionary 초기화, Dictionary 조회하기, 값 삭제하기 1. Dictionary 초기화 var dic : [Int: Int] = [:] var dic2 = [String: Int]() var dic3 : [Int: Int] = [1:2, 5: 8, 9:0] 2. Dictionary 조회하기 2.1. dictionaryName[key] 딕셔너리의 키에 대응되는 값을 조회하기 위해서는 dictionaryName[key] 합니다. var dic : [Int: Int] = [1:2, 5: 8, 9:0] print(dic[1]) // "Opt.. 2021. 8. 6.