 Apple Lover Developer & Artist

영속적인 디자인에 현대의 공감을 채워넣는 공방입니다

반응형

swift 39

[WWDC2019] Introducing to Combine

Overview A unified declarative API for processing values overtime. - WWDC2019 "Introducing Combine 발췌" 앱 개발 과정에서 비동기 프로그래밍을 사용할 때가 많이 있다. 예를 들어 Target-Action, Timer, KVO부터 URLSession을 활용한 네트워크 통신 과정에서 컴플리션 핸들러를 활용하기도 한다. 때로는 이들을 결합해 새로운 기능을 개발해야 할 수 있는데 쉽지 않았다. Combine은 이들간의 공통 분모를 찾게되었으며 "시간이 지남에 따라 값을 처리하기 위한 통합된 선언적 API"를 개발하게 되었다. 특징 Generics 콤바인은 Swift로 작성되었다. 즉, Generics과 같은 Swift 기능을 사용할 ..

[Swift] 공식문서 씹어먹기: Concurrency

Overview 스위프트에는 비동기 및 병렬 코드를 구조화된 방식으로 코딩할 수 있는 기능이 있다. 한번에 프로그램의 오직 한 부분만 실행할 수 있음에도 비동기 코드는 중단(suspend) 되거나 재개(resume)될 수 있다. 비동기 코드가 중단되거나 재개될 수 있다는 부분은 네트워크 통신과 파일 탐색과 같은 시간이 오래 소요되는 연산을 지속하며 UI 업데이트와 같이 시간이 짧게 소요되는 연산을 지속할 수 있도록 한다. 병렬 코드는 여러 조각의 코드가 동시에 실행됨을 의미한다. 가령 4개 코어 프로세서를 갖고 있는 컴퓨터는 4부분의 코드를 동시에 실행시킬 수 있다. 이 과정에서 각 코어는 하나의 작업을 처리하게 된다. 중단된 연산은 외부 시스템에서 대기하며 이런 방식의 코드를 memory-safe 방식..

[Challenge] 🛠️ iOS 앱 설계 퓨전 레시피 10부 - 이미지 로딩

Overview 네트워크를 통해 받아온 이미지 데이터를 사용자 인터페이스에 보여주도록 구현해 본다. 화면 구성 이번 프로젝트에서 사용자 인터페이스를 통해 이미지를 띄워줘야 하는 화면은 총 3가지다. 음식 메뉴를 보여주는 MenuTableViewController, 주문서 명단을 보여주는 OrderTableViewController, 음식 메뉴의 세부 정보를 보여주는 MenuItemDetailViewController가 대표적인 예시이다. performance 네트워크를 통해 이미지 데이터를 불러오는 것은 다소 시간이 소요되는 작업일 수 있다. 사용자가 원하는 음식 메뉴 아이템을 찾기 위해 화면을 전환하며 탐색한다. 기본적으로 개발자가 별도의 최적화 작업을 진행해주지 않으면 동일한 이미지를 중복하여 다운로..

[Challenge] 🛠️ iOS 앱 설계 퓨전 레시피 7부 - 네트워킹 코드 모델링

Overview 음식점 서버 API와의 네트워크 통신 기능을 구현해 보고 공통 작업을 추상화시킨다. 들어가기 앞서 Swift Concurrency, Protocol, Generic 개념을 활용하고 있기에 이를 익히고 보면 포스팅을 재미있게 즐길 수 있다! Networking Common Process 서버 API를 활용해 클라이언트가 데이터를 요청하고 응답받을 수 있도록 도와주는 객체가 있다. Foundation 프레임워크의 URLSession 이 그 주인공이다. Fetching Website Data into Memory- Apple Developer 아티클을 통해 URLSession을 활용하여 통신 코드를 작성하는 예시를 확인할 수 있다. 쉽게 말하자면 통신 코드가 구현하는 작업은 크게 3가지로 구분..

[Challenge] 🛠️ iOS 앱 설계 퓨전 레시피 6부 - 모델링

Overview 음식점 서버 API와 연동할 수 있도록 모델 타입을 정의한다. Restaurant Server API Order 앱은 다음과 같은 요구사항을 구현해야 한다. 음식점에서 주문 가능한 음식 메뉴 명단을 보여줄 수 있어야 한다. 음식 메뉴의 카테고리를 구분할 수 있어야 한다. 음식 메뉴를 골라서 주문서 명단에 넣을 수 있어야 한다. 주문서 명단을 바탕으로 주문을 넣을 수 있어야 한다. 음식점 서버는 위 요구사항을 다음의 웹서비스 API를 통해 제공하고 있다. /menu (GET) 음식점에서 주문 가능한 음식 메뉴 명단을 제공하는 api이다. Request API에 http GET 요청을 한다. requirement - 메뉴 아이템 배열은 JSON 객체의 item키에 담아서 보낸다. option..

반응형