처음에 Swift 공부할 때는 정말 아무것도 몰라서, 힘들었던 경험이 있다. 좋은 기회로 한번더 정리할 시간이 생겼다. 다시한번 전체적으로 훑는 시리즈를 만들어본다.
Swift를 처음 공부하면서 가장 어려웠던게 이 Optional인 것 같다. 애초에 개발도 처음할 시기였으니, 이런 자료구조가 왜 필요한지 전혀 몰랐었던 시간이 있었다. 제대로 알아보자.
프로그래밍 언어에서 자주 사용하는 것들인 제어문, 문자열, 함수에 대해서 적어보려한다. 다른 언어와 많은 점이 다르지는 않기 때문에 한 포스팅에서 모두 알아보려 한다.
대망의 Closure다. 처음 공부할 때 정말 어려웠던 경험이 있다. 그 당시 생각을 하면서 찬찬히 적었으니 잘 이해가 되었으면 좋겠다.
Swift는 객체의 느낌으로 사용하는 3개의 개체가 있다. struct, class, enumeration이 그것이다.
간단하게 property는 member 변수이다. 그런데 Swift에는 다양한 종류의 property가 존재한다. 사실 어떻게 보면 활용방법? 테크닉에 가깝겠다. 어떻게 property를 관리하는 지 안다면, 실제 코드를 간결하고 읽기 좋게 유지할 수 있다.
Subscript는 Swift에 있는 새로운 문법이다. 값 접근에 있어서 의미있는 접근 방법을 정의하여 사용할 수 있다.
Swift에서 Struct, Class, Enum을 초기화할 수 있는 Initializer에 대해서 알아보자.
Two Phase Initialization이라는 생소한 단어를 보았다면 잘 왔다.
Extension과 Protocol은 Swift에서 자주 사용되는 기능이다. 값에 접근이 불가함에도 Extension으로 추가 기능을 구현할 수 있고, Protocol의 경우 POP라는 개념으로 Apple에서 밀어주는? 개념이다.
에러 처리는 프로그래밍에서 빼놓을 수 없다. 에러 관리를 제대로 해두어야 추후 디버깅에 있어 이득을 볼 수 있다. 미래의 나를 위한 투자?의 개념이다. 에러를 관리하는 것도 중요하지만 에러를 내는 방법, 에러를 감지하여 처리하는 방법을 아는 것 역시 중요하다. 오늘은
오래 기다렸다. ARC가 무엇일까? 자바의 Garbage Collector와는 무엇이 다를까? 장단점은 무엇일까? 어떤 원리로 동작하는 것일까? 발생하는 문제점은 무엇일까? 어떻게 해결할 수 있을까? 이러한 내 궁금증들을 담았다.
코드의 관리는 중요하다. 위계 질서를 가지고 구분하지 않으면 혼란을 초래한다. 접근 제어는 특히 SDK 작업을 하는 경우 인터페이스 역할을 하기 때문에 잘 알아두는 것이 좋다.
autoreleasepool.. 어딘가에서 들어봤지만 언제쓰는지는 전혀 몰랐다. 한번 알아볼까?
오늘은 작업 중 내가 모르는 코드를 발견해서 글을 써본다. reduce! reduce(::) 형태만 봐왔었는데 reduce(into::) 형태도 있더라! 알아보자.
인덱스로 Array 아이템을 탐색하다보면 항상 마주하는 것이 있다. Fatal error: Index out of range. 잘못하면 런타임에 애플리케이션이 바로 죽어버리기 마련이다. Subscript를 활용하여 쉽고 깔끔하며 안전한 코드를 만들어 보자.
Collection 중 Set을 사용하다가 문득, insert와 update의 차이가 뭔지 궁금해졌다!
RunLoop이란 무엇일까?
이전 글에서 RunLoop에 대해 알아보았다. Timer도 같이 처리한다 했었는데, 궁금해져서 이 글을 쓰게 되었다.
KVC/KVO 는 Apple Framework에서 중요한 부분을 담당한다. 한번 공부해보자.
지난 글에서는 Objective-C에서 KVC/KVO가 어떻게 쓰였는지 알아보았다. 이번에는 Swift다.
이전 글들에서 Objective C의 KeyPath와 Swift에서의 KeyPath를 한번씩 보았다. 모양이 좀 달랐었는데 왜 다른지에 대해서 알아보자. 이번 글은 WWDC 17을 기준으로 한다.
iOS App에서 서버와 통신하기 위해 Apple에서는 URLSession이라는 기본 API를 제공하고 있다. third-party library로 많이 사용하는 Alamofire, kingfisher 등의 기반이 되는 API로 서버 통신을 위해 필수적으로 알아야 한다
URLSession을 만들었다면, 그 안에 들어갈 URL과 Request를 정의해야 한다. 이번에도 문서를 보며 알아보자.
이전 글에서 URLSession, URL, URLRequest 를 생성하는 방법을 알아보았다. 이번에는 어떤 Task들이 있는지 알아보자.
Notification Center는 꽤나 오래전 부터 iOS의 이벤트 전송 매커니즘으로 자리잡았다. 어떤 요소들이 있는지 확인해보자.
enum에 static 변수를 사용해서 관리를 하다가 문득 이런 생각이 들었다. Type property에는 2가지 종류, `static`, `class`가 있는데 뭐가 다른거지? 이참에 헷갈렸던 용어까지 몽땅 정리해보려 한다.
이전에 metatype에 대해 흘려들었었는데, 이번에 간단하게 정리해보려한다.
Type alias, 잘쓰면 가독성에 굉장한 영향을 줄 수 있다! 어느 곳에서 사용할 수 있는지 정리해보자.
type alias를 공부하면서 마주쳤던 associatedtype에 대해 알아본다.
generic을 보면서 몇몇 곳에서 where 키워드를 사용하는 것을 보았다.
이미지와 글자가 있는 Button을 만들다가, String안에 image를 넣을 수 있다는 것을 알았다!
print와 NSLog는 어떤 차이점이 있을까?
특정 문자열이나 공백을 제거하려면 어떻게 해야할까?
TableView의 index를 조정하면서 NSNotFound라는 값을 넣어주는 것을 보게되었다. 왜 이런 것이 필요한지 알아본다.
dictionary에 value를 넣는데 nil인 경우는 빼고 싶다. 깔끔한 방법이 없을까?