개발을 함에 있어서 개발자 문서를 읽는것은 당연한 말이다. 예를 들어서 수학 공부를 할 때 수학교과서를 보는 것이니까. iOS 애플리케이션을 개발한다고 하자. 그러면 애플 개발자 문서를 읽어야 되는 것인데, 애플 개발자 문서는 정말 너무너무 양이 많을 것이다. 뿐더러 공식문서라는 것은 정말 읽어들이기가 낯설고 어렵다.
그렇기 때문에 애플 개발자 문서가 어떤 식으로 구성되어 있는지 이해하고, 적절하게, 효율적으로 읽어들이는 방법을 알고 습관을 들인다면 조금씩 조금씩 익숙해질 수 있을 것이다. 이번 글에서는 Boost course에서 추천해주는 애플 개발자 문서를 읽어들이는 팁(?)에 대해서 정리해두고 필요할 때마다 기억을 되짚어보려 한다.
🍎 애플 문서의 구성
애플 문서는 크게 세 가지로 나눠져있다.
- 참조 자료(API Reference)
클래스의 메서드와 프로퍼티에 대한 기술적인 세부사항에 대한 설명. 코딩을 계획하거나 코딩을 하는 중에 살펴봐야하는 말 그대로 참조용 자료이다.
→ 가장 흔히 접하는 것이 이 API Reference인 것 같다.
- 가이드(Guide)
특정 분야에 대하여 상세히 설명하고, 내부적으로 어떤 식으로 구동 되는지에 대해 설명한다. 관심이 있거나 궁금한 부분만 골라서 읽어도 되지만, 모든 부분을 읽다보면 생각하지 못했던 정보를 많이 알 수 있게 되곤 한다. 또한 예제 코드들이 있는 경우도 있기에 이를 참고하면 올바른 코딩을 하는데 많은 도움을 준다.
- 샘플 코드(Sample Code)
샘플 코드는 실제로 API를 어떻게 사용하는지에 대한 예시이다. 내가 사용하고자 하는 기능을 애플의 개발자는 어떤식으로 프로그래밍 하는지 볼 수 있는 좋은 기회가 된다.
✏️ 애플 문서 읽기
개발을 하다보면 어떤 클래스를 사용할 일이 있고, 그 클래스에 대하여 공식 개발문서를 읽어야 한다. 그럼 먼저 클래스의 가이드를 읽어서 개략적인 기능을 이해하고 나서, 참조 자료를 살표보며 애플리케이션에 구현할 기능(프로퍼티)과 작동 방법(메서드)을 숙지하는 방법으로 진행하면 된다.
Boostcourse에서는 UITextField를 사용하는 경우를 예를 들어 설명한다.
- 먼저 UITextField는 TextProgramming Guide for iOS라는 가이드 문서의 개요를 보고, UIKit중 문자를 담당하는 주요 구성요소와 기능에 대해 살펴본다. 이를 통해 UITextField말고도 문자를 다루는 다른 클래스들(UITextLabel, UITextView)에 대해서도 비교하며 공부할 수 있을 것이다. (text라는 특정 분야에 대해 설명을 알고싶음, guide문서를 봐야함!)
- UITextField 참조 문서를 통해 기본적으로 어떻게 객체를 생성하고 사용하는지 알아볼 수 있다.(API Reference)
- 필요에 따라서 어떤 프로퍼티, 메서드를 사용해야 할 지 문서를 보며 확인한다.
- 만약 원하는 프로퍼티나 메서드를 찾을 수 없다면 superclass로 이동하여 원하는 기능을 찾아본다.
- 텍스트 필드에서 특정 이벤트가 발생하는 것을 감지하고 싶다면 delegate이 있는지 확인해본다. delegate가 있다면, 해당 프로토콜 문서를 찾아가서 살펴본다.
이 설명을 보고 내가 처음 궁금해 했던 것은 “UITextField는 검색하면 바로 나오는데, 어떻게 알고 Text Programming for iOS라는 것을 검색해서 찾을까?” 라는 의문이었다.
→ 내 생각이 잘못됐음을 알았다. 애초에 UITextField만을 보려고 하지 말고, text와 관련된 전체적인 개념에 대해서 iOS는 어떤식으로 프로그래밍 하는가에 대한 고민을 먼저 했어야 한다.
→ text guide for iOS또는 guide document ios text 이런식으로 한 단계 위에서의 검색을 먼저 해보는 습관도 중요할 것 같다.
'공부 > [iOS&Swift]' 카테고리의 다른 글
[Swift] ARC(Automatic Reference Counting) - 1 (0) | 2022.02.05 |
---|---|
[iOS] AVFoundation, AVAudioPlayer, Timer (0) | 2022.02.02 |
[iOS] AutoLayout을 코드로 작성하는 기본적인 방법에 대하여 (0) | 2022.01.26 |
[Swift] Protocol에 대하여 (0) | 2022.01.24 |
[iOS] Button, Label, Slider에 대하여 (0) | 2022.01.20 |
댓글