Swift API Design Guidelines 기초 사용 시점에서의 명백함은 가장 중요한 목표입니다. 메소드나 프로퍼티 같은 엔티티는 오직 한 번만 선언되지만 반복적으로 사용됩니다. 이것들을 분명하고 간결하게 사용할 수 있도록 API를 디자인하십시오. 디자인을 평가할 때, 선언을 읽는 것은 충분하지 않습니다. 그것이 문맥 안에서 분명한지 확실히 하기 위해 항상 실제 사용 경우를 시험하십시오. 뚜렷함은 간결함보다 훨씬 더 중요합니다. 스위프트 코드가 간결해질 수 있더라도, 가장 적은 문자들로 가장 작은 실행 가능한 코드를 작성할 수 있는 것은 우리의 목표가 아닙니다. 스위프트 코드에서의 간결함은 강타입 시스템에서의 부작용이며, 자연스럽게 상용문을 줄이는 기능입니다. 모든 선언에 문서 주석을 작성하십시오..
RespectU Memory Profiling 시작 Memory Management in Swift: Understanding Strong, Weak and Unowned References 글을 읽으면서 ARC에 대한 개념을 다시 한번 살피고 있었는데, 글 말미에 메모리 누수 추적에 관한 문장이 짤막하게 나왔다. For example, if you want to detect memory leaks, you can go up to the menu and select Product > Profile > Leaks. 내 앱이 여기에 자유로운지 확인해보고 싶어졌다. 프로파일링 과정 앱 실행 과정은 다음과 같다. 앱 실행 닉네임과 버전을 받아오는 네트워킹을 수행한다. 가이드 부분으로 넘어가기 내비게이션 컨트롤러..
Bezier Path 시작 애플리케이션을 개발하는 과정은 UI를 만드는 것과 스크린에 보여지는 그것의 간단하거나 복잡한 뷰를 만드는 것들을 포함합니다. 애플리케이션의 간단한 '스크린'을 그리는 데에는 다른 방법들과 다른 접근법들이 있습니다: 디자이너에 의해 이미 만들어진 그래픽을 사용, 코드로 UI를 구현, 인터페이스 빌더 사용, 이것들을 조합하여 사용하기, 등등. 그러나, 당신은 프로그래밍적으로 사용자 정의 형태를 만들 필요가 있을 때가 항상 있을 것이고, 어떻게 하는지 모른다면, 그 때에 문제가 되기 시작합니다. 하지만 이러한 문제들은 문서에 따르면 벡터 기반 경로를 만드는 데 필요한 UIBezierPath 클래스를 사용하여 해결할 수 있습니다. 간단하게 말해서, 이 클래스를 사용하여 어떠한 형태를 ..
시작 야곰의 Swift 4 책의 키패스 부분을 보다가 짜증나서 그냥 넘겼던 기억이 있는데, 이제는 이해할 수 있고, KVO에 대해서도 말만 들어봤지 공부는 안해봤는데 슬슬 해야겠다는 생각이 들었다. 사실 RespectU 서버와 그에 따른 클라이언트 코드 수정에 생각보다 너무 많이 애를 먹어서 살짝 추진력이 떨어졌는데, 갑자기 KVO가 생각나서 공부한 것을 정리해둔다. KeyPath 먼저 키패스에 대해서 알아보고 가자. 키패스는 어떤 객체의 프로퍼티 혹은 프로퍼티의 프로퍼티 체인에 대해서 그 이름을 통해서 값을 찾아나가는 표현을 말한다. 기본적으로 Objective-C 쪽에서 사용해온 기능인 것 같고, Swift 초기에는 이것에 대한 기능이 별도로 마련되지 않았다고 한다. 문자열을 사용하여 NSObject..
UITableViewCell 의 재사용 prepareForReuse() 테이블 뷰의 델리게이트에 의해 재사용을 위한 재사용 가능한 셀을 준비한다 UITableViewCell 객체가 재사용 가능하면, 즉, reuse identifier 를 가지고 있다면, 이 메소드는 UITableView 의 dequeueReusableCell(withIdentifier:) 메소드로부터 객체가 반환되기 직전에 호출된다. 퍼포먼스적 이유로, 알파값, 편집, 선택 상태와 같은 컨텐츠와 관련된 것이 아닌 셀의 속성을 리셋해야만 한다. tableView(_:cellForRowAt:) 의 테이블 뷰 델리게이트는 항상 셀을 재사용할 때 모든 컨텐츠를 리셋한다. 셀 객체가 관련된 reuse identifier 를 가지고 있지 않다면, ..
Custom Keyboard Extensions 원문 해석 참고하면서 원문 이해하기 커스텀 키보드 익스텐션은 당신의 애플리케이션 밖에 키보드를 제공할 수 있는 능력을 제공합니다. 이 튜토리얼에서, 당신은 자동완성과 같은 진보된 특성도 있는 커스텀 키보드 익스텐션을 만들어 볼 것입니다. iOS 8까지, iOS에서 커스텀 키보드를 만들기 위한 당신의 능력은 매우 한정적이었습니다. 당신의 유일한 선택지는 UITextField 와 UITextView 에 커스텀 인풋 뷰를 만드는 것뿐이었는데, 이것은 오직 당신의 애플리케이션 안에서만 커스텀 키보드를 제공할 수 있음을 의미했습니다. 수평선에서 떠오르는 영웅처럼, 앱 익스텐션 app extensions 이 구조를 위해 왔습니다! 이것들은 당신의 애플리케이션 바깥에 ..
H.I.G: Custom Keyboards 원문 커스텀 키보드 키보드 익스텐션은 기본 키보드를 커스텀 키보드로 교체합니다. 커스텀 키보드는 설정 앱의 일반 > 키보드 에서 활성화할 수 있습니다. 일단 활성화되면, 그 키보드는 어느 앱에서든 텍스트 입력 중에 사용 가능한데, 보안 텍스트 필드와 전화번호 필드를 수정할 때는 제외됩니다. 사람들은 여러 개의 커스텀 키보드를 활성화할 수 있고, 언제든지 그것들 사이에서 전환할 수 있습니다. 정말로 커스텀 키보드를 필요로 하는지 확인하십시오. 커스텀 키보드는 당신이 시스템 전체에서 유일한 키보드 기능을 노출시키기를 원할 때 말이 되는데, 텍스트를 입력하는 새로운 방법 또는 iOS에서 지원하지 않는 언어로 타이핑하는 기능 등을 제공하려고 할 때 그렇습니다. 만약 당..
UICollectionView의 인스턴스 메소드 dequeueReusableCell(withReuseIdentifier:for:)는 UICollectionReusableView 객체를 리턴한다.(UICollectionViewCell의 부모 클래스가 UICollectionReusableView이다.) 존재하고 있는 셀이 재사용이 가능하다면, 위의 메소드는 그 셀의 prepareForReuse() 메소드를 대신 호출한다.(재사용이 가능하지 않다면 dequeueReusableCell...을 호출하고, 재사용이 가능하다면 prepareForReuse...를 호출한다...) prepareForReuse() 메소드는 UICollectionReusableView의 인스턴스 메소드. 다시 사용할 뷰를 준비하기 위해 필..