SwiftUI와 컴바인을 활용한 비동기 프로그래밍

SwiftUI와 컴바인을 활용한 비동기 프로그래밍

$31.70
Description
이 책은 SwiftUI, Combine, 그리고 async/await를 활용해 Apple 플랫폼에서 선언적이고 반응형 UI를 구축하는 방법을 안내하는 실용서다. SwiftUI의 상태 기반 UI 구성, Combine을 통한 비동기 이벤트 처리, 그리고 async/await를 이용한 네트워크 통신을 체계적으로 설명한다. 초급자부터 중급 개발자까지 단계별로 따라할 수 있는 예제와 함께, 실무에 바로 적용 가능한 아키텍처 설계 방법을 제공한다. SwiftUI와 Combine을 처음 접하는 독자에게도 유용한 입문서로 추천할 수 있다.
저자

피터프리제

Windows,J2EE,웹,Android,iOS및Mac에이르기까지다양한플랫폼용소프트웨어를구축한30년이상의경력을가진소프트웨어엔지니어다.현재구글의파이어베이스팀에서시니어개발자애드보킷으로일하며iOS개발자가iOS및Apple의다른플랫폼에서FirebaseSDK를원활하게사용할수있도록지원하는업무를담당하고있다.블로그인peterfriese.dev에서SwiftUI,스위프트,Firebase개발에관한글을쓰고있으며,X(구트위터)에서는@peterfriese로활동하고있다.

목차

1장.SwiftUI:새로운시작
__왜새로운UI프레임워크인가?
__SwiftUI기초
____선언적과명령적
____상태관리
____상속대신조합
____뷰가아닌것빼고는전부뷰
____UI는해당상태를나타낸함수
__SwiftUI빠르게맛보기
____전제조건
____새SwiftUI앱만들기
____앱에인터랙션추가
____SwiftUI의상태관리를사용해UI와모델동기화유지
__연습문제
__정리


2장.SwiftUI시작
__만들앱
__책을표시하기위한뷰작성
__정적데이터로뷰빌드
__미리보기를사용해뷰가의도한대로작동하는지확인
__도서목록표시
__데이터바인딩설정
__프리뷰캔버스조절
__코드재사용
____ExtractSubview를사용해코드리팩터링
____ContentView이름바꾸기
____복잡한코드방지작업
__뷰와뷰수정자
__연습문제
__팁과트릭
__정리


3장.SwiftUI구성요소
__뷰
____사용자인터페이스뷰
____컨테이너뷰
____레이아웃동작
____뷰는UI에대한설명일뿐이다
__뷰수정자
____뷰구성
____하위뷰에뷰수정자적용
____뷰수정자를사용해액션핸들러등록
__정리


4장.상태관리
__SwiftUI에서상태관리
__바인딩값유형
__객체바인딩
__ObservableObject
__@StateObject
____사용시기
__@ObservedObject
____사용시기
__@EnvironmentObject
____사용시기
__정리


5장.리스트에데이터표시
__SwiftUI에서목록시작
____리스트행내부에또다른SwiftUI뷰사용
____사용자지정리스트행구축
____좀더복잡한리스트행
__동적리스트
____리스트요소표시
____리스트항목수정허용을위한리스트바인딩
____비동기적으로데이터가져오기
____당겨서새로고침
____검색
__스타일링
____리스트스타일
____머리글과바닥글
____리스트셀
____구분선
__액션
____스와이프동작으로삭제
____편집모드를사용해항목이동및삭제
____스와이프동작
__리스트에서포커스관리
____SwiftUI에서포커스를관리하는방법
____목록에서포커스를관리하는방법
____Enter키처리
____MVVM이란?
____빈항목없애기
__정리


6장.입력폼만들기
__단순폼만들기
__폼에데이터표시
__편집가능상태로만들기
__드릴다운내비게이션
__입력유효성검사
____.onChange(of:)사용
____뷰모델을사용해폼유효성검사처리
____@Binding과@ObservableObject를사용해로컬소스오브트루스를글로벌소스오
____브트루스와동기화하기
____컴바인을사용해폼유효성검사수행
__정리


7장.컴바인시작하기
__함수형반응형프로그래밍이란?
__퍼블리셔
__서브스크라이버
__연산자
__연산자조합
__퍼블리셔합치기
__정리


8장.컴바인으로UI상태다루기
__컴바인을이용한입력유효성검사
____회원가입Form뷰
____뷰모델
____사용자이름유효성검사
____유효성검사메시지표시
____연산프로퍼티에컴바인파이프라인캡슐화
____비밀번호검증
____모든코드종합
__연습문제
__정리


9장.컴바인을사용한네트워크통신
__URLSession을사용해데이터읽어오기
__컴바인으로데이터패치
____키패스를사용한튜플분해
____데이터매핑
____컴바인을사용한데이터가져오기의단순화
__UI연결
__멀티스레딩처리
__네트워크접근최적화
____근본원인찾기
____share연산자를이용한퍼블리셔공유
____debounce를사용한추가적UX최적화
____removeDuplicates를사용해동일한요청을2번보내지않기
__하나의코드로통합
__연습문제
__정리


10장.컴바인의오류처리
__오류처리전략
____오류무시
____재시도(기하급수적인백오프사용)
____오류문구표시
____전체뷰를오류뷰로덮어버리기
____인라인오류메시지표시
__일반적인오류조건및처리방법
____오류가능성있는네트워크API구현
____API호출과오류처리
____장치/네트워크오프라인오류처리
____유효성검사오류처리
____응답파싱오류처리
____내부서버오류처리
__정리


11장.컴바인커스텀연산자구현
__컴바인연산자란?
__사용자정의연산자구현
__Delay를이용한Retry연산자구현
__조건부재시도
__지수백오프를위한Retry연산자구현
__정리


12장.기존API를컴바인으로래핑
__사례연구
__컴바인으로파이어스토어에접근
____뷰모델및게시된프로퍼티사용
____컴바인으로API래핑
__나만의퍼블리셔만들기
____PassthroughSubject를이용한스냅숏리스너래핑
____Future를사용해파이어스토어에서원타임패치구현
__정리


13장.스케줄러와SwiftUI결합
__스케줄러란?
__스케줄러의종류
__스케줄러기본동작방식
__스케줄러전환
____subscribe(on:)로업스트림퍼블리셔제어
____receive(on:)으로다운스트림서브스크라이버제어
____스케줄링에영향을미치는기타연산자
__비동기작업수행
__다른API와통합
____URLSession
____파이어베이스
__정리


14장.async/await시작
__함수를사용한동기식프로그래밍
__클로저를사용한비동기프로그래밍
__async/await함수를사용한비동기프로그래밍
____비동기함수정의및호출
____비동기함수를병렬로호출
__정리


15장.URLSession을사용해비동기적으로데이터가져오기
__URLSession를사용한비동기데이터가져오기
__비동기코드호출
__Task뷰수정자
__사용자가버튼을탭할때비동기코드호출
__당겨서새로고침을사용해뷰를비동기적으로업데이트
__Searchable뷰및async/await
__메인스레드에서UI업데이트
__정리


16장.모든코드종합:SwiftUI,async/await,컴바인
__컴바인을사용해데이터가져오기
__async/await를사용해데이터가져오기
__이제컴바인의시대는저무는가?
__UI연결...
____...컴바인파이프라인까지
____...async/await메서드로변경
__컴바인에서비동기코드호출
__정리

출판사 서평

◈이책에서다루는내용◈

◆SwiftUI로간단한UI부터점점더복잡한UI까지구축
◆SwiftUI의상태관리시스템이해
◆컴바인과스위프트의새로운async/awaitAPI를사용해네트워크에접근하고,그외비동기API에접근
◆SwiftUI,컴바인,async/await을사용해애플플랫폼에서현대적인애플리케이션설계와구조화


◈이책의대상독자◈

SwiftUI와컴바인을사용한비동기프로그래밍은SwiftUI로애플리케이션을만드는모든사용자를위한책이다.SwiftUI경험이있고상태관리가어떻게작동하는지,뷰모델과컴바인을사용해앱을더효율적으로만드는방법을더잘이해하고싶다면이책이적합할것이다.


◈이책의구성◈

1부에서는SwiftUI와그상태관리를다룬다.SwiftUI의선언적접근방식으로사용자인터페이스를구축하는방법과SwiftUI의반응형상태관리로여러화면에서애플리케이션상태를동기화하는앱을쉽게작성하는방법을살펴본다.
2부에서는애플의반응형프레임워크인컴바인에중점을두고,컴바인의작동방식과백엔드와인터페이스하는UI및코드모두에사용하는방법을알아본다.
3부에서는스위프트의새로운구조적동시성(async/await라고더잘알려져있음)과Combine과의관계,그리고이를사용해URLSession과같은비동기API및파이어베이스와같은다른비동기API와인터페이스할수있는앱을구축하는방법을다룬다.


◈옮긴이의말◈

SwiftUI,컴바인(Combine),async/await기술이애플생태계에도입된지도어느덧수년이흘렀다.하지만번역을시작할당시,국내에서는컴바인을본격적으로다룬서적을찾기어려웠기에이책의번역을결심하게됐다.
과거비슷한비동기프로그래밍개념을가진RxSwift가등장했을때많은개발자가왜이러한기술이필요한지이해하기어려워했던시기가있었다.개념을이해하더라도이를실제화면구성에적용하려면여러단계를거쳐야했고,러닝커브도상당해쉽게접근하기어려웠던기억이난다.
새로운기술을익힐때는개념뿐만아니라실제화면에서어떻게구현되는지,그리고왜이러한개념이필요한지를함께설명하는것이중요하다.이책은이러한관점에서매우효과적으로구성돼있다.
특히이책은SwiftUI와컴바인을함께활용하는방법을설명하고있어비동기프로그래밍을좀더쉽고자연스럽게이해할수있게도와준다.초급자도큰어려움없이접근할수있는수준으로구성돼있어SwiftUI와컴바인을처음접하는경우에도유용할것이다.
한가지강조하고싶은부분은이책의예제를반드시직접타이핑해따라해보라는것이다.단순히읽는것과실제로구현해보는것은큰차이가있다.대부분의경우읽기만해서는완벽히이해하기어렵다.직접예제를따라해보면서개발자의실력은더욱탄탄해진다고믿는다.
이미나는현업에서SwiftUI,컴바인,async/await를적절히조합해매우유용하게사용하고있다.이책의목차와예제를따라가다보면체계적으로잘정리된내용을통해실무에바로적용할수있는통찰을얻을수있을것이다.
이책이독자여러분의개발여정에도움이되기를바라며,항상건강하고즐거운개발자생활을이어가길바란다.