 Apple Lover Developer & Artist

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

반응형

IOS 22

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

[Challenge] 🛠️ iOS 앱 설계 퓨전 레시피 2부 - MVC 디자인 패러다임

Overview 어떤 클래스나 구조체를 생성할지 어떻게 결정하는가? 어떤 속성들을 가져야 하는가? 어느 객체가 다른 객체들의 함수를 호출해야 하는가? 소프트웨어 개발자들은 수십 년간 이 질문에 답할 수 있는 패러다임을 고민해 왔다. MVC MVC는 오브젝트에 Model View Controller로 책임을 분류하여 할당하고 오브젝트 간의 소통 방식을 정의하는데 도움을 준다. 다음의 그림은 3가지 타입의 오브젝트가 서로 어떤 관계를 맺어서 동작하는지에 관한 Apple 방식의 조감도를 보여준다. 구체적인 소통 메커니즘을 이해하기 위해 개별 타입들이 어떤 책임을 갖고 있는지 살펴본다. Models Model Objects Encapsulate Data and Basic Behaviors 모델은 아이템이나 개념..

반응형