 Apple Lover Developer & Artist

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

반응형

 Apple/iOS Dev Challenges 34

[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..

[Challenge] 🛠️ iOS 앱 설계 퓨전 레시피 5부 - 계획과 목업

Overview 프로젝트를 개발할 때, 전체적인 작업 흐름을 우선적으로 잡는 것이 중요하다. 스토리보드를 활용해 앱의 기능과 작업 흐름을 정의한다. Prototype 처음 프로젝트를 개발할 때에는 걱정이 많이 쌓인다. 세부적인 구현 내용을 초기에 완벽히 계획하여 개발하려는 욕심도 생길 수 있다. 이 방식으로는 시간만 버리고 사용자 요구사항에 부합하지 못한 결과가 나올 수 있다고 생각한다. 초기 사용자 테스트를 통해 작업 흐름을 빠르게 검증하고 잘못 설계된 부분에 관하여 민첩하게 피드백받을 수 있는 개발 환경에서는 많은 이점이 있다. 예를 들어 프로젝트 초기에는 상대적으로 적은 코드와 디자인이 반영되었을 때라서 디자인 방향을 틀거나 수정하기에 더 수월할 수 있다고 생각한다. Storyboard 개발 관점에..

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

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

[Challenge] 🛠️ iOS 앱 설계 퓨전 레시피 3부 - 책임의 밀당

Overview UIKit 애플리케이션의 기본 개발 패턴은 Cocoa MVC였다. 대표적으로 View Controller와 같이 책임이 결합된 경우를 생각해 볼 수 있다. 이때, 개발자가 코드를 잘 못 디자인하면 한 객체의 책임이 커져버리는 문제가 생긴다. 코드를 리팩터링 하기 위해 역할과 책임을 다시 나눠본다. Problem objc.io 사이트의 Ash Furrow 님이 작성하신 Introduction to MVVM 자료를 인용하였다. Cocoa MVC에서 활용되는 결합된 역할의 대표 사례인 View controller는 UIKit 어플리케이션에서 주요하게 사용되는 클래스이다. Cocoa MVC를 UIKit 애플리케이션의 실제 클래스 다이어그램 구조로 표현하면 다음과 같다. ViewController..

반응형