cleanUrl: /programming/start-ios-development-with-offical-docs

iOS개발에 처음 발을 내딛은 분들에게는, 당장 “어디서 어떻게 배워야 하는지”만큼 시급하고도 중요한 질문이 없습니다. 좋은 유튜브 강좌나 블로그 튜토리얼 등을 보면 될까요? 하지만 그 유튜브 강사나 블로그 저자가 정말 신뢰할 만한 사람인지, iOS개발에 대해 아무것도 모르는 입장에서 어떻게 판단 할 수 있을까요?

더 운이 나쁜 경우는, 회사에서 다른 개발을 하다가 갑자기 iOS개발을 떠맡게 되는 경우입니다. 이런 경우에는 기존에 짜여진 코드를 최대한 존중해야 하기 때문에, 자칫 잘못된 방식으로 짜여진 코드들도 “원래 이렇게 짜나보다” 하고 오해하고 잘못된 습관을 체화 시키게 되는 경우도 있겠습니다.

iOS개발자로서 중심을 잡고 개발을 배워나가기 위해서는 무엇보다도 공식문서들을 최대한 자주 들춰보아야 합니다. 각 API의 원래 의도가 어떤 것이고, 어떤 방식으로 사용되기를 애플이 기대하는지에 대해, 애플만큼 더 정확히 설명 할 수 있는 유튜브 강사는 없을 테니까요.

이번 포스트에서는, 오직 애플의 공식문서들 만으로 iOS개발을 처음부터 끝까지 배우는 방법에 대해 적어보겠습니다.

iOS개발 시작하기

A Swift Tour

정말 완전완전 iOS개발이 처음이신 분은 당연히 Swift부터 배우셔야겠죠. Swift를 배우는 여러가지 방법이 있지만, 가장 중심이 되어야 하는 방법은 공식문서를 확실하게 이해하는 것입니다. 특히 Swfit는 이 공식문서 자체가 playground라는 포맷의 interactive한 방식으로 만들어져 있기 때문에 굉장히 편하고 재미있게 이해 할 수 있습니다. (링크: Swift공식 문서 Playground 버전) 충분히 많은 시간을 가지고 그야말로 Play해보세요. 이것 저것 망가뜨려보고 실험해보고 실패해보고 오류메시지를 읽어보세요. 정말정말 프로그래밍이 처음이라면, Control플로우에서 많은 시간을 보내보세요. 이 정도만 익혀도 https://programmers.co.kr 의 level1 문제들을 충분히 풀 수 있게 됩니다. 처음 1~2주는 이런 간단한 문제들을 해결 할 수 있게 되는 즐거움을 느껴보는 것을 목표로 해보세요.

iOS App Dev Tutorials

Swift의 간단한 문법을 어느 정도 맛보셨으면, 본격적으로 간단한 iOS앱을 만들어봅시다. iOS App Dev Tutorials 에서는, 간단한 리마인더 앱을 만들면서 애플이 권장하는 BestPractice 들을 자연스럽게 취득할 수 있게 됩니다. 많은 시중의 튜토리얼들에서 놓치는 퍼포먼스, 접근성 관련 이슈들에 대해서도 놓치지 않고 공부 할 수 있습니다.

Xcode Help

Xcode에는 굉장히 다양한 기능이 많습니다. 저는 Xcode를 다룬 지 2년이 넘어가지만, 아직도 제대로 쓰지 못하는 기능이 많습니다. Xcode Help에서는 Xcode가 “어디까지 할 수 있는지”에 대해 한 눈에 볼 수 있습니다. 특히 이 문서는 Xcode를 설명하는 문서들 중에서도 Tutorial로서의 성격을 띄기 때문에 특히 초보자에게 유용합니다. 만약 "How to do .. in Xcode" 와 같은 것을 구글에 검색 하고 싶은 충동을 느낀다면, 먼저 이 문서를 확인해 보세요.


네비게이션

Managing Content in Your App’s Windows

적절한 네비게이션 모델을 고르고 구현하는 것은 iOS개발에서 가장 중요한 부분 중 하나입니다. 이 분서에서 iOS에서 기본으로 제공하는 여러 네비게이션 모델들의 개괄을 확인하고 또 구현해보세요.

다양한 iOS의 네비게이션 모델

다양한 iOS의 네비게이션 모델

Displaying And Managing Views with a ViewController

View와 ViewController의 관계처럼 밀접하면서도 또 헷갈리는 관계도 없습니다. 훌륭한 iOS개발자라면 View의 역할과 VIewController의 역할, 또 그 둘의 관계에 대해서 확실하게 말 할 수 있어야 합니다. 또 각각의 LifeCycle에 대해서도 그리고 각 LifeCycle에서 개발자가 어떻게 대응해야 하는지도 제대로 알아야 하죠. 이 문서에 대부분의 내용이 정리되어 있습니다.