이미 소장하고 있다면 판매해 보세요.
|
1부 시작하기
1장 시작하기 _ 3 Xcode 시작하기 3 플레이그라운드에서 ‘플레이’하기 6 변수의 값 변경하기와 콘솔로 출력하기 7 아직 끝나지 않았다! 10 예선 과제 10 2장 타입, 상수, 변수 _ 11 타입 11 상수 vs. 변수 13 문자열 삽입 15 예선 과제 16 2부 기초 지식 3장 조건 _ 19 if/else 19 삼항 연산자 22 중첩된 if 23 else if 24 예선 과제 25 4장 수 _ 26 정수 26 정수 인스턴스 만들기 29 정수 연산 30 다른 정수 타입으로 전환하기 34 부동소수점수 36 예선 과제 38 5장 switch _ 39 switch가 무엇일까? 39 switch 실전 40 switch vs. if/else 50 예선 과제 52 본선 과제 53 6장 루프 _ 54 for-in 루프 55 타입 추론에 관해 짚고 넘어가기 59 while 루프 59 repeat-while 루프 61 제어권 전달문, 다시 보기 61 본선 과제 65 7장 문자열 _ 67 문자열 다루기 67 유니코드 69 예선 과제 76 본선 과제 76 8장 옵셔널 _ 77 옵셔널 타입 77 옵셔널 바인딩 80 암묵적으로 언래핑된 옵셔널 83 옵셔널 체이닝 84 옵셔널을 준비된 상태로 수정하기 85 nil 결합 연산자 86 예선 과제 88 예선 과제, 시즌2 88 3부 컬렉션과 함수 9장 배열 _ 91 배열 만들기 91 배열 액세스하기와 수정하기 93 배열의 등가 100 변경할 수 없는 배열 101 문서 102 예선 과제 103 본선 과제 104 결승 과제 104 10장 딕셔너리 _ 105 딕셔너리 만들기 106 딕셔너리에 내용물 넣기 107 딕셔너리 액세스하기와 수정하기 107 값 추가하기와 제거하기 110 루프 적용하기 112 변경할 수 없는 딕셔너리 113 딕셔너리를 배열로 변환하기 113 본선 과제 114 결승 과제 115 11장 집합 _ 116 Set란 무엇인가? 116 Set 준비하기 117 집합 다루기 119 예선 과제 123 본선 과제 123 12장 함수 _ 124 함수의 기초 124 함수의 파라미터 125 가변 파라미터 129 결과 리턴하기 132 함수의 중첩과 영역 133 복수 리턴값 135 옵셔널 리턴 타입 136 함수에서 중도에 빠져나오기 137 함수의 타입 138 예선 과제 139 본선 과제 140 호기심을 누르지 못하는 독자를 위해: Void 140 13장 클로저 _ 142 클로저의 문법 구조 142 클로저 수식 문법 144 리턴 타입 역할을 하는 함수 147 인수 역할을 하는 함수 148 클로저, 값을 붙잡다 151 클로저는 참조 타입이다 153 함수형 프로그래밍 155 예선 과제 158 결승 과제 159 4부 열거형, 구조체, 클래스 14장 열거형 _ 163 열거형 기본 163 원시값 열거형 167 메서드 170 연동되는 값 174 재귀적 열거형 176 예선 과제 180 본선 과제 180 15장 구조체와 클래스 _ 181 새 프로젝트 181 구조체 187 인스턴스 메서드 190 클래스 192 무엇을 사용해야 할까? 198 예선 과제 199 본선 과제 199 호기심을 누르지 못하는 독자를 위해: 타입 메서드 199 호기심을 누르지 못하는 독자를 위해: 변경용 메서드 201 16장 프로퍼티 _ 208 기본 저장형 프로퍼티 209 중첩 타입 210 지연 저장형 프로퍼티 211 계산형 프로퍼티 214 프로퍼티 관찰자 217 타입 프로퍼티 218 액세스 제어 222 예선 과제 226 본선 과제 226 결승 과제 226 17장 초기화 _ 228 이니셜라이저의 문법 228 구조체의 초기화 229 클래스 초기화 236 실패 가능 이니셜라이저 247 초기화, 조금 더 깊게 250 본선 과제 251 결승 과제 251 호기심을 누르지 못하는 독자를 위해: 이니셜라이저의 파라미터 251 18장 값 타입 vs. 참조 타입 _ 253 값의 세만틱스 253 참조의 세만틱스 256 상수의 값 타입과 참조 타입 258 값 타입과 참조 타입 함께 사용하기 261 복사하기 262 동일성 vs. 정체성 264 무엇을 사용해야 할까? 266 호기심을 누르지 못하는 독자를 위해: 쓰기 시 복사 267 5부 스위프트 고급 19장 프로토콜 _ 279 데이터 테이블 만들기 279 프로토콜 283 프로토콜 준수 288 프로토콜 상속 289 프로토콜 구성 290 변경용 메서드 292 본선 과제 293 결승 과제 293 20장 오류 처리 _ 294 오류의 범주 294 입력 문자열 분석하기 295 오류 잡아내기 305 Token 배열 파싱하기 307 눈 가리고 아웅 격으로 오류 처리하기 311 스위프트의 오류 처리 철학 314 예선 과제 316 본선 과제 316 결승 과제 317 21장 확장 _ 318 기존 타입 확장하기 319 직접 만든 타입 확장하기 320 예선 과제 326 본선 과제 326 22장 제네릭 _ 327 제네릭 데이터 구조 327 제네릭 함수와 메서드 330 타입 제한 조건 333 연결되는 타입 프로토콜 334 타입 제한 조건의 where 절 338 예선 과제 340 본선 과제 340 결승 과제 340 호기심을 누르지 못하는 독자를 위해: 옵셔널 이해하기 341 호기심을 누르지 못하는 독자를 위해: 파라미터 다형성 341 23장 프로토콜 확장 _ 343 Exercise 구체화하기 343 Exercise 확장하기 345 프로토콜 확장과 where 절 347 프로토콜 확장의 기본 구현 348 사물에 이름 짓기: 조심 또 조심 351 예선 과제 353 결승 과제 353 24장 메모리 관리와 ARC _ 355 메모리 할당 355 강한 참조 주기 356 강한 참조 주기를 부숴 약한 참조로 만들기 361 클로저의 참조 주기 363 클로저 이스케이프/비이스케이프 처리하기 368 예선 과제 371 본선 과제 371 호기심을 누르지 못하는 독자를 위해: 인스턴스의 참조 횟수를 조회할 수 있는가? 371 25장 Equatable과 Comparable _ 372 Equatable 준수하기 373 Comparable 준수하기 376 Comparable의 상속 379 예선 과제 380 본선 과제 380 극기훈련 381 호기심을 누르지 못하는 독자를 위해: 커스텀 연산자 381 6부 이벤트 구동 방식 애플리케이션 26장 첫 코코아 애플리케이션 _ 389 VocalTextEdit 시작하기 390 모델-뷰-컨트롤러 392 뷰 컨트롤러 설정하기 393 인터페이스 빌더에서 뷰 설정하기 395 연결하기 403 VocalTextEdit에서 소리 내어 읽기 406 문서 저장하기와 로드하기 409 타입 변환 411 본선 과제 419 결승 과제 420 27장 첫 iOS 애플리케이션 _ 421 iTahDoodle 시작하기 422 사용자 인터페이스 배치하기 423 할 일 리스트 형상화하기(modeling) 432 UITableView 설정하기 437 TodoList 저장하기와 로드하기 439 예선 과제 443 본선 과제 443 결승 과제 443 28장 상호운영성 _ 445 오브젝티브-C 프로젝트 446 오브젝티브-C 프로젝트에 스위프트 추가하기 455 오브젝티브-C 클래스 추가하기 468 본선 과제 475 결승 과제 476 29장 결론 _ 477 이제 앞으로 나아갈 곳은? 477 염치가 없지만 477 초대 478 찾아보기 _ 480 |
Matthew Mathias
John Gallagher
배장열의 다른 상품
|
이 장에서는 상수와 변수, 스위프트의 기본 데이터 타입을 소개하겠다. 이들은 어떤 프로그램에도 바탕이 되는 일종의 빌딩 블록이라고 할 수 있다. 애플리케이션에서 어떤 값을 저장하거나 데이터를 전달할 때는 상수와 변수를 사용한다. 타입은 상수나 변수에 담긴 데이터의 본질을 드러낸다. 상수와 변수에는 그 쓰임새를 결정짓는 중요한 차이가 존재하며, 이 둘은 데이터 타입과도 엄연히 다르다.
--- p.11 스위프트는 어떤 문자열에 구성된 유니코드 스칼라 모두를 확인할 수 있는 방법도 제공한다. 앞에서 만든 playground라는 String 인스턴스를 예로 들어 보자. 스위프트가 문자열을 만들 때 바탕으로 삼는 스칼라들은 모두 unicodeScalars 프로퍼티(property)에 담겼는데, playground 인스턴스도 이 프로퍼티를 사용하여 만든 것이었다. 다음 코드를 플레이그라운드에 추가하여 playground의 유니코드 스칼라들을 확인해 보자. --- p.72 코드를 입력하면 컴파일러 오류가 발생한다. self를 메서드 안으로 대입할 수 없다는 의미의 오류다. 스위프트에서 열거형은 값 타입(value type)이며, 이 값 타입의 메서드는 self를 변경할 수 없다(값 타입에 관한 세부 내용은 15장에서 다루고 있다). 값 타입의 메서드에서 self를 변경하도록 허용하려면 메서드에 mutating이라는 키워드를 붙여야 한다. 이를 구현해 보자. --- p.173 스위프트의 컬렉션은 이미 COW를 제공한다. 따라서 일반적으로는 COW 타입을 직접 작성할 까닭이 없다. 이를테면 배열이나 딕셔너리, 문자열로 구성된 구조체는 기본으로 COW를 제공한다. 그 구성 요소가 이미 표준 라이브러리를 통해 구조체를 구현하기 때문이다. 지금까지 언급한 내용을 통해 COW의 동작 방식을 직관적으로 이해하여 값 타입의 복사로 인한 메모리 부담에 대해서는 걱정을 덜어도 될 것이다. --- p.275 본선 과제를 완수하지 않았다면 이번 도전 과제를 수행할 수 없다. 이제 앱이 음성 읽기를 언제 시작하고 언제 중단하는지에 따라 버튼이 응답하므로 사용자에게도 음성 읽기가 얼마나 걸릴지 알리도록 하라. 인터페이스에 NSProgressIndicator를 추가하고, 음성 읽기의 대략적인 예상 시간을 보여 줄 수 있도록 업데이트하라. 보너스 미션을 추가하자면, 음성 읽기 모드일 때만 이 진행률 표시기가 나타나도록 하라. --- p.420 |
|
전 세계인과 함께 배우는 스위프트 교과서!
글로벌 모바일 교육 업체인 빅 너드 랜치의 공식 스위프트 교재! 이 책은 풍부한 강의 경험과 스위프트에 대한 통찰력으로 무장한 두 저자가 왜 스위프트여야 하는지를 다양한 시각과 상황을 통해 깊이 있게 풀어내고 있다. 또한, 세심한 설명과 엄선된 예제는 스위프트 문법뿐만 아니라 효율적인 스위프트 스타일을 독자가 깊이 있게 이해할 수 있도록 도와준다. 참고로, 이 책은 스위프트 4.0을 기준으로 Xcode 9와 애플의 개발 문서를 설명한다. 체계적인 설명과 엄선된 예제는 스위프트에 대한 자신감을 한층 높여 줄 것이다. 이 책의 구성 * 시작하기: 이곳에서는 스위프트 코드를 작성할 때 필요한 도구에 초점을 맞추고, 스위프트의 문법을 소개한다. * 기초 지식: 기초 지식에서는 스위프트 개발자로서 매일같이 사용하게 될 기본 데이터 타입을 소개한다. 또한, 코드가 실행되는 순서를 제어하기 위한 제어 흐름을 다룬다. * 컬렉션과 함수: 서로 연관된 데이터가 애플리케이션에 필요할 때가 많다. 그런 데이터는 그만의 방식으로 처리하게 된다. 이곳에서는 이를 수월하게 하기 위한 컬렉션과 함수를 다룬다. * 열거형, 구조체, 클래스: 이곳에서는 데이터의 구체화(모델링) 방식을 다룬다. 열거형과 구조체, 클래스의 다른 점을 언급하고, 언제 어떤 것을 사용할지 그 기준을 제시한다. * 스위프트 고급: 스위프트는 현대적 언어로서 우아하고 읽기 쉬우며 효율적인 코드를 작성하기 위한 고급 기능을 다양하게 제공한다. 이곳에서는 이런 스위프트의 요소들을 사용하여 더욱더 전문적인 개발자가 되기 위한 공용 코드를 어떻게 작성할 수 있는지 언급한다. * 이벤트 구동 방식 애플리케이션: 이곳에서는 첫 macOS 애플리케이션과 첫 iOS 애플리케이션을 작성한다. 이전 OS X이나 iOS 애플리케이션 개발을 경험한 독자들을 위해 오브젝티브-C와 스위프트의 상호운영 방식을 언급하며 이 책을 마무리한다. 이 책의 대상 독자 * 스위프트를 처음으로 배우려는 개발자 * iOS 앱 개발 경험이 있으면서 스위프트를 확실하게 다지려는 모바일 개발자 * 안드로이드 앱 개발 경험은 있지만 iOS 앱은 처음인 개발자 |