본문 바로가기

iOS

(3)
[UIKit/SwiftUI] Design System framework 현재 회사에서 다양한 비슷한 애플리케이션이 출시되었으며, 추가적인 출시를 고려하고 있습니다. 모두 커머스 앱 기반으로 메인 앱을 포크 하여 기본 작업을 진행했고, 앱 사용자 특성에 따라 결정된 디자인을 적용했습니다. 현재 애플리케이션들만 관리한다면, 그래도 그나마 괜찮겠지만(?) 다양한 애플리케이션들이 추가될 것이기에, 유지보수와 개발 용이성을 위해 디자인 시스템을 도입하게 되었습니다. 본 포스팅에서는 디자인 시스템을 위한 구조를 어떤 방식으로 설계했고, 적용했는지 설명하도록 하겠습니다. 1. 프레임워크와 프로덕트의 책임과 역할 먼저 프레임워크와 프로덕트의 책임과 역할을 분리하고자 했습니다. 그러기 위해서 현재 각 뷰들이 어떤 식으로 구성되는지 파악하는 것이 필요합니다. MVVM 채택하고 있는 현재 구조..
[iOS] Mock 데이터 기반 TDD 적용하기 - OHHTTPStubs 현재 프로젝트는 API 프로토콜을 정의하고, 해당 구현체를 주입하는 방식으로 API를 사용하고 있습니다. 따라서 테스트를 위해 Mock API 구현체를 구현하고, 해당 객체를 주입하여 테스트를 할 수 있습니다. 하지만, 위와 같은 방식으로 하기에는 다소 까다로운 점들이 있습니다. 테스트하고자 하는 API 외에도 프로토콜 채택하기 위해 다른 API에 해당하는 function들도 구현해야 함 Mock Object 주입을 위한 코드 수정이 불가피함 다양한 방식으로 테스트의 어려움 (ex) 비동기 테스트, 같은 API 성공/실패 혹은 다양한 값) 위와 같은 까다로움을 OHHTTPStubs를 통해 해소할 수 있다고 판단했습니다. OHHTTPStubs는 좀 더 Low level인 URLSessionConfigura..
[iOS] Ruby on Rails를 활용하여, 사용하지 않는 이미지 리소스 제거 프로젝트를 진행하며, 사용하지 않는 이미지 리소스들이 점차 쌓이게 되었고, 저장된 이미지 리소스만 67MB가 되었습니다.. 새로운 이미지를 추가할 때마다, 한숨이 늘어가는 것을 보며 사용하지 않는 것들을 지울 수 없을까?라는 생각을 가지게 되었습니다. 저와 비슷한 생각을 가진 사람들이 있지 않을까 해서, 검색을 해봤지만 SwiftGen을 사용하여 camel case로 변환된 것 까지 검출하는 방법은 찾을 수 없었습니다.. 따라서, 저희에게 맞도록 스크립트를 작성하는 것을 목표로 시작했습니다. (Ruby on Rails를 이용하여 스크립트를 작성했습니다.) 안쓰는 이미지 리소스들을 찾는 과정을 간단하게 설명하면 다음과 같습니다. 1. Asset 폴더에 저장되어 있는 모든 이미지 리소스 리스트를 받아온다. ..