 Apple Lover Developer & Artist

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

반응형

API 5

[Challenge] Objective-C 빠르게 둘러보기

Overview 프로그래밍 언어인 Objective-C에 관하여 간략히 조사해 본다. Objective-C를 Swift 코드처럼 사용하며 문법에 빠르게 적응해 본다. 사전 지식 💡독자가 C언어와 객체지향 프로그래밍에 관한 경험이 있음을 전제하고 작성한 포스팅이다. Objective-C Objective-C는 macOS와 iOS용 소프트웨어를 개발할 때 사용되었던 프로그래밍 언어이다. C언어를 기반으로 OOP와 동적 런타임 기능을 확장하여 개발되었다. C언어의 기본 타입과 흐름 제어 문법을 사용 가능한 특징이 있으며 클래스와 메서드를 정의하는 등 OOP 지원을 위해 Objective-C 만의 문법이 추가되었다. Hello World Xcode에서 macOS용 CLI 프로젝트를 생성 후 간단한 Hello W..

[WWDC종합] UICollectionView의 진화

Overview UICollectionView의 역사와 진화 과정을 두루두루 살펴본다. 역사 iOS6 때 처음으로 UICollectionView가 출시되었다. API는 다음과 같은 3가지 측면으로 분해할 수 있다. (데이터) indexPath 기반 프로토콜인 UICollectionViewDataSource를 통해 관리되었다. (레이아웃) 추상 클래스인 UICollectionViewLayout과 구상 클래스인 FlowLayout이 제공 (프레젠테이션) UICollectionViewCell 및 UICollectionReusableView라는 View 타입이 제공 iOS13부터 데이터는 Diffable Data Source 레이아웃의 경우 Compositional Layout를 통해 관리되었다. iOS14는 ..

[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 기능을 사용할 ..

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

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

[Challenge] 🛠️ iOS 앱 설계 퓨전 레시피 4부- Global Rule

Overview MVC, MVVM 등의 앱 아키텍처는 구성 요소들 간의 소통 질서를 확립하여 클린하고 유지보수하기 좋은 코드를 작성하도록 도와주었다. 이번엔 프로젝트의 개발이 진행될수록 늘어나는 소스 파일의 용이한 관리를 위해 글을 적어본다. Project Organization 본질인가 현상인가? 필자가 프로그래밍을 처음 배웠을 때의 일화를 소개한다. 앱의 아키텍처와 프로젝트 파일을 구조화하는 것을 동격으로 생각했었다. 이는 곧 소스 코드 파일과 디렉터리의 구조를 개선함으로써 더 좋은 앱 아키텍처를 얻을 수 있을 것이라는 생각으로 이어졌다. 숙련된 개발자 분께 코드 리뷰를 부탁드리면서 A 소스 파일을 B 폴더에 넣는 것이 좋은지 혹은 C 폴더에 넣은 것이 좋은지?라고 여쭤보았다. 리뷰어 개발자 분은 프..

반응형